View Single Post
Posts: 2,081 | Thanked: 8,105 times | Joined on May 2010
Update: 06.04.2016 22:00 UTC: Version 2013.04-2 is in Extras-Devel, fixing u-boot-update-bootmenu script
Update: 20.04.2013 10:00 UTC: Version 2013.04-1 is in Extras-Devel, support for bootmenu ext2/3/4 partition
Update: 28.04.2012 11:50 UTC: Fixed problem with mkimage, build error in debian/rules and correct ram size in u-boot rx51 board code
Update: 28.04.2012 17:50 UTC: Fixed and enabled SW cursor. Now problem with damaged video output is fixed.
Update: 09.07.2012 08:10 UTC: New version which generate omap atag
Update: 09.07.2012 15:46 UTC: Set bootdealy to 0 if keyboard is closed
Update: 17.10.2012 20:15 UTC: Version 2012.10-rc3-1
Update: 13.12.2012 16:15 UTC: Version 2012.10-rc3-1 is now in Extras-Devel & Testing

Please vote for packages:


Das U-Boot is bootloader which can boot kernel image with initrd. It can be used for booting more kernels (Nokia stock, kernel-power, ...) or for booting other systems (Nemo, Nitdroid, Kubuntu, Debian, ...).

This U-Boot version is new and has nice Bootmenu (like Fanoush Bootmenu or Multiboot packages). I'm working on upstreaming U-Boot RX-51 (N900) port and this U-Boot Bootmenu. This version should be stable, it has FIXED battery draining and video output garbage.

U-Boot Bootmenu reading special config file and some images from MyDocs (file bootmenu.scr and directory bootmenu-img.d). This special u-boot config file is binary and is generated from text config files by script u-boot-update-bootmenu

New U-Boot has 3 packages:

u-boot-bootimg - contains only u-boot binary, nothing more (it is not need for end-users)

u-boot-tools - contains tools:
* u-boot-gen-combined - generate combined images (u-boot with kernel)
* u-boot-update-bootmenu - update bootmenu entries for U-Boot
* mkimage - convert zImage kernel format to uImage (U-Boot format)

u-boot-flasher - contains combined image: u-boot binary with stock PR1.3 kernel. After installation is this image flashed, and replace actual kernel. This package depends on u-boot-tools!

Plus you need fiasco-image-update-ask (which ask before flashing other kernel/uboot version). More info is here: or

Download & Install:

This U-Boot version is now in Extras-Devel & Extras-Testing. Install package u-boot-flasher via apt-get or via Hildon Application Manager find "U-Boot with kernel 2.6.28-omap1".

Hildon Application Manager will not allow you to install this U-Boot if there are some problems.

Source code:
Source code of u-boot (with n900 port) is on;a=summary
Source code of Maemo Debian packaging (with u-boot-update-bootmenu script) is on github:

If you want to support my work on U-Boot n900 port, now you can donate:


Update: New version 2013-04-2
* u-boot-update-bootmenu: Support for --no-attached and fixed support for ext2/3/4 MyDocs

Update: New version 2013.04-1
* New upstream version 2013.04 now contains all n900 patches (everything with bootmenu was upstreamed)
* Added support for ext2/3/4 partition for MyDocs (before bootmenu worked only with FAT32 MyDocs)
* Do not compile U-Boot on autobuilder, but use precompiled version by my gcc 4.7
* U-Boot now can boot 3.x kernels too (thanks to gcc 4.7)
* u-boot-update-bootmenu can be configured to use different MyDocs, etc and boot paths (useful for non Maemo systems)

Update: New version 2012.10-rc3-1
* disabled onenand support (which cause non bootable kernel on non 2101 hw revs)
* added thumb-2 errata 430973 workaround (set IBE bit in Auxiliary Control Register)
* reuse bootreason, bootmode, hwrev, nolo ver in omap atag table
* added env setup_boot_reason_atag and setup_boot_mode_atag (for forcing in omap atag table)
* rewritten assembler code (attached kernel image is now moved to end of ram)
* reset lp5523 led chip
* do not append zero size ATAG_MEM
* depends on fiasco-image-update-ask (which ask you before flashing other kernel/uboot version)
* u-boot-update-bootmenu look for kernel image in /opt/boot too (usefull for optification)

Update: New version 2012.04-2
* load bootmenu.src always (if keyboard is closed, first menu entry will be automatically boot)
* u-boot now NOT reusing omap atag, instead it generate it
* item option ITEM_REUSEATAGS is obsolated (but still working). Now use ITEM_OMAPATAG for booting Maemo 5
* u-boot variable atagaddr is now ignored, because u-boot is not reusing atags.
* u-boot command "setenv setup_omap_atag 1" will tell u-boot to generate omap atag for booting kernel PLEASE DO NOT USE IT - INSTEAD USE ITEM CONFIG FILE

