mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-03 01:41:44 +01:00 
			
		
		
		
	Enable U-Boot bootz command and update env scripts to try loading also zImage file and to try booting via bootz command. Update also lowlevel_init.S code for checking validity of zImage magic to correctly relocate kernel in zImage format. This change allows U-Boot to directly boot Linux kernel without need for converting kernel image into U-Boot uImage format. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Link: https://lore.kernel.org/r/20210618132704.32066-1-pali@kernel.org
		
			
				
	
	
		
			97 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			4.1 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, zImage or boot.scr from a fat or ext2/3/4 filesystem on 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 (either in uImage or zImage
 | 
						|
format) 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 find zImage on first fat partition
 | 
						|
   * 1.4 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
 |