All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 3/7] tools: dynamically allocate imx_header in imximage
Date: Thu, 11 Jul 2013 20:29:00 +0200	[thread overview]
Message-ID: <201307112029.00660.marex@denx.de> (raw)
In-Reply-To: <1373548001-19728-4-git-send-email-sbabic@denx.de>

Dear Stefano Babic,

> Change to dynamically allocate the imx_header to correctly
> allocate the IVT, Boot Data and DCD at correct locations
> depending on the boot media.
> 
> Also check that the Image Vector Table Offset + IVT +
> Boot Data + DCD <= Initial Load Region Size.
> 
> Previously struct imx_header was always 4096 bytes and was
> not dealing correctly with the Image Vector Table Offset.
> 
> Now, the memory allocation looks for e.g. SD boot like this
> 
>  Storage   u-boot.imx                             RAM
>  Device
> 
>  00000000                                         177ff000 <--------------
> 
>  00000400  00000000  d1 00 20 40 IVT.header       177ff400 <-------      |
>  00000404  00000004  00 00 80 17 IVT.entry        177ff404 -----------   |
>  00000408  00000008  00 00 00 00 IVT.reserved1    177ff408        |  |   |
>  0000040C  0000000C  2c f4 7f 17 IVT.dcd          177ff40C ------ |  |   |
>  00000410  00000010  20 f4 7f 17 IVT.boot         177ff410 ---- | |  |   |
>  00000414  00000014  00 f4 7f 17 IVT.self         177ff414 --------  |   |
>  00000418  00000018  00 00 00 00 IVT.csf          177ff418    | |    |   |
>  0000041C  0000001C  00 00 00 00 IVT.reserved2    177ff41C    | |    |   |
>  00000420  00000020  00 f0 7f 17 BootData.start   177ff420 <--- |    | ---
>  00000424  00000024  00 60 03 00 BootData.length  177ff424      |    |
>  00000428  00000028  00 00 00 00 BootData.plugin  177ff428      |    |
>  0000042C  0000002C  d2 03 30 40 DCD.header       177ff42C <-----    |
>  ...                                                                 |
>  00001000  00000c00  13 00 00 ea U-Boot Start     17800000 <----------
> 
> While at it also remove the unused #define HEADER_OFFSET.
> 
> Signed-off-by: Stefano Babic <sbabic@denx.de>
> ---
>  tools/imximage.c |   44 +++++++++++++++++++++++++++++++++++++-------
>  tools/imximage.h |   16 +++++++++++++---
>  2 files changed, 50 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/imximage.c b/tools/imximage.c
> index d87e94d..984cb9b 100644
> --- a/tools/imximage.c
> +++ b/tools/imximage.c
> @@ -47,7 +47,7 @@ static table_entry_t imximage_cmds[] = {
>   * Supported Boot options for configuration file
>   * this is needed to set the correct flash offset
>   */
> -static table_entry_t imximage_bootops[] = {
> +static table_entry_t imximage_boot_offset[] = {
>  	{FLASH_OFFSET_ONENAND,	"onenand",	"OneNAND Flash",},
>  	{FLASH_OFFSET_NAND,	"nand",		"NAND Flash",	},
>  	{FLASH_OFFSET_NOR,	"nor",		"NOR Flash",	},
> @@ -58,6 +58,20 @@ static table_entry_t imximage_bootops[] = {
>  };
> 
>  /*
> + * Supported Boot options for configuration file
> + * this is needed to determine the initial load size
> + */
> +static table_entry_t imximage_boot_loadsize[] = {
> +	{FLASH_LOADSIZE_ONENAND,	"onenand",	"OneNAND Flash",},
> +	{FLASH_LOADSIZE_NAND,		"nand",		"NAND Flash",	},
> +	{FLASH_LOADSIZE_NOR,		"nor",		"NOR Flash",	},
> +	{FLASH_LOADSIZE_SATA,		"sata",		"SATA Disk",	},
> +	{FLASH_LOADSIZE_SD,		"sd",		"SD Card",	},
> +	{FLASH_LOADSIZE_SPI,		"spi",		"SPI Flash",	},
> +	{-1,				"",		"Invalid",	},
> +};
> +
> +/*
>   * IMXIMAGE version definition for i.MX chips
>   */
>  static table_entry_t imximage_versions[] = {
> @@ -70,6 +84,8 @@ static struct imx_header imximage_header;
>  static uint32_t imximage_version;
>  /* Image Vector Table Offset */
>  static uint32_t imximage_ivt_offset;
> +/* Initial Load Region Size */
> +static uint32_t imximage_init_loadsize;
> 
>  static set_dcd_val_t set_dcd_val;
>  static set_dcd_rst_t set_dcd_rst;
> @@ -211,7 +227,9 @@ static void set_imx_hdr_v1(struct imx_header *imxhdr,
> uint32_t dcd_len, /* Set magic number */
>  	fhdr_v1->app_code_barker = APP_CODE_BARKER;
> 
> -	hdr_base = entry_point - sizeof(struct imx_header);
> +	/* TODO: check i.MX image V1 handling, for now use 'old' style */
> +	/* hdr_base = entry_point - imximage_init_loadsize + flash_offset; */

The above line should probably be removed.

[...]

> @@ -163,7 +173,7 @@ struct imx_header {
>  		imx_header_v1_t hdr_v1;
>  		imx_header_v2_t hdr_v2;
>  	} header;
> -} __attribute__((aligned(4096)));
> +};

What about the alignment, is it preserved?

Best regards,
Marek Vasut

  reply	other threads:[~2013-07-11 18:29 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11 13:06 [U-Boot] [PATCH v1 0/7] The patchset fixes some issue in the generation of the imx image Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 1/7] tools: imx_header should not include flash_offset Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 2/7] tools: rename mximage_flash_offset to imximage_ivt_offset Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 3/7] tools: dynamically allocate imx_header in imximage Stefano Babic
2013-07-11 18:29   ` Marek Vasut [this message]
2013-07-11 13:06 ` [U-Boot] [PATCH v1 4/7] tools: add variable padding of data image in mkimage Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 5/7] tools: add padding of data image file for imximage Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 6/7] tools: add support for setting the CSF into imximage Stefano Babic
2013-07-11 18:14   ` Wolfgang Denk
2013-07-12  9:17     ` Stefano Babic
2013-07-11 13:06 ` [U-Boot] [PATCH v1 7/7] imx: add status reporting for HAB status Stefano Babic
2013-07-11 17:17   ` Fabio Estevam
2013-07-12  8:27     ` Stefano Babic
2013-07-11 18:31   ` Marek Vasut
2013-07-12  8:34     ` Stefano Babic
2013-07-11 18:11 ` [U-Boot] [PATCH v1 0/7] The patchset fixes some issue in the generation of the imx image Otavio Salvador
2013-07-11 18:17   ` Eric Nelson
2013-07-11 20:40 ` Eric Nelson
2013-08-12 14:39 ` [U-Boot] [PATCH v2 " Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 1/7] tools: imx_header should not include flash_offset Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 2/7] tools: rename mximage_flash_offset to imximage_ivt_offset Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 3/7] tools: dynamically allocate imx_header in imximage Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 4/7] tools: add variable padding of data image in mkimage Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 5/7] tools: add padding of data image file for imximage Stefano Babic
2013-08-13  5:10     ` Marek Vasut
2013-08-19 11:17       ` Stefano Babic
2013-08-12 14:39   ` [U-Boot] [PATCH v2 6/7] tools: add support for setting the CSF into imximage Stefano Babic
2013-08-15 18:49     ` Bernhard Walle
2013-08-12 14:39   ` [U-Boot] [PATCH v2 7/7] imx: add status reporting for HAB status Stefano Babic
2013-08-20 20:21     ` Bernhard Walle
2013-08-12 15:23   ` [U-Boot] [PATCH v2 0/7] The patchset fixes some issue in the generation of the imx image Otavio Salvador
2013-08-19 11:30     ` Stefano Babic
2013-08-19 11:40       ` Otavio Salvador
2013-08-19 16:19   ` Tom Rini
2013-08-19 16:44     ` Stefano Babic
2013-08-19 19:00       ` Tom Rini
2013-08-19 19:45         ` Marek Vasut
2013-08-19 19:51           ` Tom Rini
2013-08-19 17:03 ` [U-Boot] [PATCH v3 " Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 1/7] tools: imx_header should not include flash_offset Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 2/7] tools: rename mximage_flash_offset to imximage_ivt_offset Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 3/7] tools: dynamically allocate imx_header in imximage Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 4/7] tools: add variable padding of data image in mkimage Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 5/7] tools: add padding of data image file for imximage Stefano Babic
2013-08-27 15:17     ` [U-Boot] [PATCH v4 " Stefano Babic
2013-09-10 22:14       ` York Sun
2013-09-11  7:13         ` Stefano Babic
2013-09-11 15:20           ` York Sun
2013-08-19 17:03   ` [U-Boot] [PATCH v3 6/7] tools: add support for setting the CSF into imximage Stefano Babic
2013-08-19 17:03   ` [U-Boot] [PATCH v3 7/7] imx: add status reporting for HAB status Stefano Babic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201307112029.00660.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.