
On 04/16/2018 03:32 PM, Sam Protsenko wrote:
Android documentation recommends using new image format for storing dtb and dtbo files: [1]. Using that format, we can pack several dtb files to dtb.img, and also pack several dtbo files to dtbo.img. Then those images should be flashed to eMMC partitions, called "dtb" and "dtbo" respectively.
I'm not convinced adding yet another one-off Android specific partition format is what we need right now. With FIT images this is a solved problem, why does Android need to go down a different path here?
This patch series introduces support for mentioned Android DT image format, adds "dtimg" command to deal with that image format from U-Boot shell, and provides new Android boot scheme to TI boards (AM57x and DRA7 boards). So with this patch series we will have next procedure for Android boot:
- Read next images from eMMC partitions to RAM:
- boot.img
- dtb.img
- dtbo.img
- Take addresses of desired dtb/dtbo files from that images (for current board)
- Apply dtbo overlays to main dtb, if needed
- Boot the kernel from Android boot image, using resulting dtb
All the above logic ends up adding more to our environment scripting at a time when we are working to reduce that..
Andrew
It was tested on X15 and AM57x EVM boards.
[1] https://source.android.com/devices/architecture/dto/partitions
Sam Protsenko (5): common: Add support for Android DT image cmd: Add dtimg command arm: ti: boot: Extract PARTS_DEFAULT to boot.h arm: ti: boot: Add dtbo partition for Android boot arm: ti: boot: Implement Android boot using DT image format
board/ti/common/Kconfig | 1 + cmd/Kconfig | 8 ++ cmd/Makefile | 1 + cmd/dtimg.c | 142 ++++++++++++++++++++++++++++++ common/Makefile | 4 + common/image-android-dt.c | 134 ++++++++++++++++++++++++++++ configs/am57xx_evm_defconfig | 1 + configs/am57xx_hs_evm_defconfig | 1 + configs/dra7xx_evm_defconfig | 1 + configs/dra7xx_hs_evm_defconfig | 1 + include/configs/am57xx_evm.h | 25 ------ include/configs/cl-som-am57x.h | 2 + include/configs/cm_t54.h | 2 + include/configs/dra7xx_evm.h | 25 ------ include/configs/ti_armv7_common.h | 1 + include/dt_table.h | 46 ++++++++++ include/environment/ti/boot.h | 68 ++++++++++++-- include/image-android-dt.h | 18 ++++ 18 files changed, 422 insertions(+), 59 deletions(-) create mode 100644 cmd/dtimg.c create mode 100644 common/image-android-dt.c create mode 100644 include/dt_table.h create mode 100644 include/image-android-dt.h