summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJulien Masson <[email protected]>2024-11-21 11:59:55 +0100
committerMattijs Korpershoek <[email protected]>2024-11-26 10:04:40 +0100
commitabadcda24b100b8eb0f138085cca6595518cec85 (patch)
tree5222694a184a6da712456401fba1c3913f18ae4e /include
parent126254ab97691a93902d8fe02fdff0a783921c39 (diff)
bootstd: android: don't read whole partition sizes
The current implementation is reading the whole partition for boot and vendor_boot image which can be long following the size of the partition or the time to read blocks (driver/SoC specific). For example with mediatek mt8365 EVK board, we have a 64MiB boot partition and the boot image flashed in this partition is only 42MiB. It takes ~8-9 secs to read the boot partition. Instead we can retrieved the boot image and vendor boot image size with these new functions: - android_image_get_bootimg_size - android_image_get_vendor_bootimg_size Use these information and read only the necessary. By doing this with mt8365 EVK board, we read boot image in ~5 secs. Signed-off-by: Julien Masson <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/20241121-bootmeth-android-part-sizes-v1-1-25760bbd0f08@baylibre.com Signed-off-by: Mattijs Korpershoek <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/image.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/image.h b/include/image.h
index c52fced9b40..9be5acd8158 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1802,6 +1802,30 @@ struct cipher_algo *image_get_cipher_algo(const char *full_name);
struct andr_image_data;
/**
+ * android_image_get_bootimg_size() - Extract size of Android boot image
+ *
+ * This is used to extract the size of an Android boot image
+ * from boot image header.
+ *
+ * @hdr: Pointer to boot image header
+ * @boot_img_size: On exit returns the size in bytes of the boot image
+ * Return: true if succeeded, false otherwise
+ */
+bool android_image_get_bootimg_size(const void *hdr, u32 *boot_img_size);
+
+/**
+ * android_image_get_vendor_bootimg_size() - Extract size of Android vendor-boot image
+ *
+ * This is used to extract the size of an Android vendor-boot image
+ * from vendor-boot image header.
+ *
+ * @hdr: Pointer to vendor-boot image header
+ * @vendor_boot_img_size: On exit returns the size in bytes of the vendor-boot image
+ * Return: true if succeeded, false otherwise
+ */
+bool android_image_get_vendor_bootimg_size(const void *hdr, u32 *vendor_boot_img_size);
+
+/**
* android_image_get_data() - Parse Android boot images
*
* This is used to parse boot and vendor-boot header into