summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMinkyu Kang <mk7.kang@samsung.com>2010-03-15 10:51:36 +0900
committerMinkyu Kang <mk7.kang@samsung.com>2010-03-15 10:51:36 +0900
commit995a4b1d83a08223c82c1e15778b02e85e5bba51 (patch)
tree0acb85278216df76d8fb7284b32d6dd95a1fc978 /tools
parenta8d25fc26f681a9c4dfb062ebb4b00b9509a7966 (diff)
parent44de3e8ff7ed48bf96ec6c5e2173187d9c1c61e6 (diff)
downloadu-boot-imx-995a4b1d83a08223c82c1e15778b02e85e5bba51.zip
u-boot-imx-995a4b1d83a08223c82c1e15778b02e85e5bba51.tar.gz
u-boot-imx-995a4b1d83a08223c82c1e15778b02e85e5bba51.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-arm
Conflicts: board/davinci/da830evm/da830evm.c board/edb93xx/sdram_cfg.c board/esd/otc570/otc570.c board/netstar/eeprom.c board/netstar/eeprom_start.S cpu/arm920t/ep93xx/timer.c include/configs/netstar.h include/configs/otc570.h Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/imximage.c32
-rw-r--r--tools/imximage.h2
2 files changed, 16 insertions, 18 deletions
diff --git a/tools/imximage.c b/tools/imximage.c
index 59923ff..df2d8c4 100644
--- a/tools/imximage.c
+++ b/tools/imximage.c
@@ -101,22 +101,23 @@ static void imximage_print_header(const void *ptr)
struct imx_header *imx_hdr = (struct imx_header *) ptr;
flash_header_t *hdr = &imx_hdr->fhdr;
uint32_t size;
- flash_cfg_parms_t *ext_header;
+ uint32_t length;
+ dcd_t *dcd = &imx_hdr->dcd_table;
size = imx_hdr->dcd_table.preamble.length;
if (size > (MAX_HW_CFG_SIZE * sizeof(dcd_type_addr_data_t))) {
fprintf(stderr,
"Error: Image corrupt DCD size %d exceed maximum %d\n",
- size / sizeof(dcd_type_addr_data_t), MAX_HW_CFG_SIZE);
+ (uint32_t)(size / sizeof(dcd_type_addr_data_t)),
+ MAX_HW_CFG_SIZE);
exit(EXIT_FAILURE);
}
- ext_header = (flash_cfg_parms_t *) ((uint32_t)&imx_hdr->dcd_table +
- sizeof(dcd_preamble_t) + size);
+ length = dcd->preamble.length / sizeof(dcd_type_addr_data_t);
printf("Image Type: Freescale IMX Boot Image\n");
printf("Data Size: ");
- genimg_print_size(ext_header->length);
+ genimg_print_size(dcd->addr_data[length].type);
printf("Load Address: %08x\n", (unsigned int)hdr->app_dest_ptr);
printf("Entry Point: %08x\n", (unsigned int)hdr->app_code_jump_vector);
}
@@ -128,7 +129,7 @@ static uint32_t imximage_parse_cfg_file(struct imx_header *imxhdr, char *name)
char *token, *saveptr1, *saveptr2;
int lineno = 0;
int fld, value;
- uint32_t len;
+ size_t len;
int dcd_len = 0;
dcd_t *dcd = &imxhdr->dcd_table;
int32_t cmd;
@@ -237,7 +238,7 @@ static uint32_t imximage_parse_cfg_file(struct imx_header *imxhdr, char *name)
dcd->preamble.length = dcd_len * sizeof(dcd_type_addr_data_t);
fclose(fd);
- return dcd->preamble.length;
+ return dcd_len;
}
static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
@@ -246,7 +247,7 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
struct imx_header *hdr = (struct imx_header *)ptr;
flash_header_t *fhdr = &hdr->fhdr;
int dcd_len;
- flash_cfg_parms_t *ext_header;
+ dcd_t *dcd = &hdr->dcd_table;
uint32_t base_offset;
/* Set default offset */
@@ -264,24 +265,21 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
fhdr->app_code_jump_vector = params->ep;
base_offset = fhdr->app_dest_ptr + hdr->flash_offset ;
- fhdr->dcd_ptr_ptr = (uint32_t) ((uint32_t)&fhdr->dcd_ptr -
- (uint32_t)&fhdr->app_code_jump_vector) + base_offset ;
+ fhdr->dcd_ptr_ptr = (uint32_t) (offsetof(flash_header_t, dcd_ptr) -
+ offsetof(flash_header_t, app_code_jump_vector) +
+ base_offset);
fhdr->dcd_ptr = base_offset +
- ((uint32_t)&hdr->dcd_table -
- (uint32_t)&hdr->fhdr);
+ offsetof(struct imx_header, dcd_table);
/* The external flash header must be at the end of the DCD table */
- ext_header = (flash_cfg_parms_t *) ((uint32_t)&hdr->dcd_table +
- dcd_len +
- sizeof(dcd_preamble_t));
- ext_header->length = sbuf->st_size +
+ dcd->addr_data[dcd_len].type = sbuf->st_size +
hdr->flash_offset +
sizeof(struct imx_header);
/* Security feature are not supported */
fhdr->app_code_csf = 0;
- fhdr->super_root_key = NULL;
+ fhdr->super_root_key = 0;
}
diff --git a/tools/imximage.h b/tools/imximage.h
index c579f51..b4d926d 100644
--- a/tools/imximage.h
+++ b/tools/imximage.h
@@ -81,7 +81,7 @@ typedef struct {
uint32_t app_code_barker;
uint32_t app_code_csf;
uint32_t dcd_ptr_ptr;
- hab_rsa_public_key *super_root_key;
+ uint32_t super_root_key;
uint32_t dcd_ptr;
uint32_t app_dest_ptr;
} flash_header_t;