diff options
| -rw-r--r-- | tools/imximage.c | 11 | ||||
| -rw-r--r-- | tools/imximage.h | 3 | 
2 files changed, 9 insertions, 5 deletions
| diff --git a/tools/imximage.c b/tools/imximage.c index 895c9de7b..5e8e4701d 100644 --- a/tools/imximage.c +++ b/tools/imximage.c @@ -524,11 +524,14 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,  	/*  	 * ROM bug alert -	 * mx53 only loads 512 byte multiples. -	 * The remaining fraction of a block bytes would -	 * not be loaded. +	 * +	 * MX53 only loads 512 byte multiples in case of SD boot. +	 * MX53 only loads NAND page multiples in case of NAND boot and +	 * supports up to 4096 byte large pages, thus align to 4096. +	 * +	 * The remaining fraction of a block bytes would not be loaded!  	 */ -	*header_size_ptr = ROUND(sbuf->st_size + imxhdr->flash_offset, 512); +	*header_size_ptr = ROUND(sbuf->st_size + imxhdr->flash_offset, 4096);  }  int imximage_check_params(struct mkimage_params *params) diff --git a/tools/imximage.h b/tools/imximage.h index 1445c1ee0..5c929e498 100644 --- a/tools/imximage.h +++ b/tools/imximage.h @@ -157,13 +157,14 @@ typedef struct {  	dcd_v2_t dcd_table;  } imx_header_v2_t; +/* The header must be aligned to 4k on MX53 for NAND boot */  struct imx_header {  	union {  		imx_header_v1_t hdr_v1;  		imx_header_v2_t hdr_v2;  	} header;  	uint32_t flash_offset; -}; +} __attribute__((aligned(4096)));  typedef void (*set_dcd_val_t)(struct imx_header *imxhdr,  					char *name, int lineno, |