summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJi Luo <ji.luo@nxp.com>2018-09-04 20:39:20 +0800
committerJi Luo <ji.luo@nxp.com>2018-09-07 10:44:16 +0800
commit77542218ab68b9387a921b9540c46bc9d54af3ac (patch)
treeb89e4240457c51181452f6db29708d88163dca3e /include
parent0377dc881a96b46d858643dfaa5f9ef0dd4acccc (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.h16
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)