Patchwork [U-Boot,V4,05/11] imximage: change parameters for set_dcd_val/set_imx_hdr

login
register
mail settings
Submitter Troy Kisky
Date Nov. 28, 2012, 1:31 a.m.
Message ID <1354066303-29762-6-git-send-email-troy.kisky@boundarydevices.com>
Download mbox | patch
Permalink /patch/202340/
State Changes Requested
Delegated to: Stefano Babic
Headers show

Comments

Troy Kisky - Nov. 28, 2012, 1:31 a.m.
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(-)
Liu Hui-R64343 - Nov. 28, 2012, 10:43 a.m.
>-----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
>

Patch

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 {