diff options
author | Peng Fan <peng.fan@nxp.com> | 2019-09-16 03:09:39 +0000 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2019-11-05 10:27:18 +0100 |
commit | b8f168346b0bd8a53c5fd7f1981e997bf4e557e4 (patch) | |
tree | e0431853493d5cf925a212418cfa4f82067d4388 /tools/imx8mimage.c | |
parent | b1821376ee19635127c505bbb94cd3c186f702e8 (diff) | |
download | u-boot-b8f168346b0bd8a53c5fd7f1981e997bf4e557e4.tar.gz u-boot-b8f168346b0bd8a53c5fd7f1981e997bf4e557e4.tar.bz2 u-boot-b8f168346b0bd8a53c5fd7f1981e997bf4e557e4.zip |
tools: imx8mimage: add ROM VERSION
The IVT offset is changed on i.MX8MN. Use ROM_VERSION to pass the
v1 or v2 to mkimage.
v1 is for iMX8MQ and iMX8MM
v2 is for iMX8M Nano (iMX8MN)
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'tools/imx8mimage.c')
-rw-r--r-- | tools/imx8mimage.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/tools/imx8mimage.c b/tools/imx8mimage.c index 6c02337698..2b0d946a7d 100644 --- a/tools/imx8mimage.c +++ b/tools/imx8mimage.c @@ -21,6 +21,11 @@ static uint32_t sld_header_off; static uint32_t ivt_offset; static uint32_t using_fit; +#define ROM_V1 1 +#define ROM_V2 2 + +static uint32_t rom_version = ROM_V1; + #define CSF_SIZE 0x2000 #define HDMI_IVT_ID 0 #define IMAGE_IVT_ID 1 @@ -71,6 +76,7 @@ static table_entry_t imx8mimage_cmds[] = { {CMD_LOADER, "LOADER", "loader image", }, {CMD_SECOND_LOADER, "SECOND_LOADER", "2nd loader image", }, {CMD_DDR_FW, "DDR_FW", "ddr firmware", }, + {CMD_ROM_VERSION, "ROM_VERSION", "rom version", }, {-1, "", "", }, }; @@ -90,6 +96,9 @@ static void parse_cfg_cmd(int32_t cmd, char *token, char *name, int lineno) token); if (!strncmp(token, "sd", 2)) rom_image_offset = 0x8000; + + if (rom_version == ROM_V2) + ivt_offset = 0; break; case CMD_LOADER: ap_img = token; @@ -103,6 +112,15 @@ static void parse_cfg_cmd(int32_t cmd, char *token, char *name, int lineno) case CMD_DDR_FW: /* Do nothing */ break; + case CMD_ROM_VERSION: + if (!strncmp(token, "v2", 2)) { + rom_version = ROM_V2; + ivt_offset = 0; + } else if (!strncmp(token, "v1", 2)) { + rom_version = ROM_V1; + } + break; + } } @@ -491,8 +509,10 @@ void build_image(int ofd) * Record the second bootloader relative offset in * image's IVT reserved1 */ - imx_header[IMAGE_IVT_ID].fhdr.reserved1 = - sld_header_off - header_image_off; + if (rom_version == ROM_V1) { + imx_header[IMAGE_IVT_ID].fhdr.reserved1 = + sld_header_off - header_image_off; + } sld_fd = open(sld_img, O_RDONLY | O_BINARY); if (sld_fd < 0) { fprintf(stderr, "%s: Can't open: %s\n", |