mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 09:58:52 +09:00
![Pali Rohár](/assets/img/avatar_default.png)
Now when usbtty serial console is fixed in U-Boot enable CONFIG_USB_TTY for Nokia RX-51 board by default. Fix also USB product id as U-Boot ignores CONFIG_USBD_PRODUCTID macro and include U-Boot string into USB product name to indicate usage of U-Boot. CONFIG_CONSOLE_MUX is already used and U-Boot console is available for all in/out devices. Therefore there is no need to have separate commands 'run sercon', 'run usbcon' and 'run vgacon', so remove them. As space for U-Boot is limited to 256kB, enable CONFIG_OPTIMIZE_INLINING and disable some other unused options so CONFIG_USB_TTY can be enabled. Nokia RX-51 does not have easily accessible UART serial console so the only option for easy debugging is to use device's keyboard+screen or this usbtty serial console over USB. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Lukasz Majewski <lukma@denx.de> Acked-by: Pavel Machek <pavel@ucw.cz>
95 lines
4.0 KiB
Plaintext
95 lines
4.0 KiB
Plaintext
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.
|
|
|
|
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 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.
|
|
|
|
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
|