public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 01/21] imximage: make header variable length
Date: Sun, 23 Sep 2012 12:57:01 +0200	[thread overview]
Message-ID: <505EEAFD.7030508@denx.de> (raw)
In-Reply-To: <1348281558-19520-2-git-send-email-troy.kisky@boundarydevices.com>

On 22/09/2012 04:38, Troy Kisky wrote:

Hi Troy,

> Also, the header offset is no longer
> right before the code starts.

Comment and subject of the patch do not match. Can you better explain it
? What have "making header variable length", that is, a new feature,
with " the header offset is no longer rigth", that is, a bug ?

Do we already have a variable header the we add a vrec_header function
to  image_type_params ?

> Series tested on an mx51 and mx6q
> ---
>  tools/imximage.c |  142 +++++++++++++++++++++++++++++++-----------------------
>  tools/imximage.h |   10 ++--
>  2 files changed, 87 insertions(+), 65 deletions(-)
> 
> diff --git a/tools/imximage.c b/tools/imximage.c
> index 03a7716..25d3b74 100644
> --- a/tools/imximage.c
> +++ b/tools/imximage.c
> @@ -65,12 +65,15 @@ static table_entry_t imximage_versions[] = {
>  	{-1,            "",     " (Invalid)",                 },
>  };
>  
> -static struct imx_header imximage_header;
>  static uint32_t imximage_version;
>  
>  static set_dcd_val_t set_dcd_val;
>  static set_dcd_rst_t set_dcd_rst;
>  static set_imx_hdr_t set_imx_hdr;
> +static set_imx_size_t set_imx_size;
> +static uint32_t g_flash_offset;
> +
> +static struct image_type_params imximage_params;
>  
>  static uint32_t get_cfg_value(char *token, char *name,  int linenr)
>  {
> @@ -207,85 +210,79 @@ static void set_dcd_rst_v2(struct imx_header *imxhdr, uint32_t dcd_len,
>  	dcd_v2->write_dcd_command.param = DCD_COMMAND_PARAM;
>  }
>  
> -static void set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len,
> -					struct stat *sbuf,
> -					struct mkimage_params *params)
> +static int set_imx_hdr_v1(struct imx_header *imxhdr, uint32_t dcd_len,
> +		uint32_t entry_point, uint32_t flash_offset)
>  {
>  	imx_header_v1_t *hdr_v1 = &imxhdr->header.hdr_v1;
>  	flash_header_v1_t *fhdr_v1 = &hdr_v1->fhdr;
>  	dcd_v1_t *dcd_v1 = &hdr_v1->dcd_table;
> -	uint32_t base_offset;
> -
> -	/* 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);
> -	}

Do you drop BOOT_FROM ? Then this should be documented. Is this to allow
that the same image can be loaded from different media, that share the
same flash offset ? Then, instead of drop it, I suggest to add more
entries in the imximage file, one for each media that is allow.

Something like:
	BOOT_FROM	sd, nand, spi

and maybe a check in the code if all entries do not share the same start
address.

> +	uint32_t hdr_base;
> +	uint32_t header_length = (((char *)&dcd_v1->addr_data[dcd_len].addr)
> +			- ((char *)imxhdr));
>  

For V1, the header is preallocated with the maximum size, that is the
maximum number of DCD entries the SOC in V1 can support. Why do we need
a dynamic length for V1 processors ? As far as I know, the number of
entries and fields for theses SOCs (i.MX25, i.MX35, i.MX51) is fixed.

>  	/* Set magic number */
>  	fhdr_v1->app_code_barker = APP_CODE_BARKER;
>  
> -	fhdr_v1->app_dest_ptr = params->addr;
> -	fhdr_v1->app_dest_ptr = params->ep - imxhdr->flash_offset -
> -		sizeof(struct imx_header);
> -	fhdr_v1->app_code_jump_vector = params->ep;
> +	hdr_base = entry_point - header_length;
> +	fhdr_v1->app_dest_ptr = hdr_base - flash_offset;
> +	fhdr_v1->app_code_jump_vector = entry_point;
>  
> -	base_offset = fhdr_v1->app_dest_ptr + imxhdr->flash_offset ;
> -	fhdr_v1->dcd_ptr_ptr =
> -		(uint32_t) (offsetof(flash_header_v1_t, dcd_ptr) -
> -		offsetof(flash_header_v1_t, app_code_jump_vector) +
> -		base_offset);
> -
> -	fhdr_v1->dcd_ptr = base_offset +
> -			offsetof(imx_header_v1_t, dcd_table);
> -
> -	/* The external flash header must be at the end of the DCD table */
> -	dcd_v1->addr_data[dcd_len].type = sbuf->st_size +
> -				imxhdr->flash_offset +
> -				sizeof(struct imx_header);
> +	fhdr_v1->dcd_ptr_ptr = hdr_base + offsetof(flash_header_v1_t, dcd_ptr);
> +	fhdr_v1->dcd_ptr = hdr_base + offsetof(imx_header_v1_t, dcd_table);
>  
>  	/* Security feature are not supported */
>  	fhdr_v1->app_code_csf = 0;
>  	fhdr_v1->super_root_key = 0;
> +	return header_length;
> +}
> +

