View source for U-boot-gena2x
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to U-boot-gena2x.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to U-boot-gena2x.
I decided to put my version of u-boot here, along with a short FAQ and list of known bugs. Please feel free to add your bugs or questions here.
The current version of u-boot fully supports uploading and downloading via dfu, booting any know distro, is fully configurable, and has no known grave bugs.
This version of u-boot is based on openmoko's stable branch of u-boot. Git can be viewed here.
Significant patches are:
Version 2:
Version 1:
Public freerunners should have the same bootloader (board v5 and later). Latest binary version is here [1].
to use u-boot as NAND bootloader, you should flash the binary to the special partition:
sudo dfu-util -a u-boot -D u-boot_g2x_2.udfu
NAND uboot occupies 2 partitions on NAND, one partition for u-boot itself and one for it's configuration.
To setup u-boot, the easiest way is to edit the simple text file on your computer and then upload it to your phone with dfu-util.
Sample text config may be found here. This version supports various kinds of boot options in the menu. You may use it as a sample for your config.
If you are switching from qi, just boot your distro with Qi, then do cat /proc/cmdline
and compare/update the parameters in your config file.
Then you can edit the config file to fit your needs, you should prepare it (this adds crc):
get envedit.pl and crc32.pl from [2] and run:
./envedit.pl -s 262144 -f environment.in > u-boot_env.in
then flash resulting file to configuration partition:
sudo dfu-util -a u-boot_env -D u-boot_env.in
menu_2= Boot from microSD (FAT+ext2): setenv bootargs ${bootargs_base} root=/dev/mmcblk0p1 rootwait # mem=127M panic=20 ${mtdparts} ro; mmcinit; fatload mmc MMC_NUM 0x32000000 ${sd_image_name} 0x300000; bootm 0x32000000
menu_2= Boot from microSD (ext2+ext3): setenv bootargs ${bootargs_base} root=/dev/mmcblk0p1 rootwait # mem=127M panic=20 ${mtdparts} ro; mmcinit; ext2load mmc MMC_NUM 0x32000000 ${sd_image_name} 0x300000; bootm 0x32000000
menu_3= Boot NAND/ubi-zlib: setenv bootargs ${bootargs_base} ${mtdparts} rootfstype=ubifs ubi.mtd=6,2048 ubi.comp root=ubi0:om-gta02-rootfs rootflags=compr=zlib,no_chk_data_crc; nand read.e 0x32000000 kernel 0x300000; bootm 0x32000000
option | description |
---|---|
root=/dev/mmcblk0p2 | rootfs is second partition on SD card |
root=/dev/mtdblock6 | rootfs is on usual location on NAND |
rootwait | needed for booting from SD. force kernel to delay boot until sd card is ready. better than older rootdelay= |
panic=20 | on kernel crash, reboot automatically after 20 second delay. useful for lindi's ramconsole patch |
hardware_ecc=1 | use hardware ecc support for NAND, this is not default option use only if your rootfs NAND is flashed not with dfu-util, but with direct copy from sd. this speeds up NAND read on zlib-compressed ubi by 8%. |
rootfstype=XX | needed if your rootfs is ext2 to force kernel to use ext2 driver not ext3. use if kernel can't detect partition type |
ubi.mtd=6,2048 | claim 6th mtd partition as ubi layer with 2048 page align |
rootflags=compr=zlib,no_chk_data_crc | mount options of rootfs, use no_chk_data_crc to speed up ubifs by 8% |
mem=127M | reserve 1Mb if you using lindi's ramcomsole patch |
By default, if you press the 'power' button, the "bootcmd" from your config is executed, so set it up accordingly for your default distribution.
To see the boot menu and select desired boot method, hold 'power', wait 1 second and then hold 'aux', wait 1 more second and release both.
I am working to fix these bugs now:
To workaround the bug that it's not possible boot with discharged/without battery, use following 'trick': insert charger cable and in same moment press 'power' button, add up 'aux' later for menu.