| Board: Nokia RX-51 aka N900 |
| |
| This board definition results in a u-boot.bin which can be chainloaded |
| from NOLO in qemu or on a real N900. It does very little hardware config |
| because NOLO has already configured the board. Only needed is enabling |
| internal eMMC memory via twl4030 regulator which is not enabled by NOLO. |
| |
| NOLO is expecting a kernel image and will treat any image it finds in |
| onenand as such. This u-boot is intended to be flashed to the N900 like |
| a kernel. In order to transparently boot the original kernel, it will be |
| appended to u-boot.bin at 0x40000. NOLO will load the entire image into |
| (random) memory and execute u-boot, which saves hw revision, boot reason |
| and boot mode ATAGs set by NOLO. Then the bootscripts will attempt to load |
| uImage or boot.scr from a fat, ext2/ext3 or ext4 filesystem in external |
| SD card or internal eMMC memory. If this fails or keyboard is closed then |
| the appended kernel image will be booted using some generated and some |
| stored ATAGs (see boot order). |
| |
| For generating combined image of u-boot and kernel there is a simple script |
| called u-boot-gen-combined. It is available in following repository: |
| |
| https://github.com/pali/u-boot-maemo |
| |
| There is support for hardware watchdog. Hardware watchdog is started by |
| NOLO so u-boot must kick watchdog to prevent reboot device (but not very |
| often, max every 2 seconds). There is also support for framebuffer display |
| output with ANSI escape codes and the N900 HW keyboard input. USB tty works |
| but is disabled because it prevents the current Maemo kernel from booting. |
| |
| When U-Boot is starting it enable IBE bit in Auxiliary Control Register, |
| which is needed for Thumb-2 ISA support. It is workaround for errata 430973. |
| |
| Default boot order: |
| |
| * 0. if keyboard is closed boot automatically attached kernel image |
| * 1. try boot from external SD card |
| * 2. try boot from internal eMMC memory |
| * 3. try boot from attached kernel image |
| |
| Boot from SD or eMMC in this order: |
| |
| * 1. |
| * 1.1 find boot.scr on first fat partition |
| * 1.2 find uImage on first fat partition |
| * 1.3 same order for 2. - 4. fat partition |
| * 2. same as 1. but for ext2/3 partition |
| * 3. same as 1. but for ext4 partition |
| |
| |
| Available additional commands/variables: |
| |
| * run sercon - Use serial port for control |
| * run usbcon - Use usbtty for control |
| * run vgacon - Use framebuffer and HW keyboard for control (default) |
| |
| * run sdboot - Boot from external SD card (see boot order) |
| * run emmcboot - Boot from internal eMMC memory (see boot order) |
| * run attachboot - Boot attached kernel image (attached to U-Boot binary) |
| |
| * run scriptload - Load boot script ${mmcscriptfile} |
| * run scriptboot - Run loaded boot script |
| * run kernload - Load kernel image ${mmckernfile} |
| * run initrdload - Load initrd image ${mmcinitrdfile} |
| * run kernboot - Boot loaded kernel image |
| * run kerninitrdboot - Boot loaded kernel image with loaded initrd image |
| |
| * run trymmcscriptboot - Try to load and boot script ${mmcscriptfile} |
| * run trymmckernboot - Try to load and boot kernel image ${mmckernfile} |
| * run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile} |
| with initrd image ${mmcinitrdfile} |
| |
| Additional variables for loading files from mmc: |
| |
| * mmc ${mmcnum} (0 - external, 1 - internal) |
| * partition number ${mmcpart} (1 - 4) |
| * parition type ${mmctype} (fat, ext2, ext4) |
| |
| Additional variables for booting kernel: |
| |
| * setup_omap_atag - Add OMAP table into atags structure (needs maemo kernel) |
| * setup_console_atag - Enable serial console in OMAP table |
| * setup_boot_reason_atag - Change boot reason in OMAP table |
| * setup_boot_mode_atag - Change boot mode in OMAP table |
| |
| Variable setup_omap_atag is automatically set when booting attached kernel. |
| When variable setup_omap_atag is set, variable setup_console_atag is unset |
| and u-boot standard output is set to serial then setup_console_atag is |
| automatically set to 1. So output from Maemo kernel would go to serial port. |
| |
| USB TTY: |
| |
| Maemo kernel 2.6.28 will crash if u-boot enable usb tty. So USB TTY is disabled. |
| For enabling USB TTY just add this line to file include/configs/nokia_rx51.h |
| |
| #define CONFIG_USB_TTY |
| |
| |
| UBIFS support: |
| |
| UBIFS support is disabled, because U-Boot image is too big and cannot be |
| flashed with attached zImage to RX-51 kernel nand area. For enabling UBIFS |
| support add following lines into file configs/nokia_rx51_defconfig |
| |
| CONFIG_CMD_UBI=y |
| CONFIG_CMD_UBIFS=y |
| CONFIG_MTD_UBI_FASTMAP=y |
| CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1 |