Ok, I skip review of this part - it depends on your answer on the
previous question.

>  
> -static void set_imx_hdr_v2(struct imx_header *imxhdr, uint32_t dcd_len,
> -					struct stat *sbuf,
> -					struct mkimage_params *params)
> +static int set_imx_hdr_v2(struct imx_header *imxhdr, uint32_t dcd_len,
> +		uint32_t entry_point, uint32_t flash_offset)
>  {
>  	imx_header_v2_t *hdr_v2 = &imxhdr->header.hdr_v2;
>  	flash_header_v2_t *fhdr_v2 = &hdr_v2->fhdr;
> -
> -	/* 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);
> -	}
> +	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);

So you add a case where there is no DCD table at all. Apart that this
van be a use case, but does it happen in the real life ?

>  	/* Set magic number */
>  	fhdr_v2->header.tag = IVT_HEADER_TAG; /* 0xD1 */
>  	fhdr_v2->header.length = cpu_to_be16(sizeof(flash_header_v2_t));
>  	fhdr_v2->header.version = IVT_VERSION; /* 0x40 */
>  
> -	fhdr_v2->entry = params->ep;
> +	fhdr_v2->entry = entry_point;
>  	fhdr_v2->reserved1 = fhdr_v2->reserved2 = 0;
> -	fhdr_v2->self = params->ep - sizeof(struct imx_header);
> -
> -	fhdr_v2->dcd_ptr = fhdr_v2->self +
> -			offsetof(imx_header_v2_t, dcd_table);
> +	fhdr_v2->self = hdr_base = entry_point - header_length;
>  
> -	fhdr_v2->boot_data_ptr = fhdr_v2->self +
> -			offsetof(imx_header_v2_t, boot_data);
> -
> -	hdr_v2->boot_data.start = fhdr_v2->self - imxhdr->flash_offset;
> -	hdr_v2->boot_data.size = sbuf->st_size +
> -			imxhdr->flash_offset +
> -			sizeof(struct imx_header);
> +	fhdr_v2->dcd_ptr = (dcd_len) ? hdr_base
> +			+ offsetof(imx_header_v2_t, dcd_table) : 0;
> +	fhdr_v2->boot_data_ptr = hdr_base
> +			+ offsetof(imx_header_v2_t, boot_data);
> +	hdr_v2->boot_data.start = hdr_base - flash_offset;
>  
>  	/* Security feature are not supported */
>  	fhdr_v2->csf = 0;
> +	return header_length;
> +}
> +
> +static void set_imx_size_v2(struct imx_header *imxhdr, uint32_t file_size,
> +		uint32_t flash_offset)
> +{
> +	imx_header_v2_t *hdr_v2 = &imxhdr->header.hdr_v2;
> +	/* file_size includes header */
> +	hdr_v2->boot_data.size = file_size + flash_offset;
>  }
>  
>  static void set_hdr_func(struct imx_header *imxhdr)
> @@ -295,11 +292,13 @@ static void set_hdr_func(struct imx_header *imxhdr)
>  		set_dcd_val = set_dcd_val_v1;
>  		set_dcd_rst = set_dcd_rst_v1;
>  		set_imx_hdr = set_imx_hdr_v1;
> +		set_imx_size = set_imx_size_v1;
>  		break;
>  	case IMXIMAGE_V2:
>  		set_dcd_val = set_dcd_val_v2;
>  		set_dcd_rst = set_dcd_rst_v2;
>  		set_imx_hdr = set_imx_hdr_v2;
> +		set_imx_size = set_imx_size_v2;
>  		break;
>  	default:
>  		err_imximage_version(imximage_version);
> @@ -381,9 +380,9 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token,
>  		set_hdr_func(imxhdr);
>  		break;
>  	case CMD_BOOT_FROM:
> -		imxhdr->flash_offset = get_table_entry_id(imximage_bootops,
> +		g_flash_offset = get_table_entry_id(imximage_bootops,
>  					"imximage boot option", token);
> -		if (imxhdr->flash_offset == -1) {

Why do we need a global when we have already a way to not use a global ?

> +		if (g_flash_offset == -1) {
>  			fprintf(stderr, "Error: %s[%d] -Invalid boot device"
>  				"(%s)\n", name, lineno, token);
>  			exit(EXIT_FAILURE);
> @@ -521,12 +520,17 @@ static void imximage_print_header(const void *ptr)
>  	}
>  }
>  
> -static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
> -				struct mkimage_params *params)
> +int imximage_vrec_header(struct mkimage_params *params,
> +		struct image_type_params *tparams)
>  {
> -	struct imx_header *imxhdr = (struct imx_header *)ptr;
> +	struct imx_header *imxhdr;
>  	uint32_t dcd_len;
>  
> +	imxhdr = calloc(1, MAX_HEADER_SIZE);
> +	if (!imxhdr) {
> +		fprintf(stderr, "Error: out of memory\n");
> +		exit(EXIT_FAILURE);
> +	}
>  	/*
>  	 * In order to not change the old imx cfg file
>  	 * by adding VERSION command into it, here need
> @@ -534,14 +538,31 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
>  	 */
>  	imximage_version = IMXIMAGE_V1;
>  	/* Be able to detect if the cfg file has no BOOT_FROM tag */
> -	imxhdr->flash_offset = FLASH_OFFSET_UNDEFINED;
> +	g_flash_offset = FLASH_OFFSET_UNDEFINED;
>  	set_hdr_func(imxhdr);
>  
>  	/* Parse dcd configuration file */
>  	dcd_len = parse_cfg_file(imxhdr, params->imagename);
>  
> +	/* Exit if there is no BOOT_FROM field specifying the flash_offset */
> +	if (g_flash_offset == FLASH_OFFSET_UNDEFINED) {
> +		fprintf(stderr, "Error: No BOOT_FROM tag in %s\n",
> +				params->imagename);
> +		exit(EXIT_FAILURE);
> +	}
>  	/* Set the imx header */
> -	(*set_imx_hdr)(imxhdr, dcd_len, sbuf, params);
> +	imximage_params.header_size = (*set_imx_hdr)(imxhdr, dcd_len,
> +			params->ep, g_flash_offset);
> +	imximage_params.hdr = imxhdr;
> +	return 0;
> +}
> +
> +static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
> +				struct mkimage_params *params)
> +{
> +	/* Set the size in header */
> +	(*set_imx_size)((struct imx_header *)ptr, sbuf->st_size,
> +			g_flash_offset);
>  }
>  
>  int imximage_check_params(struct mkimage_params *params)
> @@ -571,8 +592,9 @@ int imximage_check_params(struct mkimage_params *params)
>   */
>  static struct image_type_params imximage_params = {
>  	.name		= "Freescale i.MX 5x Boot Image support",
> -	.header_size	= sizeof(struct imx_header),
> -	.hdr		= (void *)&imximage_header,
> +	.header_size	= 0,
> +	.hdr		= NULL,
> +	.vrec_header	= imximage_vrec_header,
>  	.check_image_type = imximage_check_image_types,
>  	.verify_header	= imximage_verify_header,
>  	.print_header	= imximage_print_header,
> diff --git a/tools/imximage.h b/tools/imximage.h
> index 34f293d..5fe3a8a 100644


> --- a/tools/imximage.h
> +++ b/tools/imximage.h
> @@ -30,6 +30,7 @@
>  #define DCD_BARKER	0xB17219E9
>  
>  #define HEADER_OFFSET	0x400
> +#define MAX_HEADER_SIZE	(16 << 10)
>  
>  #define CMD_DATA_STR	"DATA"
>  #define FLASH_OFFSET_UNDEFINED	0xFFFFFFFF
> @@ -156,7 +157,6 @@ struct imx_header {
>  		imx_header_v1_t hdr_v1;
>  		imx_header_v2_t hdr_v2;
>  	} header;
> -	uint32_t flash_offset;
>  };
>  
>  typedef void (*set_dcd_val_t)(struct imx_header *imxhdr,
> @@ -168,9 +168,9 @@ typedef void (*set_dcd_rst_t)(struct imx_header *imxhdr,
>  					uint32_t dcd_len,
>  					char *name, int lineno);
>  
> -typedef void (*set_imx_hdr_t)(struct imx_header *imxhdr,
> -					uint32_t dcd_len,
> -					struct stat *sbuf,
> -					struct mkimage_params *params);
> +typedef int (*set_imx_hdr_t)(struct imx_header *imxhdr, uint32_t dcd_len,
> +		uint32_t entry_point, uint32_t flash_offset);
> +typedef void (*set_imx_size_t)(struct imx_header *imxhdr, uint32_t file_size,
> +		uint32_t flash_offset);

I disagree here. mkimage is valid for all architecture, we must not have
special entries here for a SOC or SOC family. For all other SOCs, DCD,
iMX header have no sense.
Anyway, why do you need to add set_imx_size_t when you call it only in
imximage.c ?

>  
>  #endif /* _IMXIMAGE_H_ */

You should split changes in image.h, that are valid for all
architecture, from changes to imximage.c, that are only for i.MX, into
different patches.

In my understanding you add additional entry points to have a variable
header lenght, but this feature is already used on TI with the AIS
image. You use also vrec_header. What am I missing here ?


Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

  reply	other threads:[~2012-09-23 10:57 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-19  0:02 [U-Boot] (no subject) Troy Kisky
2012-09-19  0:02 ` [U-Boot] [PATCH 01/11] imximage: make header variable length Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 02/11] imximage: check dcd_len as entries added Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 03/11] imximage: enable word writes for version2 header Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 04/11] imximage: cleanup parsing Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 05/11] imximage: add expression evaluation Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 06/11] imximage: add plugin commands Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 07/11] imximage.cfg: run files through C preprocessor Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 08/11] mx6: add plugin file for use with imximage.cfg Troy Kisky
2012-09-19  1:40   ` Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 09/11] mx6qsabrelite: imximage.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 10/11] mx6qsabrelite: imximage.cfg: allow plugin to work Troy Kisky
2012-09-19  0:03 ` [U-Boot] [PATCH 11/11] RFC mx6qsabrelite: imximage.cfg: enable plugin mode Troy Kisky
2012-09-19  1:52   ` Troy Kisky
2012-09-22  2:38 ` [U-Boot] [PATCH V2 00/21] Add mx6solo/mx6duallite support Troy Kisky
2012-09-22  2:38   ` [U-Boot] [PATCH V2 01/21] imximage: make header variable length Troy Kisky
2012-09-23 10:57     ` Stefano Babic [this message]
2012-09-24 20:30       ` Troy Kisky
2012-09-25 11:08         ` Stefano Babic
2012-09-22  2:38   ` [U-Boot] [PATCH V2 02/21] imximage: check dcd_len as entries added Troy Kisky
2012-09-23 11:05     ` Stefano Babic
2012-09-24 20:54       ` Troy Kisky
2012-09-25 11:12         ` Stefano Babic
2012-09-22  2:39   ` [U-Boot] [PATCH V2 03/21] imximage: enable word writes for version2 header Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 04/21] imximage: cleanup parsing Troy Kisky
2012-09-23 11:08     ` Stefano Babic
2012-09-24 20:59       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 05/21] imximage: add expression evaluation Troy Kisky
2012-09-23 14:56     ` Stefano Babic
2012-09-24 21:18       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 06/21] imximage: add plugin commands Troy Kisky
2012-09-23 15:38     ` Stefano Babic
2012-09-24 21:46       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 07/21] imximage.cfg: run files through C preprocessor Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 08/21] mx6: add plugin file for use with imximage.cfg Troy Kisky
2012-09-22  4:06     ` Vikram Narayanan
2012-09-23 10:17     ` Stefano Babic
2012-09-23 16:23       ` Eric Nelson
2012-09-23 17:08         ` Stefano Babic
2012-09-23 23:29           ` Eric Nelson
2012-09-24  7:22             ` Stefano Babic
2012-09-24 13:48               ` Eric Nelson
2012-09-24 15:17                 ` Stefano Babic
2012-09-24 22:23           ` Troy Kisky
2012-09-25 12:13             ` Stefano Babic
2012-09-24 20:46       ` Troy Kisky
2012-09-25 11:57         ` Stefano Babic
2012-09-22  2:39   ` [U-Boot] [PATCH V2 09/21] mx6q_4x_mt41j128.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 10/21] mx6q_4x_mt41j128.cfg: allow plugin to work Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 11/21] mx6q_4x_mt41j128.cfg: enable plugin mode Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 12/21] mx6q_4x_mt41j128.cfg: add comments Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 13/21] mx6q_4x_mt41j128.cfg: use ddr3 mode for reset Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 14/21] mx6q_4x_mt41j128.cfg: skip initiailizing non-existent memory Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 15/21] mx6q_4x_mt41j128.cfg: reorder for more efficient storage Troy Kisky
2012-09-22 17:27     ` Fabio Estevam
2012-09-22 17:34       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 16/21] mx6q_4x_mt41j128.cfg: force ZQ calibration Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 17/21] mx6: soc: add get_cpu_type Troy Kisky
2012-09-22  2:50     ` Fabio Estevam
2012-09-22 17:07       ` Troy Kisky
2012-09-23 14:59         ` Stefano Babic
2012-09-22  2:39   ` [U-Boot] [PATCH V2 18/21] arch-mx6: add mx6dl_pins.h Troy Kisky
2012-09-22  4:10     ` Vikram Narayanan
2012-09-22 17:17       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 19/21] mx6qsabrelite: add support for mx6 solo/duallite Troy Kisky
2012-09-22  4:12     ` Vikram Narayanan
2012-09-22 17:24       ` Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 20/21] mx6q_4x_mt41j128.cfg: add mx6 solo/duallite support Troy Kisky
2012-09-22  2:39   ` [U-Boot] [PATCH V2 21/21] mx6qsabrelite: change CONFIG_SYS_PROMPT Troy Kisky
2012-09-22  6:21   ` [U-Boot] [PATCH V2 00/21] Add mx6solo/mx6duallite support Dirk Behme
2012-09-22 16:53     ` Troy Kisky
2012-10-04  1:47   ` [U-Boot] [PATCH V3 00/32] " Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 01/32] imximage: check dcd_len as entries added Troy Kisky
2012-10-20 15:45       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 02/32] imximage: remove redundant setting of app_dest_ptr Troy Kisky
2012-10-08 13:17       ` Stefano Babic
2012-10-20 15:46       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 03/32] imximage: move flash_offset check to common location Troy Kisky
2012-10-08 13:19       ` Stefano Babic
2012-10-18 18:40         ` Troy Kisky
2012-10-19  8:01           ` Stefano Babic
2012-10-20 15:46       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 04/32] imximage: fix size of image to load Troy Kisky
2012-10-20 15:47       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 05/32] imximage: delay setting of image size Troy Kisky
2012-10-20 15:47       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 06/32] imximage: change parameters to set_imx_hdr Troy Kisky
2012-10-20 15:48       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 07/32] imximage: make set_imx_hdr_v1/v2 easier to read Troy Kisky
2012-10-20 15:48       ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 08/32] imximage: make header variable length Troy Kisky
2012-10-20 15:52       ` Stefano Babic
2012-10-21  1:31         ` Troy Kisky
2012-10-21  8:35           ` Stefano Babic
2012-10-22 21:03             ` Troy Kisky
2012-11-28  1:31       ` [U-Boot] [PATCH V4 00/11] imximage series Troy Kisky
2012-11-28  1:31         ` [U-Boot] [PATCH V4 01/11] imximage: mx53 needs transfer length a multiple of 512 Troy Kisky
2012-11-28  9:27           ` Wolfgang Denk
2012-11-28 18:18             ` Troy Kisky
2012-11-28 20:25               ` Wolfgang Denk
2012-11-28 21:05                 ` Troy Kisky
2012-11-28 21:35                   ` Wolfgang Denk
2012-11-29  2:42                     ` Troy Kisky
2012-11-29  5:28                       ` Wolfgang Denk
2012-12-03  9:23                         ` Stefano Babic
2012-12-03  9:12                     ` Stefano Babic
2012-11-28 18:26             ` Troy Kisky
2012-11-28 10:34           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 02/11] imximage: make header variable length Troy Kisky
2012-11-28 10:42           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 03/11] imximage: remove static imximage_version Troy Kisky
2012-11-28 10:43           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 04/11] imximage: prepare to move static variables to struct data_src Troy Kisky
2012-11-28  9:38           ` Wolfgang Denk
2012-11-28 18:36             ` Troy Kisky
2012-11-28 20:30               ` Wolfgang Denk
2012-11-28  1:31         ` [U-Boot] [PATCH V4 05/11] imximage: change parameters for set_dcd_val/set_imx_hdr Troy Kisky
2012-11-28 10:43           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 06/11] imximage: move set_imx_hdr to struct data_src Troy Kisky
2012-11-28 10:45           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 07/11] imximage: move set_dcd_val " Troy Kisky
2012-11-28 10:47           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 08/11] imximage: enable word writes for version2 header Troy Kisky
2012-11-28  9:39           ` Wolfgang Denk
2012-11-28 20:40             ` Troy Kisky
2012-12-04  8:23               ` Stefano Babic
2012-11-28 10:47           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 09/11] tools: add parse_helper file Troy Kisky
2012-11-28  9:41           ` Wolfgang Denk
2012-11-28 10:48           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 10/11] imximage: use parse_helper functions Troy Kisky
2012-11-28 10:48           ` Liu Hui-R64343
2012-11-28  1:31         ` [U-Boot] [PATCH V4 11/11] parse_helper: add expression evaluation Troy Kisky
2012-11-28 10:49           ` Liu Hui-R64343
2012-11-28  9:30         ` [U-Boot] [PATCH V4 00/11] imximage series Wolfgang Denk
2012-11-28 18:29           ` Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 09/32] imximage: remove static imximage_version Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 10/32] imximage: prepare to move static variables to struct data_src Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 11/32] imximage: change parameters for set_dcd_val/set_imx_hdr Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 12/32] imximage: move set_imx_hdr to struct data_src Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 13/32] imximage: move set_dcd_val " Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 14/32] imximage: enable word writes for version2 header Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 15/32] tools: add parse_helper file Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 16/32] imximage: use parse_helper functions Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 17/32] imximage.cfg: run files through C preprocessor Troy Kisky
2012-10-07 18:19       ` Eric Nelson
2012-10-08 19:11         ` Troy Kisky
2012-10-08 13:38       ` Stefano Babic
2012-10-08 21:48         ` Troy Kisky
2012-10-10  2:03         ` Troy Kisky
2012-10-11 11:11           ` Stefano Babic
2012-10-11 20:33             ` Troy Kisky
2012-10-11 22:27               ` stefano babic
2012-10-11 23:15                 ` Tom Rini
2012-10-13 10:11                   ` [U-Boot] File placement in Soc / board dirs and make issues (was: [PATCH V3 17/32] imximage.cfg: run files through C preprocessor) Albert ARIBAUD
2012-10-13 15:17                     ` Tom Rini
2012-10-14  8:37                       ` [U-Boot] File placement in Soc / board dirs and make issues Albert ARIBAUD
2012-10-15  1:24                         ` Tom Rini
2012-10-23  6:30                           ` Albert ARIBAUD
2012-10-17 20:32                   ` [U-Boot] [PATCH V3 17/32] imximage.cfg: run files through C preprocessor Troy Kisky
2012-10-17 21:05                     ` Tom Rini
2012-10-17 21:38                       ` Troy Kisky
2012-10-17 22:29                         ` Tom Rini
2012-10-04  1:47     ` [U-Boot] [PATCH V3 18/32] mx6q_4x_mt41j128.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 19/32] mx6q_4x_mt41j128.cfg: add comments Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 20/32] mx6q_4x_mt41j128.cfg: use ddr3 mode for reset Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 21/32] mx6q_4x_mt41j128.cfg: skip initiailizing non-existent memory Troy Kisky
2012-10-07 21:01       ` Eric Nelson
2012-10-04  1:47     ` [U-Boot] [PATCH V3 22/32] mx6q_4x_mt41j128.cfg: force ZQ calibration Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 23/32] mx6: soc: update get_cpu_rev and get_imx_type for mx6solo/sololite Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 24/32] mx6: use CONFIG_MX6 instead of CONFIG_MX6Q Troy Kisky
2012-10-08 13:41       ` Stefano Babic
2012-10-08 21:49         ` Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 25/32] imx-common: cpu: add imx_ddr_size Troy Kisky
2012-10-08 13:06       ` Stefano Babic
2012-10-08 21:35         ` Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 26/32] arch-mx6: add mx6dl_pins.h Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 27/32] mx6qsabrelite: add support for mx6 solo/duallite Troy Kisky
2012-10-04  3:23       ` Otavio Salvador
2012-10-04 23:34         ` Troy Kisky
2012-10-08 13:47           ` Stefano Babic
2012-10-04  1:47     ` [U-Boot] [PATCH V3 28/32] mx6q_4x_mt41j128.cfg: add mx6 solo/duallite support Troy Kisky
2012-10-08 18:46       ` Eric Nelson
2012-10-08 21:08         ` Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 29/32] Add boards for sabrelite variants mx6s(solo) and mx6dl(duallite) Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 30/32] mx6qsabrelite: change CONFIG_SYS_PROMPT Troy Kisky
2012-10-04  3:00       ` Otavio Salvador
2012-10-04 23:28         ` Troy Kisky
2012-10-08 13:54           ` Stefano Babic
2012-10-08 21:58             ` Troy Kisky
2012-10-08 22:05               ` Fabio Estevam
2012-10-08 22:18               ` stefano babic
2012-10-08 22:22                 ` Eric Nelson
2012-10-08 22:21               ` Eric Nelson
2012-10-04  1:47     ` [U-Boot] [PATCH V3 31/32] parse_helper: add expression evaluation Troy Kisky
2012-10-04  1:47     ` [U-Boot] [PATCH V3 32/32] imx-mkimage.h: use base + offset syntax Troy Kisky
2012-10-04 10:18     ` [U-Boot] [PATCH V3 00/32] Add mx6solo/mx6duallite support Albert ARIBAUD
2012-10-04 14:36       ` Eric Nelson
2012-10-04 19:51         ` Albert ARIBAUD
2012-10-04 14:52     ` Eric Nelson
2012-10-08 13:15     ` Stefano Babic
2012-10-08 23:58       ` Troy Kisky

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=505EEAFD.7030508@denx.de \
    --to=sbabic@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox