blob: 7f22ed49bd7574675f088e44996daac712bd9c5f [file] [log] [blame]
Pali Rohár248ef0a2012-10-29 07:54:01 +00001Board: 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
Pali Rohár0a8825c2021-06-18 15:27:03 +020014uImage, zImage or boot.scr from a fat or ext2/3/4 filesystem on external
Pali Rohár248ef0a2012-10-29 07:54:01 +000015SD 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
Pali Rohár0a8825c2021-06-18 15:27:03 +020019For generating combined image of u-boot and kernel (either in uImage or zImage
20format) there is a simple script called u-boot-gen-combined. It is available in
21following repository:
Pali Rohár95bb47c2020-06-01 00:26:32 +020022
23 https://github.com/pali/u-boot-maemo
24
Pali Rohár248ef0a2012-10-29 07:54:01 +000025There is support for hardware watchdog. Hardware watchdog is started by
26NOLO so u-boot must kick watchdog to prevent reboot device (but not very
27often, max every 2 seconds). There is also support for framebuffer display
Pali Rohárbba0bba2021-02-20 11:50:15 +010028output with ANSI escape codes and the N900 HW keyboard input.
Pali Rohár248ef0a2012-10-29 07:54:01 +000029
30When U-Boot is starting it enable IBE bit in Auxiliary Control Register,
31which is needed for Thumb-2 ISA support. It is workaround for errata 430973.
32
33Default boot order:
34
35 * 0. if keyboard is closed boot automatically attached kernel image
36 * 1. try boot from external SD card
37 * 2. try boot from internal eMMC memory
38 * 3. try boot from attached kernel image
39
40Boot from SD or eMMC in this order:
41
42 * 1.
43 * 1.1 find boot.scr on first fat partition
Pali Rohárd6d0a012020-04-01 00:35:17 +020044 * 1.2 find uImage on first fat partition
Pali Rohár0a8825c2021-06-18 15:27:03 +020045 * 1.3 find zImage on first fat partition
46 * 1.4 same order for 2. - 4. fat partition
Pali Rohár248ef0a2012-10-29 07:54:01 +000047 * 2. same as 1. but for ext2/3 partition
48 * 3. same as 1. but for ext4 partition
49
50
51Available additional commands/variables:
52
Pali Rohár248ef0a2012-10-29 07:54:01 +000053 * run sdboot - Boot from external SD card (see boot order)
54 * run emmcboot - Boot from internal eMMC memory (see boot order)
55 * run attachboot - Boot attached kernel image (attached to U-Boot binary)
56
57 * run scriptload - Load boot script ${mmcscriptfile}
58 * run scriptboot - Run loaded boot script
59 * run kernload - Load kernel image ${mmckernfile}
60 * run initrdload - Load initrd image ${mmcinitrdfile}
61 * run kernboot - Boot loaded kernel image
62 * run kerninitrdboot - Boot loaded kernel image with loaded initrd image
63
64 * run trymmcscriptboot - Try to load and boot script ${mmcscriptfile}
65 * run trymmckernboot - Try to load and boot kernel image ${mmckernfile}
66 * run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile}
Pali Rohárd6d0a012020-04-01 00:35:17 +020067 with initrd image ${mmcinitrdfile}
Pali Rohár248ef0a2012-10-29 07:54:01 +000068
69Additional variables for loading files from mmc:
70
71 * mmc ${mmcnum} (0 - external, 1 - internal)
72 * partition number ${mmcpart} (1 - 4)
Pali Rohárd6d0a012020-04-01 00:35:17 +020073 * parition type ${mmctype} (fat, ext2, ext4)
Pali Rohár248ef0a2012-10-29 07:54:01 +000074
Pali Rohárd6d0a012020-04-01 00:35:17 +020075Additional variables for booting kernel:
Pali Rohár248ef0a2012-10-29 07:54:01 +000076
77 * setup_omap_atag - Add OMAP table into atags structure (needs maemo kernel)
78 * setup_console_atag - Enable serial console in OMAP table
79 * setup_boot_reason_atag - Change boot reason in OMAP table
80 * setup_boot_mode_atag - Change boot mode in OMAP table
81
Pali Rohárd6d0a012020-04-01 00:35:17 +020082 Variable setup_omap_atag is automatically set when booting attached kernel.
83 When variable setup_omap_atag is set, variable setup_console_atag is unset
84 and u-boot standard output is set to serial then setup_console_atag is
85 automatically set to 1. So output from Maemo kernel would go to serial port.
86
Pali Rohár248ef0a2012-10-29 07:54:01 +000087UBIFS support:
88
89 UBIFS support is disabled, because U-Boot image is too big and cannot be
90 flashed with attached zImage to RX-51 kernel nand area. For enabling UBIFS
Pali Rohárd6d0a012020-04-01 00:35:17 +020091 support add following lines into file configs/nokia_rx51_defconfig
Pali Rohár248ef0a2012-10-29 07:54:01 +000092
Pali Rohárd6d0a012020-04-01 00:35:17 +020093 CONFIG_CMD_UBI=y
94 CONFIG_CMD_UBIFS=y
95 CONFIG_MTD_UBI_FASTMAP=y
96 CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1