[23 Nov 12] cLK

Search This thread

mandrakur

Senior Member
Jun 4, 2009
501
81
Belgrade
Excuse my ignorance but whats the big advantage of this?

ra.

The integration of MDDI is said to enable the adoption of advanced features, such as high-definition (QVGA) LCDs and high-resolution megapixel cameras for wireless devices, and supports capabilities such as driving an external display or a video projector from a handset.
I hope that after this,Rick_1995 find some time to port usb host to our hd2.
Rick,
sorry for posting this here, but you are only one that can do this.

Sent from my HTC HD2 using xda premium
 
Last edited:
  • Like
Reactions: RoadXY and bojanbl

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
I hope that after this,Rick_1995 find some time to port usb host to our hd2.
Yes, that should be next in my list after this:

Ported over xdandroid's pooploader (which was also lk based) but is a lot better than clk (better irq, gpio handling. support for multiple devices, msm-i2c and both dex and proc_comm). Should have working power button, led, battery driver (charging in lk), basic power management in next release. (and *maybe* touchscreen in later release).

6941942934_cd33d7c31d_c.jpg
 

babyvox550

Senior Member
Dec 10, 2010
73
6
Hangzhou
when I was flashing recovery, EXT4R-v2.2.7-ported-moded-Dansta34.img

erasing 'recovery'...
OKAY [ 0.203s]
finished. total time: 0.219s
sending 'recovery' (5608 KB)...
OKAY [ 71.203s]
writing 'recovery'...
OKAY [ 1.375s]
finished. total time: 72.578s
. .

And till 1.5.0.3 , the data corrupting still comes up.
now i‘m using 1.5.0.4,hoping for debugging
 

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
when I was flashing recovery, EXT4R-v2.2.7-ported-moded-Dansta34.img

erasing 'recovery'...
OKAY [ 0.203s]
finished. total time: 0.219s
sending 'recovery' (5608 KB)...
OKAY [ 71.203s]
writing 'recovery'...
OKAY [ 1.375s]
finished. total time: 72.578s
. .

And till 1.5.0.3 , the data corrupting still comes up.
now i‘m using 1.5.0.4,hoping for debugging

from where did you get 1.5.0.3 and .4 :eek:

Have you noticed your recovery partition size ? default is 5MB which is 5120kb, you're flashing 5608kb file to it and what we will read and place in memory will also me 5120kb...
 

Hammerfest

Senior Member
Apr 3, 2008
1,683
286
San Antonio, TX
Yes, that should be next in my list after this:

Ported over xdandroid's pooploader (which was also lk based) but is a lot better than clk (better irq, gpio handling. support for multiple devices, msm-i2c and both dex and proc_comm). Should have working power button, led, battery driver (charging in lk), basic power management in next release. (and *maybe* touchscreen in later release).
///PIC SNIP////

be still my beating heart... and with HWA making headway as well for ICS... wheres my popcorn?
 

Dunc001

Inactive Recognized Developer
Apr 6, 2010
2,705
1,462
Hiding out south of the border...
Yes, that should be next in my list after this:

Ported over xdandroid's pooploader (which was also lk based) but is a lot better than clk (better irq, gpio handling. support for multiple devices, msm-i2c and both dex and proc_comm). Should have working power button, led, battery driver (charging in lk), basic power management in next release. (and *maybe* touchscreen in later release).

6941942934_cd33d7c31d_c.jpg

RMNET or PPP?
 

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
Let me clear up a few things,
Network has "nothing" to do with the bootloader, rmnet/ppp is all dependent on radio/amss (from what i can tell by reading the msm_rmnet driver in linux which is using smd (serial modem device) ). Windows CE uses ppp by default which is faster and it was stable there, unfortunately android ril or maybe linux driver is not as good as microsoft's implementation of ppp so rmnet was used by google and qualcomm in android devices. Problem is we are still running a windows ce radio/amss on the baseband processor. I have no information/idea of how currently magldr gets rmnet working but i am willing to find out as i am learning assembly and disassembly/reverse engineering. It is not easy, i can't promise it, and since i don't have a backup device it would be the last thing i would want to do with my leo.

Also i have no idea how/why users get stable connection through ppp in ics and not in gb.
 

Hahutzy

Senior Member
Aug 3, 2010
177
11
Is it possible to update cLK 1.4 to 1.5 from within cLK?

Due to broken flex ribbon @ volume buttons, I am unable to go back to HSPL until I find the schematics to solder the volume buttons back into place...
 

clio94

