1Board: Nokia RX-51 aka N900 2 3This board definition results in a u-boot.bin which can be chainloaded 4from NOLO in qemu or on a real N900. It does very little hardware config 5because NOLO has already configured the board. Only needed is enabling 6internal eMMC memory via twl4030 regulator which is not enabled by NOLO. 7 8NOLO is expecting a kernel image and will treat any image it finds in 9onenand as such. This u-boot is intended to be flashed to the N900 like 10a kernel. In order to transparently boot the original kernel, it will be 11appended to u-boot.bin at 0x40000. NOLO will load the entire image into 12(random) memory and execute u-boot, which saves hw revision, boot reason 13and boot mode ATAGs set by NOLO. Then the bootscripts will attempt to load 14uImage or boot.scr from a fat, ext2/ext3 or ext4 filesystem in external 15SD card or internal eMMC memory. If this fails or keyboard is closed then 16the appended kernel image will be booted using some generated and some 17stored ATAGs (see boot order). 18 19For generating combined image of u-boot and kernel there is a simple script 20called u-boot-gen-combined. It is available in following repository: 21 22 https://github.com/pali/u-boot-maemo 23 24There is support for hardware watchdog. Hardware watchdog is started by 25NOLO so u-boot must kick watchdog to prevent reboot device (but not very 26often, max every 2 seconds). There is also support for framebuffer display 27output with ANSI escape codes and the N900 HW keyboard input. 28 29When U-Boot is starting it enable IBE bit in Auxiliary Control Register, 30which is needed for Thumb-2 ISA support. It is workaround for errata 430973. 31 32Default boot order: 33 34 * 0. if keyboard is closed boot automatically attached kernel image 35 * 1. try boot from external SD card 36 * 2. try boot from internal eMMC memory 37 * 3. try boot from attached kernel image 38 39Boot from SD or eMMC in this order: 40 41 * 1. 42 * 1.1 find boot.scr on first fat partition 43 * 1.2 find uImage on first fat partition 44 * 1.3 same order for 2. - 4. fat partition 45 * 2. same as 1. but for ext2/3 partition 46 * 3. same as 1. but for ext4 partition 47 48 49Available additional commands/variables: 50 51 * run sdboot - Boot from external SD card (see boot order) 52 * run emmcboot - Boot from internal eMMC memory (see boot order) 53 * run attachboot - Boot attached kernel image (attached to U-Boot binary) 54 55 * run scriptload - Load boot script ${mmcscriptfile} 56 * run scriptboot - Run loaded boot script 57 * run kernload - Load kernel image ${mmckernfile} 58 * run initrdload - Load initrd image ${mmcinitrdfile} 59 * run kernboot - Boot loaded kernel image 60 * run kerninitrdboot - Boot loaded kernel image with loaded initrd image 61 62 * run trymmcscriptboot - Try to load and boot script ${mmcscriptfile} 63 * run trymmckernboot - Try to load and boot kernel image ${mmckernfile} 64 * run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile} 65 with initrd image ${mmcinitrdfile} 66 67Additional variables for loading files from mmc: 68 69 * mmc ${mmcnum} (0 - external, 1 - internal) 70 * partition number ${mmcpart} (1 - 4) 71 * parition type ${mmctype} (fat, ext2, ext4) 72 73Additional variables for booting kernel: 74 75 * setup_omap_atag - Add OMAP table into atags structure (needs maemo kernel) 76 * setup_console_atag - Enable serial console in OMAP table 77 * setup_boot_reason_atag - Change boot reason in OMAP table 78 * setup_boot_mode_atag - Change boot mode in OMAP table 79 80 Variable setup_omap_atag is automatically set when booting attached kernel. 81 When variable setup_omap_atag is set, variable setup_console_atag is unset 82 and u-boot standard output is set to serial then setup_console_atag is 83 automatically set to 1. So output from Maemo kernel would go to serial port. 84 85UBIFS support: 86 87 UBIFS support is disabled, because U-Boot image is too big and cannot be 88 flashed with attached zImage to RX-51 kernel nand area. For enabling UBIFS 89 support add following lines into file configs/nokia_rx51_defconfig 90 91 CONFIG_CMD_UBI=y 92 CONFIG_CMD_UBIFS=y 93 CONFIG_MTD_UBI_FASTMAP=y 94 CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1 95