mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 07:30:26 +09:00
tools: arm: imx: Implement BOOT_OFFSET command for imximage
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> Acked-by: Stefano Babic <sbabic@denx.de> Acked-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
7e2173cf82
commit
6cb83829a0
30
arch/arm/include/asm/imx-common/imximage.cfg
Normal file
30
arch/arm/include/asm/imx-common/imximage.cfg
Normal file
@ -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__ */
|
@ -65,9 +65,27 @@ Configuration command line syntax:
|
|||||||
This command need appear the fist before
|
This command need appear the fist before
|
||||||
other valid commands in configuration file.
|
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
|
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:
|
Example:
|
||||||
BOOT_FROM spi
|
BOOT_FROM spi
|
||||||
|
|
||||||
DATA type address value
|
DATA type address value
|
||||||
|
|
||||||
type: word=4, halfword=2, byte=1
|
type: word=4, halfword=2, byte=1
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
*/
|
*/
|
||||||
static table_entry_t imximage_cmds[] = {
|
static table_entry_t imximage_cmds[] = {
|
||||||
{CMD_BOOT_FROM, "BOOT_FROM", "boot command", },
|
{CMD_BOOT_FROM, "BOOT_FROM", "boot command", },
|
||||||
|
{CMD_BOOT_OFFSET, "BOOT_OFFSET", "Boot offset", },
|
||||||
{CMD_DATA, "DATA", "Reg Write Data", },
|
{CMD_DATA, "DATA", "Reg Write Data", },
|
||||||
{CMD_IMAGE_VERSION, "IMAGE_VERSION", "image version", },
|
{CMD_IMAGE_VERSION, "IMAGE_VERSION", "image version", },
|
||||||
{-1, "", "", },
|
{-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))
|
if (unlikely(cmd_ver_first != 1))
|
||||||
cmd_ver_first = 0;
|
cmd_ver_first = 0;
|
||||||
break;
|
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:
|
case CMD_DATA:
|
||||||
value = get_cfg_value(token, name, lineno);
|
value = get_cfg_value(token, name, lineno);
|
||||||
(*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len);
|
(*set_dcd_val)(imxhdr, name, lineno, fld, value, dcd_len);
|
||||||
|
@ -31,6 +31,11 @@
|
|||||||
|
|
||||||
#define HEADER_OFFSET 0x400
|
#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 CMD_DATA_STR "DATA"
|
||||||
#define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF
|
#define FLASH_OFFSET_UNDEFINED 0xFFFFFFFF
|
||||||
#define FLASH_OFFSET_STANDARD 0x400
|
#define FLASH_OFFSET_STANDARD 0x400
|
||||||
@ -52,6 +57,7 @@ enum imximage_cmd {
|
|||||||
CMD_INVALID,
|
CMD_INVALID,
|
||||||
CMD_IMAGE_VERSION,
|
CMD_IMAGE_VERSION,
|
||||||
CMD_BOOT_FROM,
|
CMD_BOOT_FROM,
|
||||||
|
CMD_BOOT_OFFSET,
|
||||||
CMD_DATA
|
CMD_DATA
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user