Message ID | 1354066303-29762-6-git-send-email-troy.kisky@boundarydevices.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
>-----Original Message----- >From: Troy Kisky [mailto:troy.kisky@boundarydevices.com] >Sent: Wednesday, November 28, 2012 9:32 AM >To: sbabic@denx.de >Cc: dirk.behme@googlemail.com; u-boot@lists.denx.de; Liu Hui-R64343; >festevam@gmail.com; Troy Kisky >Subject: [PATCH V4 05/11] imximage: change parameters for >set_dcd_val/set_imx_hdr > >Change 1st argument of set_imx_hdr/set_dcd_val to struct data_src. > >Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Acked-by: Jason Liu <r64343@freescale.com> >--- > tools/imximage.c | 41 +++++++++++++++++++++-------------------- > tools/imximage.h | 5 +++-- > 2 files changed, 24 insertions(+), 22 deletions(-) > >diff --git a/tools/imximage.c b/tools/imximage.c index 3a010a6..ddac95f >100644 >--- a/tools/imximage.c >+++ b/tools/imximage.c >@@ -116,10 +116,10 @@ static void err_imximage_version(int version) > exit(EXIT_FAILURE); > } > >-static void set_dcd_val_v1(struct imx_header *imxhdr, char *name, int >lineno, >+static void set_dcd_val_v1(struct data_src *ds, char *name, int lineno, > int fld, uint32_t value, uint32_t off) { >- dcd_v1_t *dcd_v1 = &imxhdr->header.hdr_v1.dcd_table; >+ dcd_v1_t *dcd_v1 = &ds->imxhdr->header.hdr_v1.dcd_table; > > switch (fld) { > case CFG_REG_SIZE: >@@ -144,10 +144,10 @@ static void set_dcd_val_v1(struct imx_header >*imxhdr, char *name, int lineno, > } > } > >-static void set_dcd_val_v2(struct imx_header *imxhdr, char *name, int >lineno, >+static void set_dcd_val_v2(struct data_src *ds, char *name, int lineno, > int fld, uint32_t value, uint32_t off) { >- dcd_v2_t *dcd_v2 = &imxhdr->header.hdr_v2.dcd_table; >+ dcd_v2_t *dcd_v2 = &ds->imxhdr->header.hdr_v2.dcd_table; > > switch (fld) { > case CFG_REG_ADDRESS: >@@ -194,15 +194,15 @@ static void set_dcd_rst_v2(struct imx_header >*imxhdr, uint32_t dcd_len, > dcd_v2->write_dcd_command.param = DCD_COMMAND_PARAM; } > >-static int set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len, >+static int set_imx_hdr_v1(struct data_src *ds, uint32_t dcd_len, > uint32_t entry_point, uint32_t flash_offset) { >- imx_header_v1_t *hdr_v1 = &imxhdr->header.hdr_v1; >+ imx_header_v1_t *hdr_v1 = &ds->imxhdr->header.hdr_v1; > flash_header_v1_t *fhdr_v1 = &hdr_v1->fhdr; > dcd_v1_t *dcd_v1 = &hdr_v1->dcd_table; > uint32_t hdr_base; > uint32_t header_length = (((char *)&dcd_v1- >>addr_data[dcd_len].addr) >- - ((char *)imxhdr)); >+ - ((char *)ds->imxhdr)); > > /* Set magic number */ > fhdr_v1->app_code_barker = APP_CODE_BARKER; @@ -217,19 >+217,20 @@ static int set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t >dcd_len, > /* Security feature are not supported */ > fhdr_v1->app_code_csf = 0; > fhdr_v1->super_root_key = 0; >- header_size_ptr = (uint32_t *)(((char *)imxhdr) + header_length - 4); >+ header_size_ptr = (uint32_t *)(((char *)ds->imxhdr) + >+ header_length - 4); > return header_length; > } > >-static int set_imx_hdr_v2(struct imx_header *imxhdr, uint32_t dcd_len, >+static int set_imx_hdr_v2(struct data_src *ds, uint32_t dcd_len, > uint32_t entry_point, uint32_t flash_offset) { >- imx_header_v2_t *hdr_v2 = &imxhdr->header.hdr_v2; >+ imx_header_v2_t *hdr_v2 = &ds->imxhdr->header.hdr_v2; > flash_header_v2_t *fhdr_v2 = &hdr_v2->fhdr; > uint32_t hdr_base; > uint32_t header_length = (dcd_len) ? >- (char *)&hdr_v2->dcd_table.addr_data[dcd_len] - >((char*)imxhdr) >- : offsetof(imx_header_v2_t, dcd_table); >+ (char *)&hdr_v2->dcd_table.addr_data[dcd_len] - >+ ((char *)ds->imxhdr) : offsetof(imx_header_v2_t, dcd_table); > > /* Set magic number */ > fhdr_v2->header.tag = IVT_HEADER_TAG; /* 0xD1 */ @@ -328,7 >+329,7 @@ static void print_hdr_v2(struct imx_header *imx_hdr) > printf("Entry Point: %08x\n", (uint32_t)fhdr_v2->entry); } > >-static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char >*token, >+static void parse_cfg_cmd(struct data_src *ds, int32_t cmd, char >+*token, > char *name, int lineno, int fld, int dcd_len) { > int value; >@@ -345,7 +346,7 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, >int32_t cmd, char *token, > exit(EXIT_FAILURE); > } > cmd_ver_first = 1; >- set_hdr_func(imxhdr, imximage_version); >+ set_hdr_func(ds->imxhdr, imximage_version); > break; > case CMD_BOOT_FROM: > g_flash_offset = get_table_entry_id(imximage_bootops, >@@ -360,14 +361,14 @@ static void parse_cfg_cmd(struct imx_header >*imxhdr, int32_t cmd, char *token, > break; > case CMD_DATA: > value = get_cfg_value(token, name, lineno); >- (*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len); >+ (*set_dcd_val)(ds, name, lineno, fld, value, dcd_len); > if (unlikely(cmd_ver_first != 1)) > cmd_ver_first = 0; > break; > } > } > >-static void parse_cfg_fld(struct imx_header *imxhdr, int32_t *cmd, >+static void parse_cfg_fld(struct data_src *ds, int32_t *cmd, > char *token, char *name, int lineno, int fld, int *dcd_len) { > int value; >@@ -383,7 +384,7 @@ static void parse_cfg_fld(struct imx_header *imxhdr, >int32_t *cmd, > } > break; > case CFG_REG_SIZE: >- parse_cfg_cmd(imxhdr, *cmd, token, name, lineno, fld, >*dcd_len); >+ parse_cfg_cmd(ds, *cmd, token, name, lineno, fld, *dcd_len); > break; > case CFG_REG_ADDRESS: > case CFG_REG_VALUE: >@@ -391,7 +392,7 @@ static void parse_cfg_fld(struct imx_header *imxhdr, >int32_t *cmd, > return; > > value = get_cfg_value(token, name, lineno); >- (*set_dcd_val)(imxhdr, name, lineno, fld, value, *dcd_len); >+ (*set_dcd_val)(ds, name, lineno, fld, value, *dcd_len); > > if (fld == CFG_REG_VALUE) { > (*dcd_len)++; >@@ -458,7 +459,7 @@ static int parse_cfg_file(struct imx_header *imxhdr, >char *name, > if (token[0] == '#') > break; > >- parse_cfg_fld(imxhdr, &cmd, token, name, >+ parse_cfg_fld(&ds, &cmd, token, name, > lineno, fld, &dcd_len); > } > >@@ -473,7 +474,7 @@ static int parse_cfg_file(struct imx_header *imxhdr, >char *name, > exit(EXIT_FAILURE); > } > /* Set the imx header */ >- return (*set_imx_hdr)(imxhdr, dcd_len, entry_point, g_flash_offset); >+ return (*set_imx_hdr)(&ds, dcd_len, entry_point, g_flash_offset); > } > > static int imximage_check_image_types(uint8_t type) diff --git >a/tools/imximage.h b/tools/imximage.h index 2895378..3054d55 100644 >--- a/tools/imximage.h >+++ b/tools/imximage.h >@@ -159,7 +159,8 @@ struct imx_header { > } header; > }; > >-typedef void (*set_dcd_val_t)(struct imx_header *imxhdr, >+struct data_src; >+typedef void (*set_dcd_val_t)(struct data_src *ds, > char *name, int lineno, > int fld, uint32_t value, > uint32_t off); >@@ -168,7 +169,7 @@ typedef void (*set_dcd_rst_t)(struct imx_header >*imxhdr, > uint32_t dcd_len, > char *name, int lineno); > >-typedef int (*set_imx_hdr_t)(struct imx_header *imxhdr, uint32_t dcd_len, >+typedef int (*set_imx_hdr_t)(struct data_src *ds, uint32_t dcd_len, > uint32_t entry_point, uint32_t flash_offset); > > struct data_src { >-- >1.7.9.5 >
diff --git a/tools/imximage.c b/tools/imximage.c index 3a010a6..ddac95f 100644 --- a/tools/imximage.c +++ b/tools/imximage.c @@ -116,10 +116,10 @@ static void err_imximage_version(int version) exit(EXIT_FAILURE); } -static void set_dcd_val_v1(struct imx_header *imxhdr, char *name, int lineno, +static void set_dcd_val_v1(struct data_src *ds, char *name, int lineno, int fld, uint32_t value, uint32_t off) { - dcd_v1_t *dcd_v1 = &imxhdr->header.hdr_v1.dcd_table; + dcd_v1_t *dcd_v1 = &ds->imxhdr->header.hdr_v1.dcd_table; switch (fld) { case CFG_REG_SIZE: @@ -144,10 +144,10 @@ static void set_dcd_val_v1(struct imx_header *imxhdr, char *name, int lineno, } } -static void set_dcd_val_v2(struct imx_header *imxhdr, char *name, int lineno, +static void set_dcd_val_v2(struct data_src *ds, char *name, int lineno, int fld, uint32_t value, uint32_t off) { - dcd_v2_t *dcd_v2 = &imxhdr->header.hdr_v2.dcd_table; + dcd_v2_t *dcd_v2 = &ds->imxhdr->header.hdr_v2.dcd_table; switch (fld) { case CFG_REG_ADDRESS: @@ -194,15 +194,15 @@ static void set_dcd_rst_v2(struct imx_header *imxhdr, uint32_t dcd_len, dcd_v2->write_dcd_command.param = DCD_COMMAND_PARAM; } -static int set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len, +static int set_imx_hdr_v1(struct data_src *ds, uint32_t dcd_len, uint32_t entry_point, uint32_t flash_offset) { - imx_header_v1_t *hdr_v1 = &imxhdr->header.hdr_v1; + imx_header_v1_t *hdr_v1 = &ds->imxhdr->header.hdr_v1; flash_header_v1_t *fhdr_v1 = &hdr_v1->fhdr; dcd_v1_t *dcd_v1 = &hdr_v1->dcd_table; uint32_t hdr_base; uint32_t header_length = (((char *)&dcd_v1->addr_data[dcd_len].addr) - - ((char *)imxhdr)); + - ((char *)ds->imxhdr)); /* Set magic number */ fhdr_v1->app_code_barker = APP_CODE_BARKER; @@ -217,19 +217,20 @@ static int set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len, /* Security feature are not supported */ fhdr_v1->app_code_csf = 0; fhdr_v1->super_root_key = 0; - header_size_ptr = (uint32_t *)(((char *)imxhdr) + header_length - 4); + header_size_ptr = (uint32_t *)(((char *)ds->imxhdr) + + header_length - 4); return header_length; } -static int set_imx_hdr_v2(struct imx_header *imxhdr, uint32_t dcd_len, +static int set_imx_hdr_v2(struct data_src *ds, uint32_t dcd_len, uint32_t entry_point, uint32_t flash_offset) { - imx_header_v2_t *hdr_v2 = &imxhdr->header.hdr_v2; + imx_header_v2_t *hdr_v2 = &ds->imxhdr->header.hdr_v2; flash_header_v2_t *fhdr_v2 = &hdr_v2->fhdr; uint32_t hdr_base; uint32_t header_length = (dcd_len) ? - (char *)&hdr_v2->dcd_table.addr_data[dcd_len] - ((char*)imxhdr) - : offsetof(imx_header_v2_t, dcd_table); + (char *)&hdr_v2->dcd_table.addr_data[dcd_len] - + ((char *)ds->imxhdr) : offsetof(imx_header_v2_t, dcd_table); /* Set magic number */ fhdr_v2->header.tag = IVT_HEADER_TAG; /* 0xD1 */ @@ -328,7 +329,7 @@ static void print_hdr_v2(struct imx_header *imx_hdr) printf("Entry Point: %08x\n", (uint32_t)fhdr_v2->entry); } -static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token, +static void parse_cfg_cmd(struct data_src *ds, int32_t cmd, char *token, char *name, int lineno, int fld, int dcd_len) { int value; @@ -345,7 +346,7 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token, exit(EXIT_FAILURE); } cmd_ver_first = 1; - set_hdr_func(imxhdr, imximage_version); + set_hdr_func(ds->imxhdr, imximage_version); break; case CMD_BOOT_FROM: g_flash_offset = get_table_entry_id(imximage_bootops, @@ -360,14 +361,14 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token, break; case CMD_DATA: value = get_cfg_value(token, name, lineno); - (*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len); + (*set_dcd_val)(ds, name, lineno, fld, value, dcd_len); if (unlikely(cmd_ver_first != 1)) cmd_ver_first = 0; break; } } -static void parse_cfg_fld(struct imx_header *imxhdr, int32_t *cmd, +static void parse_cfg_fld(struct data_src *ds, int32_t *cmd, char *token, char *name, int lineno, int fld, int *dcd_len) { int value; @@ -383,7 +384,7 @@ static void parse_cfg_fld(struct imx_header *imxhdr, int32_t *cmd, } break; case CFG_REG_SIZE: - parse_cfg_cmd(imxhdr, *cmd, token, name, lineno, fld, *dcd_len); + parse_cfg_cmd(ds, *cmd, token, name, lineno, fld, *dcd_len); break; case CFG_REG_ADDRESS: case CFG_REG_VALUE: @@ -391,7 +392,7 @@ static void parse_cfg_fld(struct imx_header *imxhdr, int32_t *cmd, return; value = get_cfg_value(token, name, lineno); - (*set_dcd_val)(imxhdr, name, lineno, fld, value, *dcd_len); + (*set_dcd_val)(ds, name, lineno, fld, value, *dcd_len); if (fld == CFG_REG_VALUE) { (*dcd_len)++; @@ -458,7 +459,7 @@ static int parse_cfg_file(struct imx_header *imxhdr, char *name, if (token[0] == '#') break; - parse_cfg_fld(imxhdr, &cmd, token, name, + parse_cfg_fld(&ds, &cmd, token, name, lineno, fld, &dcd_len); } @@ -473,7 +474,7 @@ static int parse_cfg_file(struct imx_header *imxhdr, char *name, exit(EXIT_FAILURE); } /* Set the imx header */ - return (*set_imx_hdr)(imxhdr, dcd_len, entry_point, g_flash_offset); + return (*set_imx_hdr)(&ds, dcd_len, entry_point, g_flash_offset); } static int imximage_check_image_types(uint8_t type) diff --git a/tools/imximage.h b/tools/imximage.h index 2895378..3054d55 100644 --- a/tools/imximage.h +++ b/tools/imximage.h @@ -159,7 +159,8 @@ struct imx_header { } header; }; -typedef void (*set_dcd_val_t)(struct imx_header *imxhdr, +struct data_src; +typedef void (*set_dcd_val_t)(struct data_src *ds, char *name, int lineno, int fld, uint32_t value, uint32_t off); @@ -168,7 +169,7 @@ typedef void (*set_dcd_rst_t)(struct imx_header *imxhdr, uint32_t dcd_len, char *name, int lineno); -typedef int (*set_imx_hdr_t)(struct imx_header *imxhdr, uint32_t dcd_len, +typedef int (*set_imx_hdr_t)(struct data_src *ds, uint32_t dcd_len, uint32_t entry_point, uint32_t flash_offset); struct data_src {
Change 1st argument of set_imx_hdr/set_dcd_val to struct data_src. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> --- tools/imximage.c | 41 +++++++++++++++++++++-------------------- tools/imximage.h | 5 +++-- 2 files changed, 24 insertions(+), 22 deletions(-)