mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
arm: ti: boot: Use correct dtb and dtbo on Android boot
Read correct dtb blob from boot.img/recovery.img and apply correct dtbo blobs from dtbo partition. Signed-off-by: Sam Protsenko <joe.skb7@gmail.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
d94e6dbcf6
commit
add1a6bc9b
2 changed files with 47 additions and 3 deletions
|
@ -37,11 +37,18 @@
|
||||||
* seen large trees). We say all of this must be within the first 256MB
|
* seen large trees). We say all of this must be within the first 256MB
|
||||||
* as that will normally be within the kernel lowmem and thus visible via
|
* as that will normally be within the kernel lowmem and thus visible via
|
||||||
* bootm_size and we only run on platforms with 256MB or more of memory.
|
* bootm_size and we only run on platforms with 256MB or more of memory.
|
||||||
|
*
|
||||||
|
* As a temporary storage for DTBO blobs (which should be applied into DTB
|
||||||
|
* blob), we use the location 15.5 MB above the ramdisk. If someone wants to
|
||||||
|
* use ramdisk bigger than 15.5 MB, then DTBO can be loaded and applied to DTB
|
||||||
|
* blob before loading the ramdisk, as DTBO location is only used as a temporary
|
||||||
|
* storage, and can be re-used after 'fdt apply' command is done.
|
||||||
*/
|
*/
|
||||||
#define DEFAULT_LINUX_BOOT_ENV \
|
#define DEFAULT_LINUX_BOOT_ENV \
|
||||||
"loadaddr=0x82000000\0" \
|
"loadaddr=0x82000000\0" \
|
||||||
"kernel_addr_r=0x82000000\0" \
|
"kernel_addr_r=0x82000000\0" \
|
||||||
"fdtaddr=0x88000000\0" \
|
"fdtaddr=0x88000000\0" \
|
||||||
|
"dtboaddr=0x89000000\0" \
|
||||||
"fdt_addr_r=0x88000000\0" \
|
"fdt_addr_r=0x88000000\0" \
|
||||||
"rdaddr=0x88080000\0" \
|
"rdaddr=0x88080000\0" \
|
||||||
"ramdisk_addr_r=0x88080000\0" \
|
"ramdisk_addr_r=0x88080000\0" \
|
||||||
|
|
|
@ -81,6 +81,45 @@
|
||||||
#define AB_SELECT_ARGS ""
|
#define AB_SELECT_ARGS ""
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prepares complete device tree blob for current board (for Android boot).
|
||||||
|
*
|
||||||
|
* Boot image or recovery image should be loaded into $loadaddr prior to running
|
||||||
|
* these commands. The logic of these commnads is next:
|
||||||
|
*
|
||||||
|
* 1. Read correct DTB for current SoC/board from boot image in $loadaddr
|
||||||
|
* to $fdtaddr
|
||||||
|
* 2. Merge all needed DTBO for current board from 'dtbo' partition into read
|
||||||
|
* DTB
|
||||||
|
* 3. User should provide $fdtaddr as 3rd argument to 'bootm'
|
||||||
|
*/
|
||||||
|
#define PREPARE_FDT \
|
||||||
|
"echo Preparing FDT...; " \
|
||||||
|
"if test $board_name = am57xx_evm_reva3; then " \
|
||||||
|
"echo \" Reading DTBO partition...\"; " \
|
||||||
|
"part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start; " \
|
||||||
|
"part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size; " \
|
||||||
|
"mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \
|
||||||
|
"echo \" Reading DTB for AM57x EVM RevA3...\"; " \
|
||||||
|
"abootimg get dtb --index=0 dtb_start dtb_size; " \
|
||||||
|
"cp.b $dtb_start $fdtaddr $dtb_size; " \
|
||||||
|
"fdt addr $fdtaddr; " \
|
||||||
|
"echo \" Applying DTBOs for AM57x EVM RevA3...\"; " \
|
||||||
|
"adtimg addr $dtboaddr; " \
|
||||||
|
"adtimg get dt --index=0 dtbo0_addr; " \
|
||||||
|
"fdt apply $dtbo0_addr; " \
|
||||||
|
"adtimg get dt --index=1 dtbo1_addr; " \
|
||||||
|
"fdt apply $dtbo1_addr; " \
|
||||||
|
"elif test $board_name = beagle_x15_revc; then " \
|
||||||
|
"echo \" Reading DTB for Beagle X15 RevC...\"; " \
|
||||||
|
"abootimg get dtb --index=0 dtb_start dtb_size; " \
|
||||||
|
"cp.b $dtb_start $fdtaddr $dtb_size; " \
|
||||||
|
"fdt addr $fdtaddr; " \
|
||||||
|
"else " \
|
||||||
|
"echo Error: Android boot is not supported for $board_name; " \
|
||||||
|
"exit; " \
|
||||||
|
"fi; " \
|
||||||
|
|
||||||
#define FASTBOOT_CMD \
|
#define FASTBOOT_CMD \
|
||||||
"echo Booting into fastboot ...; " \
|
"echo Booting into fastboot ...; " \
|
||||||
"fastboot " __stringify(CONFIG_FASTBOOT_USB_DEV) "; "
|
"fastboot " __stringify(CONFIG_FASTBOOT_USB_DEV) "; "
|
||||||
|
@ -137,9 +176,7 @@
|
||||||
"if part start mmc $mmcdev $apart boot_start; then " \
|
"if part start mmc $mmcdev $apart boot_start; then " \
|
||||||
"part size mmc $mmcdev $apart boot_size; " \
|
"part size mmc $mmcdev $apart boot_size; " \
|
||||||
"mmc read $loadaddr $boot_start $boot_size; " \
|
"mmc read $loadaddr $boot_start $boot_size; " \
|
||||||
"abootimg get dtb --index=0 dtb_start dtb_size; " \
|
PREPARE_FDT \
|
||||||
"cp.b $dtb_start $fdtaddr $dtb_size; " \
|
|
||||||
"fdt addr $fdtaddr; " \
|
|
||||||
"bootm $loadaddr $ardaddr $fdtaddr; " \
|
"bootm $loadaddr $ardaddr $fdtaddr; " \
|
||||||
"else " \
|
"else " \
|
||||||
"echo $apart partition not found; " \
|
"echo $apart partition not found; " \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue