mirror of
https://github.com/u-boot/u-boot.git
synced 2025-01-22 18:54:08 +08:00
imximage: Remove overwriting of flash_offset
The flash header supports different flash offsets for different boot devices. E.g. parallel NOR or OneNAND use a different offset than FLASH_OFFSET_STANDARD (== 0x400). The flash offset is correctly read from the configuration in parse_cfg_cmd(). But is then overwritten wrongly in set_imx_hdr_v1/2(). Fix this by removing this overwriting. Use the flash offset correctly read from the configuration, instead. If there is no flash_offset read from the configuration file, i.e. the BOOT_FROM tag is missing, exit with an error message. Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com> CC: Jason Liu <liu.h.jason@gmail.com> CC: Stefano Babic <sbabic@denx.de> Tested-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
cd207cde94
commit
49d3e27211
@ -216,8 +216,12 @@ static void set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len,
|
||||
dcd_v1_t *dcd_v1 = &hdr_v1->dcd_table;
|
||||
uint32_t base_offset;
|
||||
|
||||
/* Set default offset */
|
||||
imxhdr->flash_offset = FLASH_OFFSET_STANDARD;
|
||||
/* Exit if there is no BOOT_FROM field specifying the flash_offset */
|
||||
if(imxhdr->flash_offset == FLASH_OFFSET_UNDEFINED) {
|
||||
fprintf(stderr, "Error: Header v1: No BOOT_FROM tag in %s\n",
|
||||
params->imagename);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Set magic number */
|
||||
fhdr_v1->app_code_barker = APP_CODE_BARKER;
|
||||
@ -253,8 +257,12 @@ static void set_imx_hdr_v2(struct imx_header *imxhdr, uint32_t dcd_len,
|
||||
imx_header_v2_t *hdr_v2 = &imxhdr->header.hdr_v2;
|
||||
flash_header_v2_t *fhdr_v2 = &hdr_v2->fhdr;
|
||||
|
||||
/* Set default offset */
|
||||
imxhdr->flash_offset = FLASH_OFFSET_STANDARD;
|
||||
/* Exit if there is no BOOT_FROM field specifying the flash_offset */
|
||||
if(imxhdr->flash_offset == FLASH_OFFSET_UNDEFINED) {
|
||||
fprintf(stderr, "Error: Header v2: No BOOT_FROM tag in %s\n",
|
||||
params->imagename);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Set magic number */
|
||||
fhdr_v2->header.tag = IVT_HEADER_TAG; /* 0xD1 */
|
||||
@ -525,6 +533,8 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
|
||||
* set up function ptr group to V1 by default.
|
||||
*/
|
||||
imximage_version = IMXIMAGE_V1;
|
||||
/* Be able to detect if the cfg file has no BOOT_FROM tag */
|
||||
imxhdr->flash_offset = FLASH_OFFSET_UNDEFINED;
|
||||
set_hdr_func(imxhdr);
|
||||
|
||||
/* Parse dcd configuration file */
|
||||
|
@ -32,6 +32,7 @@
|
||||
#define HEADER_OFFSET 0x400
|
||||
|
||||
#define CMD_DATA_STR "DATA"
|
||||
#define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF
|
||||
#define FLASH_OFFSET_STANDARD 0x400
|
||||
#define FLASH_OFFSET_NAND FLASH_OFFSET_STANDARD
|
||||
#define FLASH_OFFSET_SD FLASH_OFFSET_STANDARD
|
||||
|
Loading…
Reference in New Issue
Block a user