Update: New version 2012.04
Visible changes for users:
* atag address for kernel is always 0x80000100, so for reusing atags from nolo is needed this command: "setenv atagaddr 0x80000100" instead "setenv atagaddr ${init_atagaddr}"PLEASE DO NOT WRITE YOUR OWN SCRIPTS - USE ITEM CONFIG FILES
* for reusing atags u-boot-update-bootmenu needs option ITEM_REUSEATAGS=1 (instead ITEM_USEATAG) - but works also old option (it show warning) - update your item config files
* "run noloboot" command renamed to "run attachboot"
* if you are not reusing atags from nolo, u-boot will generate memory atag which is needed to boot kernels (now maybe meego/upstream kernel will boot without nolo atags)
other changes:
* added ext4 support
* added console history support (but without cursor)
* disabled cursor - it is buggy now
* enabled generating memory atag
* restored powerbus state after enabling eMMC
* removed init_atagaddr variable (it must be always 0x80000100)
* fixed keymap, cursor keys
* ...

How to create bootmenu entry for U-Boot:
copy kernel image zImage-my to /opt/boot/
create config file in /etc/bootmenu.d/ with suffix .item

ITEM_NAME="My kernel"   # Menu entry name
ITEM_KERNEL="zImage-my" # zImage file in /boot/ or /opt/boot
ITEM_OMAPATAG=1         # This is needed for booting Maemo
Bootmeny entry for other system on SD card:

ITEM_NAME="My name"
ITEM_CMDLINE="kernel cmdline"
This means that you have SD card with first partition ext4. On that partition is kernel image with name uImage and initrd/initramfs file with name uInitrd (both generated by mkimage, see below)

Converting zImage to uImage:
Install package u-boot-tools and then run
$ mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n zImage -d zImage uImage
Warning: ITEM_USEATAG and ITEM_REUSEATAGS options was renamed to ITEM_OMAPATAG

Set bootmenu item file as default first entry
Create symlink to /etc/default/bootmenu.item from your item file. For example:
$ ln -s /etc/bootmenu.d/20-Maemo5-kernel-power- /etc/default/bootmenu.item
Item config file has same format as Fanoush bootmenu and is stored in same folder (Multiboot package has same format too, but in folder /etc/multiboot.d/)

After creating config run tool
$ u-boot-update-bootmenu
u-boot-update-bootmenu must be called every time, when config file is changed.

See also u-boot-images.tar.gz which contains example item files.

How to easy create Maemo kernel dualbooting: Stock PR1.3 kernel, kernel-power and other...

Just copy zImages to /opt/boot, create config files for each and run u-boot-update-bootmenu

kernel-power v50 has package kernel-power-bootimg in extras-devel & extras-testing. It contains proper zImage and item file.


This tarball contains some kernels (stock PR1.3 and stock PR1.3 with framebuffer) and some item files.

For playing & testing download archive to / and unpack it as root:
$ cd / && tar -xf u-boot-images.tar.gz

Do not forget to update bootmenu:
$ u-boot-update-bootmenu

Attached Images

Last edited by pali; 2016-04-06 at 22:17.

The Following 109 Users Say Thank You to pali For This Useful Post:
AapoRantalainen, accountvip, ade, Alfred, amin007110, ammyt, ArchiMark, ArnimS, Astaoth, ayazpak, azad1top, Bad_Habit, Bahador, bharathkumarst, bingbings, brad112358, chainsawbike, conred, cproc, datjomp, Dongle Fongle, don_falcone, dos1, drucula, dschwertb, dzano, eight, eliasps, elros34, ersanpermana, Estel, Fabry, flocke000, foobar, fw190, gttnnn, guilledoc, hamil_hamster, Hellmur, hermes040, HtheB, Hurrian, hyno111, int_ua, ivgalvez, ivyking, J4ZZ, joerg_rw, JorgeFX, Joseph9560, jurgel, kowalski, lenoch, marmistrz, MartinK, mayhem, Megaltariak, melisa queen, MetalGearSolid, Mike Fila, Minhaz, minimos, mosiomm, mouzg, mrsellout, nahci13, Netweaver, nicolai, nkirk, Nobless, nokiabot, panjgoori, PanzerSajt, patriotnop, pelago, peterleinchen, pgarvey, phapsubongtoi, pierrem, preflex, quailstorm, reinob, riv64, Santhan, sifo, Skaven2k2, Skry, skykooler, Sohil876, Sourav.dubey, sowwhatyoureap, SSLMM, stlpaul, strange1712, tanpoaran, tetris11_, trompkins, tullamulla, unclouded, unknown.obvious, uros, vetsin, whisk4s, wicket, X-J, XenGi, Zaerc, [DarkGUNMAN], Älä hakkaa