1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- From b6bb61fd3818f4a3025fedbe4d15dbeeaef6ee82 Mon Sep 17 00:00:00 2001
- From: Weijie Gao <[email protected]>
- Date: Tue, 2 Aug 2022 17:21:34 +0800
- Subject: [PATCH 28/31] tools: mtk_image: split gfh header verification into a
- new function
- The verification code of gfh header for NAND and non-NAND are identical.
- It's better to define a individual function to reduce redundancy.
- Reviewed-by: Simon Glass <[email protected]>
- Signed-off-by: Weijie Gao <[email protected]>
- ---
- tools/mtk_image.c | 51 +++++++++++++++++++----------------------------
- 1 file changed, 21 insertions(+), 30 deletions(-)
- --- a/tools/mtk_image.c
- +++ b/tools/mtk_image.c
- @@ -480,6 +480,25 @@ static int mtk_image_vrec_header(struct
- return SHA256_SUM_LEN;
- }
-
- +static int mtk_image_verify_gfh(struct gfh_header *gfh, uint32_t type, int print)
- +{
- + if (strcmp(gfh->file_info.name, GFH_FILE_INFO_NAME))
- + return -1;
- +
- + if (le32_to_cpu(gfh->file_info.flash_type) != type)
- + return -1;
- +
- + if (print)
- + printf("Load Address: %08x\n",
- + le32_to_cpu(gfh->file_info.load_addr) +
- + le32_to_cpu(gfh->file_info.jump_offset));
- +
- + if (print)
- + printf("Architecture: %s\n", is_arm64_image ? "ARM64" : "ARM");
- +
- + return 0;
- +}
- +
- static int mtk_image_verify_gen_header(const uint8_t *ptr, int print)
- {
- union gen_boot_header *gbh = (union gen_boot_header *)ptr;
- @@ -542,21 +561,7 @@ static int mtk_image_verify_gen_header(c
-
- gfh = (struct gfh_header *)(ptr + gfh_offset);
-
- - if (strcmp(gfh->file_info.name, GFH_FILE_INFO_NAME))
- - return -1;
- -
- - if (le32_to_cpu(gfh->file_info.flash_type) != GFH_FLASH_TYPE_GEN)
- - return -1;
- -
- - if (print)
- - printf("Load Address: %08x\n",
- - le32_to_cpu(gfh->file_info.load_addr) +
- - le32_to_cpu(gfh->file_info.jump_offset));
- -
- - if (print)
- - printf("Architecture: %s\n", is_arm64_image ? "ARM64" : "ARM");
- -
- - return 0;
- + return mtk_image_verify_gfh(gfh, GFH_FLASH_TYPE_GEN, print);
- }
-
- static int mtk_image_verify_nand_header(const uint8_t *ptr, int print)
- @@ -610,21 +615,7 @@ static int mtk_image_verify_nand_header(
-
- gfh = (struct gfh_header *)(ptr + 2 * le16_to_cpu(nh->pagesize));
-
- - if (strcmp(gfh->file_info.name, GFH_FILE_INFO_NAME))
- - return -1;
- -
- - if (le32_to_cpu(gfh->file_info.flash_type) != GFH_FLASH_TYPE_NAND)
- - return -1;
- -
- - if (print)
- - printf("Load Address: %08x\n",
- - le32_to_cpu(gfh->file_info.load_addr) +
- - le32_to_cpu(gfh->file_info.jump_offset));
- -
- - if (print)
- - printf("Architecture: %s\n", is_arm64_image ? "ARM64" : "ARM");
- -
- - return 0;
- + return mtk_image_verify_gfh(gfh, GFH_FLASH_TYPE_NAND, print);
- }
-
- static uint32_t crc32be_cal(const void *data, size_t length)
|