diff options
author | Ji Luo <ji.luo@nxp.com> | 2018-09-04 20:39:20 +0800 |
---|---|---|
committer | Ji Luo <ji.luo@nxp.com> | 2018-09-07 10:44:16 +0800 |
commit | 77542218ab68b9387a921b9540c46bc9d54af3ac (patch) | |
tree | b89e4240457c51181452f6db29708d88163dca3e /include | |
parent | 0377dc881a96b46d858643dfaa5f9ef0dd4acccc (diff) |
MA-12337-1 Including DTBO in Recovery for Non-A/B Devices in Pie 9.0
Non-A/B devices should include dtbo in recovery.img to prevent mismatch
with recovery if OTA failure. Load dtbo from recovery.img for Non-A/B
devices in recovery mode.
Change-Id: Ie8b12aeb562b80a172769af0b163df3c672c9af0
Signed-off-by: Ji Luo <ji.luo@nxp.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/android_image.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/include/android_image.h b/include/android_image.h index ffe50d3b9d..91cbbbf6fd 100644 --- a/include/android_image.h +++ b/include/android_image.h @@ -47,7 +47,7 @@ struct andr_img_hdr { u32 tags_addr; /* physical addr for kernel tags */ u32 page_size; /* flash page size we assume */ - u32 unused; /* reserved for future expansion: MUST be 0 */ + u32 header_version; /* operating system version and security patch level; for * version "A.B.C" and patch level "Y-M-D": @@ -65,22 +65,28 @@ struct andr_img_hdr { /* Supplemental command line data; kept here to maintain * binary compatibility with older versions of mkbootimg */ char extra_cmdline[ANDR_BOOT_EXTRA_ARGS_SIZE]; + uint32_t recovery_dtbo_size; /* size of recovery dtbo image */ + uint64_t recovery_dtbo_offset; /* offset in boot image */ + uint32_t header_size; /* size of boot image header in bytes */ } __attribute__((packed)); /* * +-----------------+ * | boot header | 1 page * +-----------------+ - * | kernel | n pages + * | kernel | i pages * +-----------------+ * | ramdisk | m pages * +-----------------+ - * | second stage | o pages + * | second stage | n pages + * +-----------------+ + * | recovery dtbo | o pages * +-----------------+ * - * n = (kernel_size + page_size - 1) / page_size + * i = (kernel_size + page_size - 1) / page_size * m = (ramdisk_size + page_size - 1) / page_size - * o = (second_size + page_size - 1) / page_size + * n = (second_size + page_size - 1) / page_size + * o = (recovery_dtbo_size + page_size - 1) / page_size * * 0. all entities are page_size aligned in flash * 1. kernel and ramdisk are required (size != 0) |