Message ID | 1366920963-8646-1-git-send-email-marex@denx.de |
---|---|
State | Awaiting Upstream |
Headers | show |
Hi Marek, On Thursday, April 25, 2013 10:16:02 PM, Marek Vasut wrote: > Implement BOOT_OFFSET command for imximage. This command is parallel > to current BOOT_FROM command, but allows more flexibility in configuring > arbitrary image header offset. Also add an imximage.cfg with default > offset values into arm/arch/imx-common/ so the board-specific imximage.cfg > can include this file to avoid magic constants. > > The syntax of BOOT_OFFSET command is "BOOT_OFFSET <u32 offset>". > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> > Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Fabio Estevam <fabio.estevam@freescale.com> > Cc: Scott Wood <scottwood@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Cc: Tom Rini <trini@ti.com> > --- > arch/arm/include/asm/imx-common/imximage.cfg | 30 > ++++++++++++++++++++++++++ > doc/README.imximage | 18 ++++++++++++++++ > tools/imximage.c | 6 ++++++ > tools/imximage.h | 6 ++++++ > 4 files changed, 60 insertions(+) > create mode 100644 arch/arm/include/asm/imx-common/imximage.cfg > > diff --git a/arch/arm/include/asm/imx-common/imximage.cfg > b/arch/arm/include/asm/imx-common/imximage.cfg > new file mode 100644 > index 0000000..95daa3d > --- /dev/null > +++ b/arch/arm/include/asm/imx-common/imximage.cfg > @@ -0,0 +1,30 @@ > +/* > + * i.MX image header offset values > + * Copyright (C) 2013 Marek Vasut <marex@denx.de> > + * > + * See file CREDITS for list of people who contributed to this > + * project. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License or (at your option) any later version. > + */ > + > +/* > + * NOTE: This file must be kept in sync with tools/imximage.h because > + * tools/imximage.c can not cross-include headers from arch/arm/ > + * and vice-versa. > + */ > + > +#ifndef __ASM_IMX_COMMON_IMXIMAGE_CFG__ > +#define __ASM_IMX_COMMON_IMXIMAGE_CFG__ > + > +/* Standard image header offset for NAND, SATA, SD, SPI flash. */ > +#define FLASH_OFFSET_STANDARD 0x400 > +/* Specific image header offset for booting from OneNAND. */ > +#define FLASH_OFFSET_ONENAND 0x100 > +/* Specific image header offset for booting from memory-mapped NOR. */ > +#define FLASH_OFFSET_NOR 0x1000 > + > +#endif /* __ASM_IMX_COMMON_IMXIMAGE_CFG__ */ > diff --git a/doc/README.imximage b/doc/README.imximage > index 073e3fc..802eb90 100644 > --- a/doc/README.imximage > +++ b/doc/README.imximage > @@ -65,9 +65,27 @@ Configuration command line syntax: > This command need appear the fist before > other valid commands in configuration file. > > + BOOT_OFFSET value > + > + This command is parallel to BOOT_FROM and > + is preferred over BOOT_FROM. > + > + value: Offset of the image header, this > + value shall be set to one of the > + values found in the file: > + arch/arm/include/asm/\ > + imx-common/imximage.cfg > + Example: > + BOOT_OFFSET FLASH_OFFSET_STANDARD > + > BOOT_FROM nand/spi/sd/onenand/nor/sata > + > + This command is parallel to BOOT_OFFSET and > + is to be deprecated in favor of BOOT_OFFSET. > + > Example: > BOOT_FROM spi > + > DATA type address value > > type: word=4, halfword=2, byte=1 > diff --git a/tools/imximage.c b/tools/imximage.c > index c018562..5e8e470 100644 > --- a/tools/imximage.c > +++ b/tools/imximage.c > @@ -37,6 +37,7 @@ > */ > static table_entry_t imximage_cmds[] = { > {CMD_BOOT_FROM, "BOOT_FROM", "boot command", }, > + {CMD_BOOT_OFFSET, "BOOT_OFFSET", "Boot offset", }, > {CMD_DATA, "DATA", "Reg Write Data", }, > {CMD_IMAGE_VERSION, "IMAGE_VERSION", "image version", }, > {-1, "", "", }, > @@ -352,6 +353,11 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, > int32_t cmd, char *token, > if (unlikely(cmd_ver_first != 1)) > cmd_ver_first = 0; > break; > + case CMD_BOOT_OFFSET: > + imxhdr->flash_offset = get_cfg_value(token, name, lineno); > + if (unlikely(cmd_ver_first != 1)) > + cmd_ver_first = 0; > + break; > case CMD_DATA: > value = get_cfg_value(token, name, lineno); > (*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len); > diff --git a/tools/imximage.h b/tools/imximage.h > index dfd2e9e..99e124a 100644 > --- a/tools/imximage.h > +++ b/tools/imximage.h > @@ -31,6 +31,11 @@ > > #define HEADER_OFFSET 0x400 > > +/* > + * NOTE: This file must be kept in sync with arch/arm/include/asm/\ > + * imx-common/imximage.cfg because tools/imximage.c can not > + * cross-include headers from arch/arm/ and vice-versa. > + */ > #define CMD_DATA_STR "DATA" > #define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF > #define FLASH_OFFSET_STANDARD 0x400 > @@ -52,6 +57,7 @@ enum imximage_cmd { > CMD_INVALID, > CMD_IMAGE_VERSION, > CMD_BOOT_FROM, > + CMD_BOOT_OFFSET, > CMD_DATA > }; > > -- > 1.7.10.4 This looks good to me. Best regards, Benoît
Dear Benoît Thébaudeau, > Hi Marek, > [...] > > @@ -52,6 +57,7 @@ enum imximage_cmd { > > > > CMD_INVALID, > > CMD_IMAGE_VERSION, > > CMD_BOOT_FROM, > > > > + CMD_BOOT_OFFSET, > > > > CMD_DATA > > > > }; > > > > -- > > 1.7.10.4 > > This looks good to me. Yes, and it keeps compat too. Btw can you maybe use "[...]" to cut out the irrelevant parts of the emails so the relevant replies are easier to find please? Best regards, Marek Vasut
Dear Marek Vasut, On Friday, April 26, 2013 2:57:44 AM, Marek Vasut wrote: > > > @@ -52,6 +57,7 @@ enum imximage_cmd { > > > > > > CMD_INVALID, > > > CMD_IMAGE_VERSION, > > > CMD_BOOT_FROM, > > > > > > + CMD_BOOT_OFFSET, > > > > > > CMD_DATA > > > > > > }; > > > > > > -- > > > 1.7.10.4 > > > > This looks good to me. > > Yes, and it keeps compat too. Btw can you maybe use "[...]" to cut out the > irrelevant parts of the emails so the relevant replies are easier to find > please? Will do. ;) Best regards, Benoît
On 25/04/2013 22:16, Marek Vasut wrote: > Implement BOOT_OFFSET command for imximage. This command is parallel > to current BOOT_FROM command, but allows more flexibility in configuring > arbitrary image header offset. Also add an imximage.cfg with default > offset values into arm/arch/imx-common/ so the board-specific imximage.cfg > can include this file to avoid magic constants. > > The syntax of BOOT_OFFSET command is "BOOT_OFFSET <u32 offset>". > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> > Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Fabio Estevam <fabio.estevam@freescale.com> > Cc: Scott Wood <scottwood@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Cc: Tom Rini <trini@ti.com> > --- > arch/arm/include/asm/imx-common/imximage.cfg | 30 ++++++++++++++++++++++++++ > doc/README.imximage | 18 ++++++++++++++++ > tools/imximage.c | 6 ++++++ > tools/imximage.h | 6 ++++++ > 4 files changed, 60 insertions(+) > create mode 100644 arch/arm/include/asm/imx-common/imximage.cfg > > diff --git a/arch/arm/include/asm/imx-common/imximage.cfg b/arch/arm/include/asm/imx-common/imximage.cfg > new file mode 100644 > index 0000000..95daa3d > --- /dev/null > +++ b/arch/arm/include/asm/imx-common/imximage.cfg > @@ -0,0 +1,30 @@ > +/* > + * i.MX image header offset values > + * Copyright (C) 2013 Marek Vasut <marex@denx.de> > + * > + * See file CREDITS for list of people who contributed to this > + * project. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License or (at your option) any later version. > + */ > + > +/* > + * NOTE: This file must be kept in sync with tools/imximage.h because > + * tools/imximage.c can not cross-include headers from arch/arm/ > + * and vice-versa. > + */ > + > +#ifndef __ASM_IMX_COMMON_IMXIMAGE_CFG__ > +#define __ASM_IMX_COMMON_IMXIMAGE_CFG__ > + > +/* Standard image header offset for NAND, SATA, SD, SPI flash. */ > +#define FLASH_OFFSET_STANDARD 0x400 > +/* Specific image header offset for booting from OneNAND. */ > +#define FLASH_OFFSET_ONENAND 0x100 > +/* Specific image header offset for booting from memory-mapped NOR. */ > +#define FLASH_OFFSET_NOR 0x1000 > + > +#endif /* __ASM_IMX_COMMON_IMXIMAGE_CFG__ */ > diff --git a/doc/README.imximage b/doc/README.imximage > index 073e3fc..802eb90 100644 > --- a/doc/README.imximage > +++ b/doc/README.imximage > @@ -65,9 +65,27 @@ Configuration command line syntax: > This command need appear the fist before > other valid commands in configuration file. > > + BOOT_OFFSET value > + > + This command is parallel to BOOT_FROM and > + is preferred over BOOT_FROM. > + > + value: Offset of the image header, this > + value shall be set to one of the > + values found in the file: > + arch/arm/include/asm/\ > + imx-common/imximage.cfg > + Example: > + BOOT_OFFSET FLASH_OFFSET_STANDARD > + > BOOT_FROM nand/spi/sd/onenand/nor/sata > + > + This command is parallel to BOOT_OFFSET and > + is to be deprecated in favor of BOOT_OFFSET. > + > Example: > BOOT_FROM spi > + > DATA type address value > > type: word=4, halfword=2, byte=1 > diff --git a/tools/imximage.c b/tools/imximage.c > index c018562..5e8e470 100644 > --- a/tools/imximage.c > +++ b/tools/imximage.c > @@ -37,6 +37,7 @@ > */ > static table_entry_t imximage_cmds[] = { > {CMD_BOOT_FROM, "BOOT_FROM", "boot command", }, > + {CMD_BOOT_OFFSET, "BOOT_OFFSET", "Boot offset", }, > {CMD_DATA, "DATA", "Reg Write Data", }, > {CMD_IMAGE_VERSION, "IMAGE_VERSION", "image version", }, > {-1, "", "", }, > @@ -352,6 +353,11 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token, > if (unlikely(cmd_ver_first != 1)) > cmd_ver_first = 0; > break; > + case CMD_BOOT_OFFSET: > + imxhdr->flash_offset = get_cfg_value(token, name, lineno); > + if (unlikely(cmd_ver_first != 1)) > + cmd_ver_first = 0; > + break; > case CMD_DATA: > value = get_cfg_value(token, name, lineno); > (*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len); > diff --git a/tools/imximage.h b/tools/imximage.h > index dfd2e9e..99e124a 100644 > --- a/tools/imximage.h > +++ b/tools/imximage.h > @@ -31,6 +31,11 @@ > > #define HEADER_OFFSET 0x400 > > +/* > + * NOTE: This file must be kept in sync with arch/arm/include/asm/\ > + * imx-common/imximage.cfg because tools/imximage.c can not > + * cross-include headers from arch/arm/ and vice-versa. > + */ > #define CMD_DATA_STR "DATA" > #define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF > #define FLASH_OFFSET_STANDARD 0x400 > @@ -52,6 +57,7 @@ enum imximage_cmd { > CMD_INVALID, > CMD_IMAGE_VERSION, > CMD_BOOT_FROM, > + CMD_BOOT_OFFSET, > CMD_DATA > }; > It looks great. Acked-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
On 25.04.2013 22:16, Marek Vasut wrote: > Implement BOOT_OFFSET command for imximage. This command is parallel > to current BOOT_FROM command, but allows more flexibility in configuring > arbitrary image header offset. Also add an imximage.cfg with default > offset values into arm/arch/imx-common/ so the board-specific imximage.cfg > can include this file to avoid magic constants. > > The syntax of BOOT_OFFSET command is "BOOT_OFFSET <u32 offset>". Look good. Thanks. Acked-by: Stefan Roese <sr@denx.de> Thanks, Stefan
On 25/04/2013 22:16, Marek Vasut wrote: > Implement BOOT_OFFSET command for imximage. This command is parallel > to current BOOT_FROM command, but allows more flexibility in configuring > arbitrary image header offset. Also add an imximage.cfg with default > offset values into arm/arch/imx-common/ so the board-specific imximage.cfg > can include this file to avoid magic constants. > > The syntax of BOOT_OFFSET command is "BOOT_OFFSET <u32 offset>". > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> > Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Fabio Estevam <fabio.estevam@freescale.com> > Cc: Scott Wood <scottwood@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Cc: Tom Rini <trini@ti.com> > --- Applied to u-boot-imx, thanks. Best regards, Stefano Babic
diff --git a/arch/arm/include/asm/imx-common/imximage.cfg b/arch/arm/include/asm/imx-common/imximage.cfg new file mode 100644 index 0000000..95daa3d --- /dev/null +++ b/arch/arm/include/asm/imx-common/imximage.cfg @@ -0,0 +1,30 @@ +/* + * i.MX image header offset values + * Copyright (C) 2013 Marek Vasut <marex@denx.de> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License or (at your option) any later version. + */ + +/* + * NOTE: This file must be kept in sync with tools/imximage.h because + * tools/imximage.c can not cross-include headers from arch/arm/ + * and vice-versa. + */ + +#ifndef __ASM_IMX_COMMON_IMXIMAGE_CFG__ +#define __ASM_IMX_COMMON_IMXIMAGE_CFG__ + +/* Standard image header offset for NAND, SATA, SD, SPI flash. */ +#define FLASH_OFFSET_STANDARD 0x400 +/* Specific image header offset for booting from OneNAND. */ +#define FLASH_OFFSET_ONENAND 0x100 +/* Specific image header offset for booting from memory-mapped NOR. */ +#define FLASH_OFFSET_NOR 0x1000 + +#endif /* __ASM_IMX_COMMON_IMXIMAGE_CFG__ */ diff --git a/doc/README.imximage b/doc/README.imximage index 073e3fc..802eb90 100644 --- a/doc/README.imximage +++ b/doc/README.imximage @@ -65,9 +65,27 @@ Configuration command line syntax: This command need appear the fist before other valid commands in configuration file. + BOOT_OFFSET value + + This command is parallel to BOOT_FROM and + is preferred over BOOT_FROM. + + value: Offset of the image header, this + value shall be set to one of the + values found in the file: + arch/arm/include/asm/\ + imx-common/imximage.cfg + Example: + BOOT_OFFSET FLASH_OFFSET_STANDARD + BOOT_FROM nand/spi/sd/onenand/nor/sata + + This command is parallel to BOOT_OFFSET and + is to be deprecated in favor of BOOT_OFFSET. + Example: BOOT_FROM spi + DATA type address value type: word=4, halfword=2, byte=1 diff --git a/tools/imximage.c b/tools/imximage.c index c018562..5e8e470 100644 --- a/tools/imximage.c +++ b/tools/imximage.c @@ -37,6 +37,7 @@ */ static table_entry_t imximage_cmds[] = { {CMD_BOOT_FROM, "BOOT_FROM", "boot command", }, + {CMD_BOOT_OFFSET, "BOOT_OFFSET", "Boot offset", }, {CMD_DATA, "DATA", "Reg Write Data", }, {CMD_IMAGE_VERSION, "IMAGE_VERSION", "image version", }, {-1, "", "", }, @@ -352,6 +353,11 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token, if (unlikely(cmd_ver_first != 1)) cmd_ver_first = 0; break; + case CMD_BOOT_OFFSET: + imxhdr->flash_offset = get_cfg_value(token, name, lineno); + if (unlikely(cmd_ver_first != 1)) + cmd_ver_first = 0; + break; case CMD_DATA: value = get_cfg_value(token, name, lineno); (*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len); diff --git a/tools/imximage.h b/tools/imximage.h index dfd2e9e..99e124a 100644 --- a/tools/imximage.h +++ b/tools/imximage.h @@ -31,6 +31,11 @@ #define HEADER_OFFSET 0x400 +/* + * NOTE: This file must be kept in sync with arch/arm/include/asm/\ + * imx-common/imximage.cfg because tools/imximage.c can not + * cross-include headers from arch/arm/ and vice-versa. + */ #define CMD_DATA_STR "DATA" #define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF #define FLASH_OFFSET_STANDARD 0x400 @@ -52,6 +57,7 @@ enum imximage_cmd { CMD_INVALID, CMD_IMAGE_VERSION, CMD_BOOT_FROM, + CMD_BOOT_OFFSET, CMD_DATA };
Implement BOOT_OFFSET command for imximage. This command is parallel to current BOOT_FROM command, but allows more flexibility in configuring arbitrary image header offset. Also add an imximage.cfg with default offset values into arm/arch/imx-common/ so the board-specific imximage.cfg can include this file to avoid magic constants. The syntax of BOOT_OFFSET command is "BOOT_OFFSET <u32 offset>". Signed-off-by: Marek Vasut <marex@denx.de> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Scott Wood <scottwood@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Tom Rini <trini@ti.com> --- arch/arm/include/asm/imx-common/imximage.cfg | 30 ++++++++++++++++++++++++++ doc/README.imximage | 18 ++++++++++++++++ tools/imximage.c | 6 ++++++ tools/imximage.h | 6 ++++++ 4 files changed, 60 insertions(+) create mode 100644 arch/arm/include/asm/imx-common/imximage.cfg