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 <[email protected]>
> Cc: Albert ARIBAUD <[email protected]>
> Cc: Benoît Thébaudeau <[email protected]>
> Cc: Fabio Estevam <[email protected]>
> Cc: Scott Wood <[email protected]>
> Cc: Stefano Babic <[email protected]>
> Cc: Tom Rini <[email protected]>
> ---
>  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 <[email protected]>
> + *
> + * 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 <[email protected]>

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: [email protected]
=====================================================================
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to