Senior Member
Jan 17, 2007
1,195
321
Kozani
Also i have no idea how/why users get stable connection through ppp in ics and not in gb.
and because of this good and unexpectable fact and without being disrespectfull to your work i think that the 3-4 devs you are still here with hd2,must join your knowledge to give a full hwa ics rom,so we`ll not need anymore gingerbread roms
also i see that some companies gave official ics but without 3.0.x kernel.htc in one x has 2.6.39 kernel and sony in neo v 2.6.29.so i want to hope that if you the last devs for our hd2 co-operate can give us a full working ics
 
Last edited:

corrsea

Senior Member
Apr 29, 2010
1,758
711
Xiaomi Mi 11 Ultra
Xiaomi 13 Ultra
Also i have no idea how/why users get stable connection through ppp in ics and not in gb.

I'm on tweakos pureCm7 Rom (gb) and have a completely stable connection with ppp. No data drops or loss of connection. I used to have a pretty similar experience on tytungs nexus1 gb Rom with only occasional data drops on 3g for a few seconds - nothing that really troubled me :)


Sent from my HTC HD2 using Tapatalk 2
 

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
I have some bad news,
I was working on the ti tps65023 pmic driver in lk to have complete control over acpu's vdd levels, while using linux sources as reference, i noticed this:

Code:
static struct regulator_consumer_supply tps65023_dcdc1_supplies[] =
{
    {
        .supply = "acpu_vcore",
    },
};

static struct regulator_init_data tps65023_data[5] =
{
    {
        .constraints =
		{
            .name = "dcdc1", /* VREG_MSMC2_1V29 */
            .min_uV = 1000000,
            .max_uV = 1300000,
            .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
        },
        .consumer_supplies = tps65023_dcdc1_supplies,
        .num_consumer_supplies = ARRAY_SIZE(tps65023_dcdc1_supplies),
    }
......
}

To those who don't understand code, this means that using frequency below 245MHz will have no power saving as lowest vdd level the regulator can provide is 1v (245MHz is most powersaving as scorpion pll is shutdown and the driver switches to the mpll which is the modem pll).

We all were living under a lie that 800mv is the lowest vdd level, it is 1v that is the minimum our regulator can provide. (If you're thinking why doesn't it crash if it can't provide, linux selects the nearest possible vdd level to the requested vdd level)
 

NYLimited

Inactive Recognized Contributor
Jan 5, 2008
3,825
2,286
New Hampshire, USA
I have some bad news,
I was working on the ti tps65023 pmic driver in lk to have complete control over acpu's vdd levels, while using linux sources as reference, i noticed this:

Code:
static struct regulator_consumer_supply tps65023_dcdc1_supplies[] =
{
    {
        .supply = "acpu_vcore",
    },
};

static struct regulator_init_data tps65023_data[5] =
{
    {
        .constraints =
		{
            .name = "dcdc1", /* VREG_MSMC2_1V29 */
            .min_uV = 1000000,
            .max_uV = 1300000,
            .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
        },
        .consumer_supplies = tps65023_dcdc1_supplies,
        .num_consumer_supplies = ARRAY_SIZE(tps65023_dcdc1_supplies),
    }
......
}

To those who don't understand code, this means that using frequency below 245MHz will have no power saving as lowest vdd level the regulator can provide is 1v (245MHz is most powersaving as scorpion pll is shutdown and the driver switches to the mpll which is the modem pll).

We all were living under a lie that 800mv is the lowest vdd level, it is 1v that is the minimum our regulator can provide. (If you're thinking why doesn't it crash if it can't provide, linux selects the nearest possible vdd level to the requested vdd level)

Fascinating. Correct me if I am wrong but this seems more like a non-event if min-uv is locked at 1 since any setting under 245 will, in fact, become "245". Is the limit set by the code or does the code simply reflect the hardware? Hey, someone had to ask. :eek:


---
I put a dollar in a change machine. Nothing changed.
 

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
Fascinating. Correct me if I am wrong but this seems more like a non-event if min-uv is locked at 1 since any setting under 245 will, in fact, become "245". Is the limit set by the code or does the code simply reflect the hardware? Hey, someone had to ask. :eek:


---
I put a dollar in a change machine. Nothing changed.

If the required voltage is "above" our maximum limit, then it gives an error and bugs the kernel, but if the required voltage is "below" our regulator can supply, it just supplies the nearest possible voltage to the requested one since lower freq with higher voltage is perfectly fine but not the other way round.

So if (requested_voltage < minimum_voltage_we_can_supply) it just supplies minimum_voltage_we_can_supply instead of the requested voltage. but if (requested_voltage > minimum_voltage_we_can_supply) it prints error and goes into an infinite loop (no return).

This is what i am using in lk right now to control acpu frequency (i kanged it from linux kernel)
Code:
int acpuclk_set_rate(unsigned long rate, enum setrate_reason reason)
{
	struct clkctl_acpu_speed *cur, *next;

	cur = drv_state.current_speed;

	/* convert to KHz */
	rate /= 1000;

	dprintf(INFO, "[ACPU] switching to %d MHz\n", ((int) (rate/1000)));

	if (rate == cur->acpu_khz || rate == 0)
		return 0;

	next = acpu_freq_tbl;
	for (;;) {
		if (next->acpu_khz == rate)
			break;
		if (next->acpu_khz == 0)
			return -1;
		next++;
	}

	if (reason == SETRATE_CPUFREQ) {
		/* Increase VDD if needed. */
		if (next->vdd > cur->vdd) {
			if (acpuclk_set_vdd_level(next->vdd)) {
				dprintf(INFO, "acpuclock: Unable to increase ACPU VDD.\n");
				return -1;
			}
		}
	}

	if (next->clk_sel == SRC_SCPLL) {
		/* curr -> standby(MPLL speed) -> target */
		if (!IS_ACPU_STANDBY(cur))
			select_clock(acpu_stby->clk_sel, acpu_stby->clk_cfg);
		scpll_set_freq(next->sc_l_value);
		select_clock(SRC_SCPLL, 0);
	} else {
		if (cur->clk_sel == SRC_SCPLL) {
			select_clock(acpu_stby->clk_sel, acpu_stby->clk_cfg);
			select_clock(next->clk_sel, next->clk_cfg);
			scpll_power_down();
		} else {
			select_clock(next->clk_sel, next->clk_cfg);
		}
	}

	drv_state.current_speed = next;

/*	This will fail anyway, so remove it for now
	if (reason == SETRATE_CPUFREQ) {
		if (cur->axiclk_khz != next->axiclk_khz) 
			clk_set_rate(EBI1_CLK, next->axiclk_khz * 1000);
	}
*/

	if (reason == SETRATE_CPUFREQ) {
		/* Drop VDD level if we can. */
		if (next->vdd < cur->vdd) {
			if (acpuclk_set_vdd_level(next->vdd))
				dprintf(INFO, "acpuclock: Unable to drop ACPU VDD.\n");
		}
	}

	return 0;
}
 
Last edited:

Hammerfest

Senior Member
Apr 3, 2008
1,683
286
San Antonio, TX
If the required voltage is "above" our maximum limit, then it gives an error and bugs the kernel, but if the required voltage is "below" our regulator can supply, it just supplies the nearest possible voltage to the requested one since lower freq with higher voltage is perfectly fine but not the other way round.

So if (requested_voltage < minimum_voltage_we_can_supply) it just supplies minimum_voltage_we_can_supply instead of the requested voltage. but if (requested_voltage > minimum_voltage_we_can_supply) it prints error and goes into an infinite loop (no return).

This is what i am using in lk right now to control acpu frequency (i kanged it from linux kernel)
Code:
int acpuclk_set_rate(unsigned long rate, enum setrate_reason reason)
{
    struct clkctl_acpu_speed *cur, *next;

    cur = drv_state.current_speed;

    /* convert to KHz */
    rate /= 1000;

    dprintf(INFO, "[ACPU] switching to %d MHz\n", ((int) (rate/1000)));

    if (rate == cur->acpu_khz || rate == 0)
        return 0;

    next = acpu_freq_tbl;
    for (;;) {
        if (next->acpu_khz == rate)
            break;
        if (next->acpu_khz == 0)
            return -1;
        next++;
    }

    if (reason == SETRATE_CPUFREQ) {
        /* Increase VDD if needed. */
        if (next->vdd > cur->vdd) {
            if (acpuclk_set_vdd_level(next->vdd)) {
                dprintf(INFO, "acpuclock: Unable to increase ACPU VDD.\n");
                return -1;
            }
        }
    }

    if (next->clk_sel == SRC_SCPLL) {
        /* curr -> standby(MPLL speed) -> target */
        if (!IS_ACPU_STANDBY(cur))
            select_clock(acpu_stby->clk_sel, acpu_stby->clk_cfg);
        scpll_set_freq(next->sc_l_value);
        select_clock(SRC_SCPLL, 0);
    } else {
        if (cur->clk_sel == SRC_SCPLL) {
            select_clock(acpu_stby->clk_sel, acpu_stby->clk_cfg);
            select_clock(next->clk_sel, next->clk_cfg);
            scpll_power_down();
        } else {
            select_clock(next->clk_sel, next->clk_cfg);
        }
    }

    drv_state.current_speed = next;

/*    This will fail anyway, so remove it for now
    if (reason == SETRATE_CPUFREQ) {
        if (cur->axiclk_khz != next->axiclk_khz) 
            clk_set_rate(EBI1_CLK, next->axiclk_khz * 1000);
    }
*/

    if (reason == SETRATE_CPUFREQ) {
        /* Drop VDD level if we can. */
        if (next->vdd < cur->vdd) {
            if (acpuclk_set_vdd_level(next->vdd))
                dprintf(INFO, "acpuclock: Unable to drop ACPU VDD.\n");
        }
    }

    return 0;
}

so if i understand it correctly, even those kernels who can do 96mhz, there will be no power savings at all? and correct me if im wrong, but if a batt monitor says its using 3ma on 96mhz, but 7-9ma on 245mhz... whats going on? is it just the voltage thats effected or the speed as well... this is confusing to a non-dev like me...
 

Rick_1995

Inactive Recognized Developer
Sep 3, 2009
1,118
3,017
Santa Clara
so if i understand it correctly, even those kernels who can do 96mhz, there will be no power savings at all? and correct me if im wrong, but if a batt monitor says its using 3ma on 96mhz, but 7-9ma on 245mhz... whats going on? is it just the voltage thats effected or the speed as well... this is confusing to a non-dev like me...
yes, they will not have any power saving. Battery stats are not always reliable, because some driver can do excessive polling when having error, it is a very big system to point out what is consuming power when.

Got gpio, clock, acpuclock, interrupts, i2c, ds2746 working in poop loader for leo

here is a screen of battery stats being polled every 1.5 seconds in poop loader, look at how inconsistent they are, it depends on what is executing and what cpu freq we scale to for completing that task based on various algorithms which will look what would be better, taking time and doing task in low power or finish fast but consuming more power..

6946777208_8a4b0047f2_z.jpg


maybe i can get touchscreen to work since it is also using i2c but it will be complex with the menu system.. also i need to get sdcard to work now.
 
P

prime_225

Guest
Sony's ics update came with 2.6.32.9 kernel. It's stable with no lags and hardware acceleration fully working. It was one of my friends neo v who flashed the nordic firmware even though he doesn't live in that region. I exchanged that phone for a couple of days with my live with walkman. My point is that, I thought the 3.0.x kernel was complementary for ics. How do these devs get them working fully in ics even though they are old?
 

NYLimited

Inactive Recognized Contributor
Jan 5, 2008
3,825
2,286
New Hampshire, USA
If the required voltage is "above" our maximum limit, then it gives an error and bugs the kernel, but if the required voltage is "below" our regulator can supply, it just supplies the nearest possible voltage to the requested one since lower freq with higher voltage is perfectly fine but not the other way round.

So if (requested_voltage < minimum_voltage_we_can_supply) it just supplies minimum_voltage_we_can_supply instead of the requested voltage. but if (requested_voltage > minimum_voltage_we_can_supply) it prints error and goes into an infinite loop (no return).

Cool! So you actually step through the entire table in the loop to accomplish this. Not that it matters but what would actually happen if you tried to drop below the officially defined "minimum"? Would the hardware just puke? :)
 

dertester123

Senior Member
Oct 11, 2008
960
202
Cool! So you actually step through the entire table in the loop to accomplish this. Not that it matters but what would actually happen if you tried to drop below the officially defined "minimum"? Would the hardware just puke? :)

If I understood him right in previous posts its just that you can command lower values but actually the hardware powers with it's own lowest value that is 245mhz and 1v.

Bad news buy nice work Rick awesome investigation and I'm amazed what you're working at!!

Gesendet von meinem HD2 mit Tapatalk 2
 

Top Liked Posts

  • There are no posts matching your filters.
  • 67
    Timeline for experimental builds [Latest version: 1.5.2.1 @ 6/May/2013]

    ALWAYS make a backup before installing any of these test versions and try them at your own risk!

    • Installation:
    • Links:
      1. Compiled binary
      2. Source code
    • Related Projects (WIP):
    • Timeline:
      1. 19/Jan/2012 - FIRST alternative suggestion
        Link
      2. 25/Jan/2012 - UPDATE #1
        Link
      3. 26/Jan/2012 - UPDATE #2
        1. New format option leaves recovery partition untouched. So yeah, no pc needed after formatting !:)
          Basically it erases all the other existing partitions one by one. At the end recovery partition is intact so we can enter recovery interface and flash our preferred rom.
        2. Set userdata as 'auto-size' partition . So default partition table is:
          "recovery:5"
          "misc:1"
          "boot:5"
          "userdata:0"
          "system:150"
          "cache:5"
        3. Revised the 'Enable/Disable ExtROM' option.
          If enabled it will automatically be used for 'cache' partition .
          If disabled 'cache' will automatically return to 5MB size .
      4. 28/Jan/2012 - UPDATE #3
        1. Cleaned some code that was not used .
        2. Added option to convert 'auto-size' partition to 'fixed-size' .
        3. Added option to set a partition as 'auto-size' if one doesn't already exist (just decrease its size to zero).
        4. Small fixes to some features I previously added.
      5. 29/Jan/2012 - UPDATE #4
        1. Revised the 'rearrange partitions' menu.
          We cannot move recovery , cause then we'll have to re-flash it via pc .
          How it works:
          Lets say we have this layout:
          1."recovery"
          2."misc"
          3."boot"
          4."userdata"
          5."system"
          6."cache"
          And we want to change it to:
          1."recovery"
          2."misc"
          3."boot"
          4."cache"
          5."system"
          6."userdata"
          1. Enter 'REARRANGE PARTITIONS'
          2. Select 'userdata' -> Scroll DOWN to 6 -> Select it
            (You should see the change in the order of the partitions immediately! Don't worry nothing is committed. If you exit and re-enter SETTINGS menu everything will be reset.)
          3. Select 'COMMIT CHANGES' -> Select 'APPLY'
          (Of course you still have the option to re-order and re-size the partitions via pc, if the default layout doesn't fit your needs)
          WARNING ! If you change the order of the partitions then have in mind that the same /dev/block/mtdblock<n>, n=0,1,2,... point to different mount points.
        2. Clean up some code
      6. 01/Feb/2012 - UPDATE #5
        1. Added new info when booting
          After the partition table you should see a list with the existing bad blocks IF ANY. (CONFIRMED)
        2. IF there are any bad blocks inside recovery,misc,boot,sboot,cache THEN they will be auto-re-sized by adding 1MB to each one.
        3. Changed some output messages
      7. 02/Feb/2012 - UPDATE #6
        1. Changed the function regarding auto-resizing:
          IF there are any bad blocks inside recovery,misc,boot,sboot,cache THEN 1MB per 1bad block will be added to each partition with bad block(s). (CONFIRMED)
        2. Changed some output messages
        3. Default partition table is:
          "recovery:5"
          "misc:1"
          "boot:5"
          "system:150"
          "userdata:0"
          "cache:5"
      8. 06/Feb/2012 - UPDATE #7
        1. Minor fixes/changes
        2. Changed some output messages
      9. 08/Feb/2012 - UPDATE #8
        1. If you press&hold the middle [MENU] button during (re)booting you can immediately boot android from sdcard(emmc), assuming that you have flashed sboot partition with the appropriate image and you have the required folder in the root of your sdcard.
          Process of having dual boot(without using pc):
          Prerequisite: The folder(usually named 'Android' or 'ics') with the SD version of Android exists in the root of your sdcard
          1. Boot the device in cLK pressing [BACK] button, having the sdcard inserted
          2. Go to MAIN MENU/SETTINGS - Select ADD sBOOT
          3. Select BOOT RECOVERY from MAIN MENU
          4. Select 'install zip from sdcard' and use something like this(this is an example) flash_sboot.zip
          5. Select 'reboot system now' and press&hold [MENU] button to directly boot Android (emmc)
        2. After each change(resize/rearrange parts, add/remove sboot, enable/disable ExtROM) is committed there is no longer the need to reboot. clk will just auto return to main menu, and from there you can select your next action.
      10. 14/Feb/2012 - UPDATE #9
        1. Changed cpu speed to 998MHz.
        2. Added option to show/hide info(ptable and bbtable) at start-up under MAIN MENU/INFO.
        3. If you invert screen colors, the change will remain after rebooting.
        4. The speed of reading/writing or erasing is improved a bit.
        5. Cleaned up some code.
      11. 22/Feb/2012 - UPDATE #10
        1. Removed showing bad block info during startup. Bad blocks can be checked from SETTINGS/PRINT BAD BLOCK TABLE(if any bad blocks exist).
        2. Added chipset info in header.
        3. Cleaned up more unused code.
      12. 13/Apr/2012 - UPDATE #11
        1. Ported Rick's latest commit.
        2. Added ability to triple boot. It works like secondary boot 'sboot'; you can add a tertiary boot partition named 'tboot' and the rest work the same.
        3. Added "USB" mark for usb detection; if your device is connected to the pc via usb you should see 'USB' at the bottom of the screen.
        4. Cleaned up more unused code. (EXPERIMENTAL)
      13. 06/Jun/2012 - UPDATE #12
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Added CID, IMEI , BT Mac Addr and WiFi Mac Addr under Device Info (Getting WiFi Mac doesn't work correctly:( ).
        2. Revised the 'Enable/Disable ExtROM' option.
          If enabled, a partition named "null" (which will be only 1 block in size) will be created after 'userdata' and the rest 191 blocks will automatically be used for 'cache' partition .
          If disabled, 'cache' will automatically return to 5MB size .
        3. Added ability to resize partitions by giving size in blocks too . NOT TESTED
          Code:
          fastboot oem part-resize name:size:b
          where size is in blocks
          i.e. fastboot oem part-resize misc:9:b => will resize 'misc' part to 9 blocks
        4. Added ability to add partitions by giving size in blocks too . NOT TESTED
          Code:
          fastboot oem part-add name:size:b
          where size is in blocks
          i.e. fastboot oem part-add misc:8:b => will add 'misc' part with size 8 blocks (= 1MB)
        5. Added option to enable/disable usb detection ("USB" mark at the bottom of the screen if device connected to pc) .
        6. Changed version to LK_1.5black to avoid confusion regarding latest version of main cLK.
      14. 21/Jun/2012 - UPDATE #13
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. cLK can now be updated through fastboot* using a 'proper' image file**
          *:In order to update use :
          Code:
          fastboot flash lk lk.img
          **:In order to create the lk.img, use nbgen :
          Code:
          nbgen -b:lk.bin -o:lk.img
          -Note that the partition table will not be overwitten.
          -Also you can update clk from recovery or from android.
        2. Bug fixes
      15. 20/Jul/2012 - UPDATE #14
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Added option to reset ANY settings you have modified.
          (RESET SETTINGS under SETTINGS MENU = 'fastboot oem reset' ,previously cmd was 'fastboot oem format_vptable')
        2. Fixed errors caused by some partition changes, so it should be stable now!
      16. 26/Jul/2012 - UPDATE #15
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Ported some commits from LK mainline.
          (https://github.com/travisg/lk/commit/a95146ec5aef73b49e37045f96a26c10431d37d4,
          https://github.com/travisg/lk/commit/6f28039866ddeb272e8660dd89a34208fc988896,
          https://github.com/travisg/lk/commit/fc20e231dbabecb612343aa6784705086844052f,
          https://github.com/travisg/lk/commit/ac8b88eefe9067fb0881e15435dce1bbc797d71b,
          https://github.com/travisg/lk/commit/836375f779308d868515d43fbd7979f07874b6de,
          https://github.com/travisg/lk/commit/c2a298970d74dca7c7d738b5e7e3ec04bee00984,
          https://github.com/travisg/lk/commit/c32135b7e5972ec77f0883f55dd8b866b3c07c0d,
          https://github.com/travisg/lk/commit/18559782b3335682310fdfd77b4ccb1563982d2a,
          https://github.com/travisg/lk/commit/06d781f162ff3b35f806de59d7f0bf5bf87fdabd,
          https://github.com/travisg/lk/commit/4bea031527e6d0153e61b7ffd4696df8a30f006c)
        2. 2nd attempt at fixing errors caused by some partition changes.
        3. Edited nbgen so that it is possible to add recovery as a second partition.
      17. 11/Sep/2012 - UPDATE #16
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Added option to set the default boot partition. At start default is 'boot', but you can change it.
        2. Added option to show or not a MULTIBOOT MENU at startup. Default behavior is to be hidden.
        3. The MULTIBOOT MENU will show any existing boot partitions
          and will boot from the default selection in 10s if you don't select something else.
        4. Code:
          supported_boot_partitions[] =
          {
          	{"boot",},
          	{"sboot"},
          	{"tboot"},
          	{"vboot"}, //no uboot :D
          	{"wboot"},
          	{"xboot"},
          	{"yboot"},
          	{"zboot"},
          	{""},
          };
          As you see we have the primary boot + 7 extra boot partitions.
          However there is NO change to the MAX_NUM_PART (max number of the partitions) which is 12, so you can eventually add 5 (of the 7 extra) different boot partitions,
          (unless you don't have a NAND installation and you have deleted 'system' and 'userdata' so you can use all 7 extra, but I think it will be a mess :p).
        5. Added ability to control menu navigation through fastboot:
          Code:
          'fastboot oem key 8' ==> KEY_VOLUMEUP
          'fastboot oem key 2' ==> KEY_VOLUMEDOWN
          'fastboot oem key 5' ==> KEY_SEND
          'fastboot oem key 0' ==> KEY_BACK
        6. Removed option to enable/disable usb detection ("USB" mark at the bottom of the screen if device connected to pc) . By default it will be disabled .
      18. 18/Sep/2012 - UPDATE #17
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. acpuclock that Rick wrote and I managed to break:eek:, works again. So you have a new option under SETTINGS: SET MAX/DEFAULT CPU FREQ.
        2. Changed the menus. Rearranged SETTINGS and INFO and their entries.
        3. Fixed the charging while off problem that the last version had. Plus you don't need to unplug the cable in order to turn your phone on. Just press once the [CALL] button.
        4. Fixed errors regarding partition rearrangement.
          Also from that menu you can remove 'system' and 'userdata' from the partition table, by setting their order to 0. This will give you the chance to add 2 more extra boot partitions. If you went crazy and did that, but something doesn't work well, and you want back 'system' and 'userdata' you just have to RESET SETTINGS and the partition will return to default.
        5. Fixed some errors regarding add/remove %x%boot.
        6. Changed how the countdown in multiboot menu works. If you interact then the countdown is canceled.
        7. Added option whether to fill the bad block table at startup or not, FILL/SKIP FILLING BBT @ STARTUP under SETTINGS.
          Remember the option PRINT BAD BLOCK TABLE? If you don't select to FILL BBT @ STARTUP, then you won't see a BAD BLOCK TABLE because it will not be created. In simple words this means a little faster boot into cLK menu.
        8. At a (re)boot event the way LK is determining what to do is:
          First checks if any key was pressed, then checks the boot reason.
          For example, if you selected 'Reboot to bootloader' from android but in the process you want to boot to recovery, you can just press&hold the [HOME] button until the phone vibrates.
        9. Removed the function regarding auto-resizing small partitions which have bad blocks.
        10. Added a fading animation before booting any kernel or recovery.
      19. 18/Sep/2012 - UPDATE #18
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Fixed messed up menus if more than one extra boot partition exists.
      20. 20/Sep/2012 - UPDATE #19
        Code:
        [U]Default partition table:[/U] recovery=5,misc=1,boot=5,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Fixed messed up menus if the order of the extra boot partitions is changed from default.
      21. 24/Oct/2012 - UPDATE #20
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Increased default size of 'recovery' partition to 6MB and changed layout.
        2. Removed fading effect.
        3. Added back option to enable/disable usb detection ("USB" mark at the bottom of the screen if device connected to pc).
        4. Some platform code changes.
      22. 29/Oct/2012 - UPDATE #21
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Leds work. If you boot into cLK menu and your device is connected to a pc the led will go green. If not connected the led will stay turned off.
        2. Screen brightness can be adjusted. Added option under SETTINGS. The selected level will be the default at each boot.
        3. Entering cLK menu is slightly slower than before.
        4. Added an option to change UDC settings at will. This is an attempt to solve any usb issues you might have (fastboot errors) without having to re-compile cLK's binary with different udc settings. 1st set is the default one. 2nd is the set that cLK used to have initially (1.5_rc1). 3rd is not working for me either, but left it for testing. So lets see how this goes...
        5. When in cLK menu you can select items with the [MENU] button too(added this for those with broken [CALL] button).
      23. 11/Nov/2012 - UPDATE #22
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Changed some options under SETTINGS.
        2. Added option to use inbuilt off-mode charging under SETTINGS/SET DEFAULT OFF-MODE CHARGING. From that menu you can select it (option USE INBUILT OFF-MODE CHARGING) and try it out.
          If using inbuilt off-mode charging the device wakes up if you press POWER [button].
          This is an experimental feature! Only tested with original battery and charger.
          High Voltage (as measurement) is set to 4.2 V. Use at your own risk! Otherwise stick to the default way of charging (option USE RECOVERY'S OFF-MODE CHARGING).
        3. Usb detection function changed (option under SETTINGS/ENABLE USB DETECTION). "USB" mark at the bottom of the screen if device connected to pc is replaced by turning led on/off if connected/disconnected.
        4. Added some code as an experiment for a potential off-mode alarm application.
          More info in this thread.
          Warning : I didn't know java or how to use eclipse and make an android app. Seriously, I still don't. But after some days I managed to write this application mostly because I wanted to know if this idea was possible. So consider it as an example. Any criticism accepted:eek:. I just hope that someone may find it useful and make the best out of it.
      24. 19/Nov/2012 - UPDATE #23
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] CWM Recovery Touch Beta 8 Release Candidate 1
        [U]ExtRom:[/U] Disabled
        1. Added option to set the voltage threshold for inbuilt off-mode charging under SETTINGS. It can be set from 3.8 to 4.2 V.
        2. Changed the code for the off-mode alarm application based on Rick's suggestions. In order to work you need to have a patched kernel like this one. More info on off-mode alarm in this thread.
        3. Added some code for another project, a multiboot android app. More info here.
        4. Small fixes.
      25. 23/Nov/2012 - UPDATE #24
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] (a)CWM Recovery Touch Beta 8 Release Candidate 1 Or (b)TWRP 2.2.2.0 with new zImage (patched tytung's latest GB-kernel)
        [U]ExtRom:[/U] Disabled
        1. Voltage threshold for inbuilt off-mode charging can be set from 3.7 to 4.2 V.
        2. First attempt to fix problem with suspend mode.
        3. Each included recovery is edited to fix the problem with the limitation of total mtd partitions(before edit the max was 11 - now I've set it to 20).
      26. 05/Feb/2013 - UPDATE #25
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] Extended TWRP 2.4.1.0.r1
        [U]ExtRom:[/U] Disabled
        1. Fixed output for option to make an 'autosize' partition 'fixed-size'.
        2. If set to do so, fill bad block table before any flash_write will be called(like in set_recovery_message()).
        3. Add ability to change ptable according to values passed from recovery_msg.
        4. Ported commits from mainline lk.
      27. 06/Feb/2013 - UPDATE #26
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] Extended TWRP 2.4.1.0.r1
        [U]ExtRom:[/U] Disabled
        1. Changes relevant to memory offsets:
          Code:
          RAMDISK_ADDR     		:= "(BASE_ADDR+0x01000000)"
          SCRATCH_ADDR     		:= "(BASE_ADDR+0x02000000)"
      28. 11/Feb/2013 - UPDATE #27
        Code:
        [U]Default partition table:[/U] recovery=6,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] Extended TWRP 2.4.1.0.r2
        [U]ExtRom:[/U] Disabled
        1. Added ability to wake the device while off-mode charging by pressing the middle [MENU] button (for those with power button problem).
        2. Updated the change_ptn_layout() function to be compatible with new Extended-TWRP.
      29. 14/Mar/2013 - UPDATE #28
        Code:
        [U]Default partition table:[/U] recovery=8,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] Extended TWRP 2.4.4.0.r1
        [U]ExtRom:[/U] Disabled
        1. Increased default size of recovery partition to 8MB.
        2. Updated the change_ptn_layout() function to be compatible with new Extended-TWRP.
      30. 6/May/2013 - UPDATE #29
        Code:
        [U]Default partition table:[/U] recovery=8,boot=5,misc=1,system=150,userdata=0,cache=5
        [U]Included recovery:[/U] Extended TWRP 2.5.0.3
        [U]ExtRom:[/U] Disabled
        1. Update get_rom_name_from_cmdline(): return NAND if cmline = "no_console_suspend=1 console=null".
        2. Update included version of recovery in nbh file.
    64
    Posts have been re-ordered, Look above.
    63


    Drivers and Utilities
    The following tools are provided here, for linux(ubuntu 64bit binaries), windows and mac:
    • adb
    • fastboot
    • mkbootimg (not windows)
    • unpackbootimg (not windows)

    Q: What is cLK?
    A: cLK is a homebrew bootloader which will allow you to boot into android directly on your windows mobile phone.

    Q: Is it better then magldr ?
    A: This question is heavily dependent on the user and his needs however the following points might help you make a better choice:
    • magldr is capable of booting Windows Phone 7.x.
    • cLK boots a tad faster than magldr as it does not wait for radio processor on boot.
    • cLK is open source so you can give/take what you want and learn stuff while doing so.
    • cLK has Partitioning tools inbuilt, you'll never have to hook your phone to a computer ever again, just for flashing a rom!
    • cLK has recovery inbuilt for users with broken usb port.
    • cLK supports off-mode charging

    • RMNET does not work.

    57
    [07 Jun 2011][BOOTLOADER]+[RECOVERY]cLK v1.4.0.1

    Contents
    Post 6: cLK compile HowTO (Linux)
    Post 7: cLK compile HowTO (Windows)
    Post 8: ROMs, HowTOs, Utilities (created by others)
    Post 9: convert magldr ROM to cLK HowTO


    Source code


    Drivers and Utilities
    The following tools are provided in here, for linux(ubuntu 64bit binaries), windows and mac; thanks to Segnale007, who compiled them for mac.
    • adb
    • fastboot
    • mkbootimg (not windows)
    • unpackbootimg (not windows)
    50
    cLK v1.5
    Check first post for information.

    You're free to mirror it, but possibly include a link to this thread incase of future updates.