]> git.baikalelectronics.ru Git - uboot.git/commitdiff
android: boot: replace android_image_check_header
authorSafae Ouajih <souajih@baylibre.com>
Sun, 5 Feb 2023 23:50:05 +0000 (00:50 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 4 Apr 2023 18:50:46 +0000 (14:50 -0400)
With the new vendor boot image introduced in versions 3 and 4
of boot image header, the header check must be done for both boot
image and vendor boot image. Thus, replace android_image_check_header()
by is_android_boot_image_header() to only refer to boot image header check.

Signed-off-by: Safae Ouajih <souajih@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
boot/image-android.c
boot/image-board.c
cmd/abootimg.c
drivers/fastboot/fb_mmc.c
include/image.h

index b070974791a4cf1955ab6275c0e217a0c53843d3..ac7cb479c156606b8ebe53c6d3a332e2c8b1e662 100644 (file)
@@ -122,18 +122,9 @@ int android_image_get_kernel(const struct andr_boot_img_hdr_v0 *hdr, int verify,
        return 0;
 }
 
-/**
- * android_image_check_header() - Check the magic of boot image
- *
- * This checks the header of Android boot image and verifies the
- * magic is "ANDROID!"
- *
- * @hdr: Pointer to boot image
- * Return: 0 if the magic is correct, non-zero if there is a magic mismatch
- */
-int android_image_check_header(const struct andr_boot_img_hdr_v0 *hdr)
+bool is_android_boot_image_header(const struct andr_boot_img_hdr_v0 *hdr)
 {
-       return memcmp(ANDR_BOOT_MAGIC, hdr->magic, ANDR_BOOT_MAGIC_SIZE);
+       return !memcmp(ANDR_BOOT_MAGIC, hdr, ANDR_BOOT_MAGIC_SIZE);
 }
 
 ulong android_image_get_end(const struct andr_boot_img_hdr_v0 *hdr)
@@ -240,7 +231,7 @@ bool android_image_get_dtbo(ulong hdr_addr, ulong *addr, u32 *size)
        bool ret = true;
 
        hdr = map_sysmem(hdr_addr, sizeof(*hdr));
-       if (android_image_check_header(hdr)) {
+       if (!is_android_boot_image_header(hdr)) {
                printf("Error: Boot Image header is incorrect\n");
                ret = false;
                goto exit;
@@ -289,7 +280,7 @@ static bool android_image_get_dtb_img_addr(ulong hdr_addr, ulong *addr)
        bool ret = true;
 
        hdr = map_sysmem(hdr_addr, sizeof(*hdr));
-       if (android_image_check_header(hdr)) {
+       if (!is_android_boot_image_header(hdr)) {
                printf("Error: Boot Image header is incorrect\n");
                ret = false;
                goto exit;
index 9bf70824cb709f363c7287d5de8fd029872dc819..e086103258f615f2a0a15093602c7b28d4157aa3 100644 (file)
@@ -284,7 +284,7 @@ int genimg_get_format(const void *img_addr)
                        return IMAGE_FORMAT_FIT;
        }
        if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE) &&
-           !android_image_check_header(img_addr))
+           is_android_boot_image_header(img_addr))
                return IMAGE_FORMAT_ANDROID;
 
        return IMAGE_FORMAT_INVALID;
index 026c03f91c757d49b021c507798cc3b3cfe1ea97..b5cfb141ef7a60d3bc6fe2c7ca48035d45a53550 100644 (file)
@@ -26,7 +26,7 @@ static int abootimg_get_ver(int argc, char *const argv[])
                return CMD_RET_USAGE;
 
        hdr = map_sysmem(abootimg_addr(), sizeof(*hdr));
-       if (android_image_check_header(hdr)) {
+       if (!is_android_boot_image_header(hdr)) {
                printf("Error: Boot Image header is incorrect\n");
                res = CMD_RET_FAILURE;
                goto exit;
@@ -73,7 +73,7 @@ static int abootimg_get_dtb_load_addr(int argc, char *const argv[])
                return CMD_RET_USAGE;
 
        hdr = map_sysmem(abootimg_addr(), sizeof(*hdr));
-       if (android_image_check_header(hdr)) {
+       if (!is_android_boot_image_header(hdr)) {
                printf("Error: Boot Image header is incorrect\n");
                res = CMD_RET_FAILURE;
                goto exit;
index 68677c55ce1552a9e84ef7a6a61a579e75d90d6e..29c18cb82a44ff419ae0a794e3d9fe1e6a8d63ed 100644 (file)
@@ -313,8 +313,7 @@ static lbaint_t fb_mmc_get_boot_header(struct blk_desc *dev_desc,
        }
 
        /* Check boot header magic string */
-       res = android_image_check_header(hdr);
-       if (res != 0) {
+       if (!is_android_boot_image_header(hdr)) {
                pr_err("bad boot image magic\n");
                fastboot_fail("boot partition not initialized", response);
                return 0;
index 735484117d7d6b42ae5f598ccfe86afc1272ef82..6e67cf4817a6fadcd2b85509d6c1ed20434e1caa 100644 (file)
@@ -1736,17 +1736,6 @@ struct cipher_algo *image_get_cipher_algo(const char *full_name);
 
 struct andr_boot_img_hdr_v0;
 
-/**
- * android_image_check_header() - Check the magic of boot image
- *
- * This checks the header of Android boot image and verifies the
- * magic is "ANDROID!"
- *
- * @hdr: Pointer to image header
- * Return: 0 if the magic is correct, non-zero if there is a magic mismatch
- */
-int android_image_check_header(const struct andr_boot_img_hdr_v0 *hdr);
-
 /**
  * android_image_get_kernel() - Processes kernel part of Android boot images
  *
@@ -1838,6 +1827,17 @@ ulong android_image_get_kcomp(const struct andr_boot_img_hdr_v0 *hdr);
 void android_print_contents(const struct andr_boot_img_hdr_v0 *hdr);
 bool android_image_print_dtb_contents(ulong hdr_addr);
 
+/**
+ * is_android_boot_image_header() - Check the magic of boot image
+ *
+ * This checks the header of Android boot image and verifies the
+ * magic is "ANDROID!"
+ *
+ * @hdr: Pointer to boot image
+ * Return: non-zero if the magic is correct, zero otherwise
+ */
+bool is_android_boot_image_header(const struct andr_boot_img_hdr_v0 *hdr);
+
 /**
  * board_fit_config_name_match() - Check for a matching board name
  *