From 757b997f1f5a958e6fec3d5aee1ff5cdf5766711 Mon Sep 17 00:00:00 2001 From: Weijie Gao Date: Wed, 19 Jul 2023 17:17:45 +0800 Subject: [PATCH 27/29] tools: mtk_image: use uint32_t for ghf header magic and version This patch converts magic and version fields of ghf common header to one field with the type of uint32_t to make this header flexible for futher updates. Signed-off-by: Weijie Gao --- tools/mtk_image.c | 10 ++++++---- tools/mtk_image.h | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) --- a/tools/mtk_image.c +++ b/tools/mtk_image.c @@ -542,11 +542,13 @@ static void put_brom_layout_header(struc hdr->type = cpu_to_le32(type); } -static void put_ghf_common_header(struct gfh_common_header *gfh, int size, - int type, int ver) +static void put_ghf_common_header(struct gfh_common_header *gfh, uint16_t size, + uint16_t type, uint8_t ver) { - memcpy(gfh->magic, GFH_HEADER_MAGIC, sizeof(gfh->magic)); - gfh->version = ver; + uint32_t magic_version = GFH_HEADER_MAGIC | + (uint32_t)ver << GFH_HEADER_VERSION_SHIFT; + + gfh->magic_version = cpu_to_le32(magic_version); gfh->size = cpu_to_le16(size); gfh->type = cpu_to_le16(type); } --- a/tools/mtk_image.h +++ b/tools/mtk_image.h @@ -63,13 +63,13 @@ struct gen_device_header { /* BootROM header definitions */ struct gfh_common_header { - uint8_t magic[3]; - uint8_t version; + uint32_t magic_version; uint16_t size; uint16_t type; }; -#define GFH_HEADER_MAGIC "MMM" +#define GFH_HEADER_MAGIC 0x4D4D4D +#define GFH_HEADER_VERSION_SHIFT 24 #define GFH_TYPE_FILE_INFO 0 #define GFH_TYPE_BL_INFO 1