Merge tag 'fsl-qoriq-2022-10-18' of https://source.denx.de/u-boot/custodians/u-boot...
[platform/kernel/u-boot.git] / tools / mtk_image.c
index 1f7396a..5ef9334 100644 (file)
@@ -33,6 +33,9 @@ static const struct brom_img_type {
        }, {
                .name = "snand",
                .type = BRLYT_TYPE_SNAND
+       }, {
+               .name = "spim-nand",
+               .type = BRLYT_TYPE_SNAND
        }
 };
 
@@ -54,7 +57,7 @@ static char lk_name[32] = "U-Boot";
 static uint32_t crc32tbl[256];
 
 /* NAND header selected by user */
-static const union nand_boot_header *hdr_nand;
+static const struct nand_header_type *hdr_nand;
 static uint32_t hdr_nand_size;
 
 /* GFH header + 2 * 4KB pages of NAND */
@@ -366,20 +369,26 @@ static int mtk_image_verify_nand_header(const uint8_t *ptr, int print)
        if (ret < 0)
                return ret;
 
-       bh = (struct brom_layout_header *)(ptr + info.page_size);
+       if (!ret) {
+               bh = (struct brom_layout_header *)(ptr + info.page_size);
 
-       if (strcmp(bh->name, BRLYT_NAME))
-               return -1;
+               if (strcmp(bh->name, BRLYT_NAME))
+                       return -1;
+
+               if (le32_to_cpu(bh->magic) != BRLYT_MAGIC)
+                       return -1;
 
-       if (le32_to_cpu(bh->magic) != BRLYT_MAGIC) {
-               return -1;
-       } else {
                if (le32_to_cpu(bh->type) == BRLYT_TYPE_NAND)
                        bootmedia = "Parallel NAND";
                else if (le32_to_cpu(bh->type) == BRLYT_TYPE_SNAND)
                        bootmedia = "Serial NAND (SNFI/AP)";
                else
                        return -1;
+       } else {
+               if (info.snfi)
+                       bootmedia = "Serial NAND (SNFI/HSM)";
+               else
+                       bootmedia = "Serial NAND (SPIM)";
        }
 
        if (print) {
@@ -418,10 +427,10 @@ static uint32_t crc32be_cal(const void *data, size_t length)
 
 static int mtk_image_verify_mt7621_header(const uint8_t *ptr, int print)
 {
-       const image_header_t *hdr = (const image_header_t *)ptr;
+       const struct legacy_img_hdr *hdr = (const struct legacy_img_hdr *)ptr;
        struct mt7621_nand_header *nhdr;
        uint32_t spl_size, crcval;
-       image_header_t header;
+       struct legacy_img_hdr header;
        int ret;
 
        spl_size = image_get_size(hdr);
@@ -481,7 +490,7 @@ static int mtk_image_verify_mt7621_header(const uint8_t *ptr, int print)
 static int mtk_image_verify_header(unsigned char *ptr, int image_size,
                                   struct image_tool_params *params)
 {
-       image_header_t *hdr = (image_header_t *)ptr;
+       struct legacy_img_hdr *hdr = (struct legacy_img_hdr *)ptr;
        union lk_hdr *lk = (union lk_hdr *)ptr;
 
        /* nothing to verify for LK image header */
@@ -503,7 +512,7 @@ static int mtk_image_verify_header(unsigned char *ptr, int image_size,
 
 static void mtk_image_print_header(const void *ptr)
 {
-       image_header_t *hdr = (image_header_t *)ptr;
+       struct legacy_img_hdr *hdr = (struct legacy_img_hdr *)ptr;
        union lk_hdr *lk = (union lk_hdr *)ptr;
 
        if (le32_to_cpu(lk->magic) == LK_PART_MAGIC) {
@@ -682,7 +691,7 @@ static void mtk_image_set_nand_header(void *ptr, off_t filesize,
 static void mtk_image_set_mt7621_header(void *ptr, off_t filesize,
                                        uint32_t loadaddr)
 {
-       image_header_t *hdr = (image_header_t *)ptr;
+       struct legacy_img_hdr *hdr = (struct legacy_img_hdr *)ptr;
        struct mt7621_stage1_header *shdr;
        struct mt7621_nand_header *nhdr;
        uint32_t datasize, crcval;