On 16 April 2018 at 23:32, Sam Protsenko <semen.protse...@linaro.org> wrote: > Make sure we can boot Android on TI boards using scheme described in > Android documentation [1]. For this do next: > 1. Enable "dtimg" command. We will need it to boot the Android using > new DTB/DTBO image format. > 2. Add fdt overlay support. We will need that to be able to apply fdt > overlays to dtb file. > 3. Provide new Android boot commands. In case we don't know what board > it is, let's provide fallback mechanism: > - use just dtb[0] from dtb.img > - don't apply any dtbo files on top of it > - but still that dtb file must be packed into Android DT image > > To use new boot scheme, user has to do next: > > 1. Prepare dtb.img and dtbo.img images, generated with mkdtimg tool (can > be found in Android sources, see prebuilts/misc/linux-x86/libufdt). > Example: > > $ ./mkdtimg create dtb.img \ > am57xx-beagle-x15.dtb --id=0 \ > am57xx-beagle-x15-revc.dtb --id=1 > > $ ./mkdtimg create dtbo.img \ > am57xx-evm-common.dtbo --id=0 \ > mt9t111.dtbo --id=1 \ > ov10635.dtbo --id=2 \ > am57xx-evm.dtbo --id=3 \ > am57xx-evm-reva3.dtbo --id=4 > > Current boot commands rely on that specific order of dtb/dtbo files. > Also, be sure to compile .dtb files with -@ dtc flag, so that > overlays can be applied to dtb files. > > 2. Flash new U-Boot, set new environment and format eMMC: > > $ fastboot flash xloader MLO > $ fastboot flash bootloader u-boot.img > > => env default -f -a > => setenv partitions $partitions_android > => env save > => fastboot 1 > > $ fastboot oem format > > 3. Flash dtb.img, dtbo.img: > > $ fastboot flash dtb dtb.img > $ fastboot flash dtbo dtbo.img > > 4. Flash Android images: > > $ fastboot flash boot boot.img > $ fastboot flash cache cache.img > $ fastboot flash recovery recovery.img > $ fastboot flash system system.img > $ fastboot flash userdata userdata.img > $ fastboot flash vendor vendor.img > > For more detailed instructions, see [2]. > > [1] https://source.android.com/devices/architecture/dto/partitions > [2] https://wiki.linaro.org/Boards/BeagleBoard-X15 > > Signed-off-by: Sam Protsenko <semen.protse...@linaro.org> > --- > board/ti/common/Kconfig | 1 + > configs/am57xx_evm_defconfig | 1 + > configs/am57xx_hs_evm_defconfig | 1 + > configs/dra7xx_evm_defconfig | 1 + > configs/dra7xx_hs_evm_defconfig | 1 + > include/configs/ti_armv7_common.h | 1 + > include/environment/ti/boot.h | 40 +++++++++++++++++++++++++------ > 7 files changed, 39 insertions(+), 7 deletions(-) > > diff --git a/board/ti/common/Kconfig b/board/ti/common/Kconfig > index c21eb8c2d2..f5bd9160b3 100644 > --- a/board/ti/common/Kconfig > +++ b/board/ti/common/Kconfig > @@ -21,6 +21,7 @@ config TI_COMMON_CMD_OPTIONS > imply CRC32_VERIFY if ARCH_KEYSTONE > imply CMD_DFU if USB_GADGET_DOWNLOAD > imply CMD_DHCP > + imply CMD_DTIMG > imply CMD_EEPROM > imply CMD_EXT2 > imply CMD_EXT4 > diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig > index 6b11b3476c..7198542d9e 100644 > --- a/configs/am57xx_evm_defconfig > +++ b/configs/am57xx_evm_defconfig > @@ -78,3 +78,4 @@ CONFIG_USB_GADGET=y > CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" > CONFIG_USB_GADGET_VENDOR_NUM=0x0451 > CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 > +CONFIG_OF_LIBFDT_OVERLAY=y > diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig > index ca9742f118..e4948d549b 100644 > --- a/configs/am57xx_hs_evm_defconfig > +++ b/configs/am57xx_hs_evm_defconfig > @@ -81,3 +81,4 @@ CONFIG_USB_GADGET=y > CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" > CONFIG_USB_GADGET_VENDOR_NUM=0x0451 > CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 > +CONFIG_OF_LIBFDT_OVERLAY=y > diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig > index e17135c8f6..4ce687fbda 100644 > --- a/configs/dra7xx_evm_defconfig > +++ b/configs/dra7xx_evm_defconfig > @@ -96,3 +96,4 @@ CONFIG_USB_GADGET=y > CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" > CONFIG_USB_GADGET_VENDOR_NUM=0x0451 > CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 > +CONFIG_OF_LIBFDT_OVERLAY=y > diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig > index 606f99938c..6546daa080 100644 > --- a/configs/dra7xx_hs_evm_defconfig > +++ b/configs/dra7xx_hs_evm_defconfig > @@ -95,3 +95,4 @@ CONFIG_USB_GADGET=y > CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" > CONFIG_USB_GADGET_VENDOR_NUM=0x0451 > CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 > +CONFIG_OF_LIBFDT_OVERLAY=y > diff --git a/include/configs/ti_armv7_common.h > b/include/configs/ti_armv7_common.h > index 4771e74940..4340b5188f 100644 > --- a/include/configs/ti_armv7_common.h > +++ b/include/configs/ti_armv7_common.h > @@ -43,6 +43,7 @@ > "loadaddr=0x82000000\0" \ > "kernel_addr_r=0x82000000\0" \ > "fdtaddr=0x88000000\0" \ > + "dtboaddr=0x89000000\0" \ > "fdt_addr_r=0x88000000\0" \ > "rdaddr=0x88080000\0" \ > "ramdisk_addr_r=0x88080000\0" \ > diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h > index f2d91f5298..52c9f129ed 100644 > --- a/include/environment/ti/boot.h > +++ b/include/environment/ti/boot.h > @@ -65,15 +65,41 @@ > "run eval_bootargs; " \ > "setenv mmcdev 1; " \ > "setenv machid fe6; " \ > + "setenv dtbaddr $fdtaddr; " \ > + "setenv dtb_size 0x100000; " \ > "mmc dev $mmcdev; " \ > "mmc rescan; " \ > - "part start mmc ${mmcdev} dtb fdt_start; " \ > - "part size mmc ${mmcdev} dtb fdt_size; " \ > - "part start mmc ${mmcdev} boot boot_start; " \ > - "part size mmc ${mmcdev} boot boot_size; " \ > - "mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; " \ > - "mmc read ${loadaddr} ${boot_start} ${boot_size}; " \ > - "bootm $loadaddr $loadaddr $fdtaddr;\0" > + "part start mmc ${mmcdev} dtb p_dtb_start; " \ > + "part size mmc ${mmcdev} dtb p_dtb_size; " \ > + "part start mmc ${mmcdev} dtbo p_dtbo_start; " \ > + "part size mmc ${mmcdev} dtbo p_dtbo_size; " \ > + "part start mmc ${mmcdev} boot p_boot_start; " \ > + "part size mmc ${mmcdev} boot p_boot_size; " \ > + "mmc read ${dtbaddr} ${p_dtb_start} ${p_dtb_size}; " \ > + "mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \ > + "mmc read ${loadaddr} ${p_boot_start} ${p_boot_size}; " \ > + "if test $board_name = am57xx_evm; then " \ > + "dtimg start ${dtbaddr} 0 dtb_addr; " \ > + "fdt addr $dtb_addr $dtb_size; " \ > + "dtimg start ${dtboaddr} 0 dtbo_addr; " \ > + "fdt apply $dtbo_addr; " \ > + "dtimg start ${dtboaddr} 3 dtbo_addr; " \ > + "fdt apply $dtbo_addr; " \ > + "elif test $board_name = am57xx_evm_reva3; then " \ > + "dtimg start ${dtbaddr} 1 dtb_addr; " \ > + "fdt addr $dtb_addr $dtb_size; " \ > + "dtimg start ${dtboaddr} 0 dtbo_addr; " \ > + "fdt apply $dtbo_addr; " \ > + "dtimg start ${dtboaddr} 4 dtbo_addr; " \ > + "fdt apply $dtbo_addr; " \ > + "elif test $board_name = beagle_x15; then " \ > + "dtimg start ${dtbaddr} 0 dtb_addr; " \ > + "elif test $board_name = beagle_x15_revc; then " \ > + "dtimg start ${dtbaddr} 1 dtb_addr; " \ > + "else " \ > + "dtimg start ${dtbaddr} 0 dtb_addr; " \ > + "fi; " \ > + "bootm $loadaddr $loadaddr $dtb_addr;\0" > > #ifdef CONFIG_OMAP54XX > > -- > 2.17.0 >
Abandon this patch. I'm gonna send v2 soon. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot