aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-07-12 03:41:30 +0100
committerDaniel Golle <daniel@makrotopia.org>2022-08-28 20:33:15 +0100
commitc09eb08dadae341e7f68d34e9ec3f15afd86e469 (patch)
tree742836f04e6b1e49f297cfdc7ad3ba627b6cb156 /package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch
parenta4933cdd121d1689764445441f6e7fcf67dd3beb (diff)
downloadupstream-c09eb08dadae341e7f68d34e9ec3f15afd86e469.tar.gz
upstream-c09eb08dadae341e7f68d34e9ec3f15afd86e469.tar.bz2
upstream-c09eb08dadae341e7f68d34e9ec3f15afd86e469.zip
uboot-mediatek: add support for MT798x platforms
Import pending patches to support the upcoming Filogic platforms. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch')
-rw-r--r--package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch b/package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch
new file mode 100644
index 0000000000..c8747ae154
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/002-0028-tools-mtk_image-split-gfh-header-verification-into-a.patch
@@ -0,0 +1,89 @@
+From b6bb61fd3818f4a3025fedbe4d15dbeeaef6ee82 Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao@mediatek.com>
+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 <sjg@chromium.org>
+Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+---
+ 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)