[PATCH u-boot-mvebu v2 35/41] arm: mvebu: Load main U-Boot binary in SPL code based on kwbimage header
Stefan Roese
sr at denx.de
Thu Jul 22 10:51:42 CEST 2021
On 19.07.21 14:20, Marek Behún wrote:
> From: Pali Rohár <pali at kernel.org>
>
> Now that proper load and execution addresses are set in v1 kwbimage we
> can use it for loading and booting main U-Boot binary.
>
> Use the new spl_parse_board_header() function to implement parsing the
> kwbimage v1 header. Use information from this header to locate offset and
> size of the main U-Boot binary, instead of using the legacy U-Boot header
> which is prepended to the main U-Boot binary stored at fixed offset. This
> has the advantage that we do not need to relay on legacy U-Boot header
> anymore and therefore main U-Boot binary can be stored at any offset, as
> is the case when loading & booting main U-Boot binary by BootROM.
> The CONFIG_SYS_U_BOOT_OFFS option is therefore not used by SPL code
> anymore.
>
> Also allow to compile U-Boot SPL without CONFIG_SPL_SPI_FLASH_SUPPORT,
> CONFIG_SPL_MMC_SUPPORT or CONFIG_SPL_SATA_SUPPORT set. In this case
> BootROM is used for loading and executing main U-Boot binary. This
> reduces the size of U-Boot's SPL image. By default these config options
> are enabled and so BootROM loading is not used. In some cases BootROM
> reads from SPI NOR at lower speed than U-Boot SPL. So people can decide
> whether they want to have smaller SPL binary at the cost of slower boot.
>
> Therefore dependency on CONFIG_SPL_DM_SPI, CONFIG_SPL_SPI_FLASH_SUPPORT,
> CONFIG_SPL_SPI_LOAD, CONFIG_SPL_SPI_SUPPORT, CONFIG_SPL_DM_GPIO,
> CONFIG_SPL_DM_MMC, CONFIG_SPL_GPIO_SUPPORT, CONFIG_SPL_LIBDISK_SUPPORT,
> CONFIG_SPL_MMC_SUPPORT, CONFIG_SPL_SATA_SUPPORT and
> CONFIG_SPL_LIBDISK_SUPPORT is changed from strict to related "imply"
> (which can be selectivelly turned off and causes booting via BootROM).
>
> Options CONFIG_SYS_SPI_U_BOOT_OFFS,
> CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR and
> CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET have to to be set to
> zero as they define the location where kwbimage header starts. It is the
> location where BootROM expects start of the kwbimage from which it reads,
> parses and executes SPL part. The same applies to option
> CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR, which has to be set to one.
>
> Update all config files to set correct values of these options and set
> CONFIG_SYS_U_BOOT_OFFS to the correct value - the offset where main
> U-Boot binary starts.
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
> Reviewed-by: Marek Behún <marek.behun at nic.cz>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> arch/arm/mach-mvebu/Kconfig | 22 +--
> arch/arm/mach-mvebu/spl.c | 205 ++++++++++++++++++++++++++--
> board/kobol/helios4/Kconfig | 5 -
> board/solidrun/clearfog/Kconfig | 5 -
> common/spl/Kconfig | 4 +-
> configs/clearfog_defconfig | 1 -
> configs/controlcenterdc_defconfig | 1 -
> configs/db-88f6720_defconfig | 1 -
> configs/db-88f6820-amc_defconfig | 1 -
> configs/db-88f6820-gp_defconfig | 2 -
> configs/db-mv784mp-gp_defconfig | 1 -
> configs/ds414_defconfig | 1 -
> configs/helios4_defconfig | 1 -
> configs/maxbcm_defconfig | 1 -
> configs/theadorable_debug_defconfig | 1 -
> configs/turris_omnia_defconfig | 1 -
> configs/x530_defconfig | 1 -
> include/configs/clearfog.h | 5 +-
> include/configs/controlcenterdc.h | 7 +-
> include/configs/db-88f6720.h | 2 +-
> include/configs/db-88f6820-amc.h | 2 +-
> include/configs/db-88f6820-gp.h | 5 +-
> include/configs/db-mv784mp-gp.h | 2 +-
> include/configs/ds414.h | 2 +-
> include/configs/helios4.h | 5 +-
> include/configs/theadorable.h | 2 +-
> include/configs/turris_omnia.h | 5 +-
> include/configs/x530.h | 2 +-
> 28 files changed, 224 insertions(+), 69 deletions(-)
>
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 2133d9a172..140c4199a2 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -253,27 +253,27 @@ choice
> config MVEBU_SPL_BOOT_DEVICE_SPI
> bool "SPI NOR flash"
> imply ENV_IS_IN_SPI_FLASH
> - select SPL_DM_SPI
> - select SPL_SPI_FLASH_SUPPORT
> - select SPL_SPI_LOAD
> - select SPL_SPI_SUPPORT
> + imply SPL_DM_SPI
> + imply SPL_SPI_FLASH_SUPPORT
> + imply SPL_SPI_LOAD
> + imply SPL_SPI_SUPPORT
> select SPL_BOOTROM_SUPPORT
>
> config MVEBU_SPL_BOOT_DEVICE_MMC
> bool "SDIO/MMC card"
> imply ENV_IS_IN_MMC
> # GPIO needed for eMMC/SD card presence detection
> - select SPL_DM_GPIO
> - select SPL_DM_MMC
> - select SPL_GPIO_SUPPORT
> - select SPL_LIBDISK_SUPPORT
> - select SPL_MMC_SUPPORT
> + imply SPL_DM_GPIO
> + imply SPL_DM_MMC
> + imply SPL_GPIO_SUPPORT
> + imply SPL_LIBDISK_SUPPORT
> + imply SPL_MMC_SUPPORT
> select SPL_BOOTROM_SUPPORT
>
> config MVEBU_SPL_BOOT_DEVICE_SATA
> bool "SATA"
> - select SPL_SATA_SUPPORT
> - select SPL_LIBDISK_SUPPORT
> + imply SPL_SATA_SUPPORT
> + imply SPL_LIBDISK_SUPPORT
> select SPL_BOOTROM_SUPPORT
>
> config MVEBU_SPL_BOOT_DEVICE_UART
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index 5c3d959bff..c2606bc8fb 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -8,6 +8,7 @@
> #include <debug_uart.h>
> #include <fdtdec.h>
> #include <hang.h>
> +#include <image.h>
> #include <init.h>
> #include <log.h>
> #include <spl.h>
> @@ -16,6 +17,160 @@
> #include <asm/arch/cpu.h>
> #include <asm/arch/soc.h>
>
> +#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT) || defined(CONFIG_SPL_MMC_SUPPORT) || defined(CONFIG_SPL_SATA_SUPPORT)
> +
> +/*
> + * When loading U-Boot via SPL from SPI NOR, CONFIG_SYS_SPI_U_BOOT_OFFS must
> + * point to the offset of kwbimage main header which is always at offset zero
> + * (defined by BootROM). Therefore other values of CONFIG_SYS_SPI_U_BOOT_OFFS
> + * makes U-Boot non-bootable.
> + */
> +#ifdef CONFIG_SPL_SPI_FLASH_SUPPORT
> +#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS) && CONFIG_SYS_SPI_U_BOOT_OFFS != 0
> +#error CONFIG_SYS_SPI_U_BOOT_OFFS must be set to 0
> +#endif
> +#endif
> +
> +/*
> + * When loading U-Boot via SPL from eMMC (in Marvell terminology SDIO), the
> + * kwbimage main header is stored at sector 0. U-Boot SPL needs to parse this
> + * header and figure out at which sector the main U-Boot binary is stored.
> + * Partition booting is therefore not supported and CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
> + * and CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET need to point to the
> + * kwbimage main header.
> + */
> +#ifdef CONFIG_SPL_MMC_SUPPORT
> +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
> +#error CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is unsupported
> +#endif
> +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) && CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR != 0
> +#error CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR must be set to 0
> +#endif
> +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET) && CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET != 0
> +#error CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET must be set to 0
> +#endif
> +#endif
> +
> +/*
> + * When loading U-Boot via SPL from SATA disk, the kwbimage main header is
> + * stored at sector 1. Therefore CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR must be
> + * set to 1. Otherwise U-Boot SPL would not be able to load main U-Boot binary.
> + */
> +#ifdef CONFIG_SPL_SATA_SUPPORT
> +#if !defined(CONFIG_SPL_SATA_RAW_U_BOOT_USE_SECTOR) || !defined(CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR) || CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR != 1
> +#error CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR must be set to 1
> +#endif
> +#endif
> +
> +/* Boot Type - block ID */
> +#define IBR_HDR_I2C_ID 0x4D
> +#define IBR_HDR_SPI_ID 0x5A
> +#define IBR_HDR_NAND_ID 0x8B
> +#define IBR_HDR_SATA_ID 0x78
> +#define IBR_HDR_PEX_ID 0x9C
> +#define IBR_HDR_UART_ID 0x69
> +#define IBR_HDR_SDIO_ID 0xAE
> +
> +/* Structure of the main header, version 1 (Armada 370/38x/XP) */
> +struct kwbimage_main_hdr_v1 {
> + uint8_t blockid; /* 0x0 */
> + uint8_t flags; /* 0x1 */
> + uint16_t reserved2; /* 0x2-0x3 */
> + uint32_t blocksize; /* 0x4-0x7 */
> + uint8_t version; /* 0x8 */
> + uint8_t headersz_msb; /* 0x9 */
> + uint16_t headersz_lsb; /* 0xA-0xB */
> + uint32_t srcaddr; /* 0xC-0xF */
> + uint32_t destaddr; /* 0x10-0x13 */
> + uint32_t execaddr; /* 0x14-0x17 */
> + uint8_t options; /* 0x18 */
> + uint8_t nandblocksize; /* 0x19 */
> + uint8_t nandbadblklocation; /* 0x1A */
> + uint8_t reserved4; /* 0x1B */
> + uint16_t reserved5; /* 0x1C-0x1D */
> + uint8_t ext; /* 0x1E */
> + uint8_t checksum; /* 0x1F */
> +} __packed;
> +
> +#ifdef CONFIG_SPL_MMC_SUPPORT
> +u32 spl_mmc_boot_mode(const u32 boot_device)
> +{
> + return MMCSD_MODE_RAW;
> +}
> +#endif
> +
> +int spl_parse_board_header(struct spl_image_info *spl_image,
> + const void *image_header, size_t size)
> +{
> + const struct kwbimage_main_hdr_v1 *mhdr = image_header;
> +
> + if (size < sizeof(*mhdr)) {
> + /* This should be compile time assert */
> + printf("FATAL ERROR: Image header size is too small\n");
> + hang();
> + }
> +
> + /*
> + * Very basic check for image validity. We cannot check mhdr->checksum
> + * as it is calculated also from variable length extended headers
> + * (including SPL content) which is not included in U-Boot image_header.
> + */
> + if (mhdr->version != 1 ||
> + ((mhdr->headersz_msb << 16) | mhdr->headersz_lsb) < sizeof(*mhdr) ||
> + (
> +#ifdef CONFIG_SPL_SPI_FLASH_SUPPORT
> + mhdr->blockid != IBR_HDR_SPI_ID &&
> +#endif
> +#ifdef CONFIG_SPL_SATA_SUPPORT
> + mhdr->blockid != IBR_HDR_SATA_ID &&
> +#endif
> +#ifdef CONFIG_SPL_MMC_SUPPORT
> + mhdr->blockid != IBR_HDR_SDIO_ID &&
> +#endif
> + 1
> + )) {
> + printf("ERROR: Not valid SPI/NAND/SATA/SDIO kwbimage v1\n");
> + return -EINVAL;
> + }
> +
> + spl_image->offset = mhdr->srcaddr;
> +
> +#ifdef CONFIG_SPL_SATA_SUPPORT
> + /*
> + * For SATA srcaddr is specified in number of sectors.
> + * The main header is must be stored at sector number 1.
> + * This expects that sector size is 512 bytes and recalculates
> + * data offset to bytes relative to the main header.
> + */
> + if (mhdr->blockid == IBR_HDR_SATA_ID) {
> + if (spl_image->offset < 1) {
> + printf("ERROR: Wrong SATA srcaddr in kwbimage\n");
> + return -EINVAL;
> + }
> + spl_image->offset -= 1;
> + spl_image->offset *= 512;
> + }
> +#endif
> +
> +#ifdef CONFIG_SPL_MMC_SUPPORT
> + /*
> + * For SDIO (eMMC) srcaddr is specified in number of sectors.
> + * This expects that sector size is 512 bytes and recalculates
> + * data offset to bytes.
> + */
> + if (mhdr->blockid == IBR_HDR_SDIO_ID)
> + spl_image->offset *= 512;
> +#endif
> +
> + spl_image->size = mhdr->blocksize;
> + spl_image->entry_point = mhdr->execaddr;
> + spl_image->load_addr = mhdr->destaddr;
> + spl_image->os = IH_OS_U_BOOT;
> + spl_image->name = "U-Boot";
> +
> + return 0;
> +}
> +
> static u32 get_boot_device(void)
> {
> u32 val;
> @@ -49,11 +204,11 @@ static u32 get_boot_device(void)
> boot_device = (val & BOOT_DEV_SEL_MASK) >> BOOT_DEV_SEL_OFFS;
> debug("SAR_REG=0x%08x boot_device=0x%x\n", val, boot_device);
> switch (boot_device) {
> -#if defined(CONFIG_ARMADA_38X)
> +#ifdef BOOT_FROM_NAND
> case BOOT_FROM_NAND:
> return BOOT_DEVICE_NAND;
> #endif
> -#ifdef CONFIG_SPL_MMC_SUPPORT
> +#ifdef BOOT_FROM_MMC
> case BOOT_FROM_MMC:
> case BOOT_FROM_MMC_ALT:
> return BOOT_DEVICE_MMC1;
> @@ -69,15 +224,26 @@ static u32 get_boot_device(void)
> return BOOT_DEVICE_SATA;
> #endif
> case BOOT_FROM_SPI:
> - default:
> return BOOT_DEVICE_SPI;
> + default:
> + return BOOT_DEVICE_BOOTROM;
> };
> }
>
> +#else
> +
> +static u32 get_boot_device(void)
> +{
> + return BOOT_DEVICE_BOOTROM;
> +}
> +
> +#endif
> +
> u32 spl_boot_device(void)
> {
> u32 boot_device = get_boot_device();
>
> + switch (boot_device) {
> /*
> * Return to the BootROM to continue the Marvell xmodem
> * UART boot protocol. As initiated by the kwboot tool.
> @@ -87,18 +253,35 @@ u32 spl_boot_device(void)
> * SPL has no chance to receive this information. So we
> * need to return to the BootROM to enable this xmodem
> * UART download. Use SPL infrastructure to return to BootROM.
> - *
> - * If booting from NAND lets let the BootROM load the
> - * rest of the bootloader.
> */
> - switch (boot_device) {
> case BOOT_DEVICE_UART:
> -#if defined(CONFIG_ARMADA_38X)
> - case BOOT_DEVICE_NAND:
> -#endif
> return BOOT_DEVICE_BOOTROM;
> +
> + /*
> + * If SPL is compiled with chosen boot_device support
> + * then use SPL driver for loading main U-Boot binary.
> + */
> +#ifdef CONFIG_SPL_MMC_SUPPORT
> + case BOOT_DEVICE_MMC1:
> + return BOOT_DEVICE_MMC1;
> +#endif
> +#ifdef CONFIG_SPL_SATA_SUPPORT
> + case BOOT_FROM_SATA:
> + return BOOT_FROM_SATA;
> +#endif
> +#ifdef CONFIG_SPL_SPI_FLASH_SUPPORT
> + case BOOT_DEVICE_SPI:
> + return BOOT_DEVICE_SPI;
> +#endif
> +
> + /*
> + * If SPL is not compiled with chosen boot_device support
> + * then return to the BootROM. BootROM supports loading
> + * main U-Boot binary from any valid boot_device present
> + * in SAR register.
> + */
> default:
> - return boot_device;
> + return BOOT_DEVICE_BOOTROM;
> }
> }
>
> diff --git a/board/kobol/helios4/Kconfig b/board/kobol/helios4/Kconfig
> index cad51c1cf0..81a2199ae5 100644
> --- a/board/kobol/helios4/Kconfig
> +++ b/board/kobol/helios4/Kconfig
> @@ -16,9 +16,4 @@ config ENV_SECT_SIZE
> # Use optimistic 64 KiB erase block, will vary between actual media
> default 0x10000 if MVEBU_SPL_BOOT_DEVICE_MMC || MVEBU_SPL_BOOT_DEVICE_UART
>
> -config SYS_SPI_U_BOOT_OFFS
> - hex "address of u-boot payload in SPI flash"
> - default 0x20000
> - depends on MVEBU_SPL_BOOT_DEVICE_SPI
> -
> endmenu
> diff --git a/board/solidrun/clearfog/Kconfig b/board/solidrun/clearfog/Kconfig
> index cf95258090..60d3921307 100644
> --- a/board/solidrun/clearfog/Kconfig
> +++ b/board/solidrun/clearfog/Kconfig
> @@ -54,9 +54,4 @@ config ENV_SECT_SIZE
> # Use optimistic 64 KiB erase block, will vary between actual media
> default 0x10000 if MVEBU_SPL_BOOT_DEVICE_MMC || MVEBU_SPL_BOOT_DEVICE_UART
>
> -config SYS_SPI_U_BOOT_OFFS
> - hex "address of u-boot payload in SPI flash"
> - default 0x20000
> - depends on MVEBU_SPL_BOOT_DEVICE_SPI
> -
> endmenu
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index fa80524cfb..a710c8d86c 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -334,7 +334,7 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
> default 0x75 if ARCH_DAVINCI
> default 0x8a if ARCH_MX6 || ARCH_MX7
> default 0x100 if ARCH_UNIPHIER
> - default 0x140 if ARCH_MVEBU
> + default 0x0 if ARCH_MVEBU
> default 0x200 if ARCH_SOCFPGA || ARCH_AT91
> default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \
> OMAP54XX || AM33XX || AM43XX || ARCH_K3
> @@ -1089,6 +1089,7 @@ config SPL_SATA_SUPPORT
> config SPL_SATA_RAW_U_BOOT_USE_SECTOR
> bool "SATA raw mode: by sector"
> depends on SPL_SATA_SUPPORT
> + default y if ARCH_MVEBU
> help
> Use sector number for specifying U-Boot location on SATA disk in
> raw mode.
> @@ -1096,6 +1097,7 @@ config SPL_SATA_RAW_U_BOOT_USE_SECTOR
> config SPL_SATA_RAW_U_BOOT_SECTOR
> hex "Sector on the SATA disk to load U-Boot from"
> depends on SPL_SATA_RAW_U_BOOT_USE_SECTOR
> + default 0x1 if ARCH_MVEBU
> help
> Sector on the SATA disk to load U-Boot from, when the SATA disk is being
> used in raw mode. Units: SATA disk sectors (1 sector = 512 bytes).
> diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
> index 4702cf2df1..4ece79fe7e 100644
> --- a/configs/clearfog_defconfig
> +++ b/configs/clearfog_defconfig
> @@ -24,7 +24,6 @@ CONFIG_USE_PREBOOT=y
> CONFIG_SYS_CONSOLE_INFO_QUIET=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_DISPLAY_BOARDINFO_LATE=y
> -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x1
> CONFIG_SPL_I2C_SUPPORT=y
> CONFIG_CMD_TLV_EEPROM=y
> CONFIG_SPL_CMD_TLV_EEPROM=y
> diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
> index a8d961a7c5..eccc1d7dfc 100644
> --- a/configs/controlcenterdc_defconfig
> +++ b/configs/controlcenterdc_defconfig
> @@ -9,7 +9,6 @@ CONFIG_TARGET_CONTROLCENTERDC=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x40000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x30000
> CONFIG_DM_GPIO=y
> CONFIG_DEFAULT_DEVICE_TREE="armada-38x-controlcenterdc"
> CONFIG_SPL_TEXT_BASE=0x40000030
> diff --git a/configs/db-88f6720_defconfig b/configs/db-88f6720_defconfig
> index bb73635d92..479a110252 100644
> --- a/configs/db-88f6720_defconfig
> +++ b/configs/db-88f6720_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_DB_88F6720=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x10000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> CONFIG_DEFAULT_DEVICE_TREE="armada-375-db"
> CONFIG_SPL_TEXT_BASE=0x40004030
> CONFIG_SPL_SERIAL_SUPPORT=y
> diff --git a/configs/db-88f6820-amc_defconfig b/configs/db-88f6820-amc_defconfig
> index a7c8498599..7cc838a148 100644
> --- a/configs/db-88f6820-amc_defconfig
> +++ b/configs/db-88f6820-amc_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_DB_88F6820_AMC=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x40000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> CONFIG_DEFAULT_DEVICE_TREE="armada-385-db-88f6820-amc"
> CONFIG_SPL_TEXT_BASE=0x40000030
> CONFIG_SPL_SERIAL_SUPPORT=y
> diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
> index 6fa00d1a17..cdc6cabaf6 100644
> --- a/configs/db-88f6820-gp_defconfig
> +++ b/configs/db-88f6820-gp_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_DB_88F6820_GP=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x40000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> CONFIG_DEFAULT_DEVICE_TREE="armada-388-gp"
> CONFIG_SPL_TEXT_BASE=0x40000030
> CONFIG_SPL_SERIAL_SUPPORT=y
> @@ -24,7 +23,6 @@ CONFIG_USE_PREBOOT=y
> CONFIG_SYS_CONSOLE_INFO_QUIET=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_DISPLAY_BOARDINFO_LATE=y
> -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
> CONFIG_SPL_I2C_SUPPORT=y
> CONFIG_CMD_I2C=y
> CONFIG_CMD_MMC=y
> diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
> index e1f6aff8f5..1f5c987cfd 100644
> --- a/configs/db-mv784mp-gp_defconfig
> +++ b/configs/db-mv784mp-gp_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_DB_MV784MP_GP=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x10000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> CONFIG_DEFAULT_DEVICE_TREE="armada-xp-gp"
> CONFIG_SPL_TEXT_BASE=0x40004030
> CONFIG_SPL_SERIAL_SUPPORT=y
> diff --git a/configs/ds414_defconfig b/configs/ds414_defconfig
> index b8a0bd09d4..cf0d937295 100644
> --- a/configs/ds414_defconfig
> +++ b/configs/ds414_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_DS414=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x7E0000
> CONFIG_ENV_SECT_SIZE=0x10000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> CONFIG_DEFAULT_DEVICE_TREE="armada-xp-synology-ds414"
> CONFIG_SPL_TEXT_BASE=0x40004030
> CONFIG_SPL_SERIAL_SUPPORT=y
> diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
> index 202e57344d..4026dd4b89 100644
> --- a/configs/helios4_defconfig
> +++ b/configs/helios4_defconfig
> @@ -24,7 +24,6 @@ CONFIG_USE_PREBOOT=y
> CONFIG_SYS_CONSOLE_INFO_QUIET=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_DISPLAY_BOARDINFO_LATE=y
> -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x1
> CONFIG_SPL_I2C_SUPPORT=y
> CONFIG_CMD_TLV_EEPROM=y
> CONFIG_SPL_CMD_TLV_EEPROM=y
> diff --git a/configs/maxbcm_defconfig b/configs/maxbcm_defconfig
> index e754108b73..4bcac91057 100644
> --- a/configs/maxbcm_defconfig
> +++ b/configs/maxbcm_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_MAXBCM=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x10000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> CONFIG_DEFAULT_DEVICE_TREE="armada-xp-maxbcm"
> CONFIG_SPL_TEXT_BASE=0x40004030
> CONFIG_SPL_SERIAL_SUPPORT=y
> diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
> index 6d32e6c5be..a479ac7748 100644
> --- a/configs/theadorable_debug_defconfig
> +++ b/configs/theadorable_debug_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_THEADORABLE=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x40000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x1a000
> CONFIG_DM_GPIO=y
> CONFIG_DEFAULT_DEVICE_TREE="armada-xp-theadorable"
> CONFIG_SPL_TEXT_BASE=0x40004030
> diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig
> index 5f7b1a67a2..9eec70e8a8 100644
> --- a/configs/turris_omnia_defconfig
> +++ b/configs/turris_omnia_defconfig
> @@ -14,7 +14,6 @@ CONFIG_TARGET_TURRIS_OMNIA=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0xF0000
> CONFIG_ENV_SECT_SIZE=0x10000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> CONFIG_DM_GPIO=y
> CONFIG_DEFAULT_DEVICE_TREE="armada-385-turris-omnia"
> CONFIG_SPL_TEXT_BASE=0x40000030
> diff --git a/configs/x530_defconfig b/configs/x530_defconfig
> index dbde392374..49610eda24 100644
> --- a/configs/x530_defconfig
> +++ b/configs/x530_defconfig
> @@ -10,7 +10,6 @@ CONFIG_TARGET_X530=y
> CONFIG_ENV_SIZE=0x10000
> CONFIG_ENV_OFFSET=0x100000
> CONFIG_ENV_SECT_SIZE=0x40000
> -CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> CONFIG_DM_GPIO=y
> CONFIG_DEFAULT_DEVICE_TREE="armada-385-atl-x530"
> CONFIG_SPL_TEXT_BASE=0x40000030
> diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
> index c9852a72b9..255b147945 100644
> --- a/include/configs/clearfog.h
> +++ b/include/configs/clearfog.h
> @@ -71,11 +71,10 @@
>
> #if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI)
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x20000
> #elif defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC) || defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SATA)
> /* SPL related MMC defines */
> -#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS (160 << 10)
> #ifdef CONFIG_SPL_BUILD
> #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
> #endif
> diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
> index 869b94bc9b..fffc372872 100644
> --- a/include/configs/controlcenterdc.h
> +++ b/include/configs/controlcenterdc.h
> @@ -87,16 +87,13 @@
>
> #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x30000
> #endif
>
> #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
> /* SPL related MMC defines */
> #define CONFIG_SPL_MMC_SUPPORT
> -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1
> -#define CONFIG_SYS_MMC_U_BOOT_OFFS (168 << 10)
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
> -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR (CONFIG_SYS_U_BOOT_OFFS / 512)
> +#define CONFIG_SYS_U_BOOT_OFFS (168 << 10)
> #ifdef CONFIG_SPL_BUILD
> #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
> #endif
> diff --git a/include/configs/db-88f6720.h b/include/configs/db-88f6720.h
> index 213883ef0f..14c0190375 100644
> --- a/include/configs/db-88f6720.h
> +++ b/include/configs/db-88f6720.h
> @@ -66,6 +66,6 @@
> #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
>
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x20000
>
> #endif /* _CONFIG_DB_88F6720_H */
> diff --git a/include/configs/db-88f6820-amc.h b/include/configs/db-88f6820-amc.h
> index fe9a7ab563..3cd1ff899a 100644
> --- a/include/configs/db-88f6820-amc.h
> +++ b/include/configs/db-88f6820-amc.h
> @@ -61,7 +61,7 @@
>
> #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x24000
> #endif
>
> /*
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index ed851bc670..5e43191e8e 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -73,13 +73,12 @@
>
> #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x24000
> #endif
>
> #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
> /* SPL related MMC defines */
> -#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS (160 << 10)
> #ifdef CONFIG_SPL_BUILD
> #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
> #endif
> diff --git a/include/configs/db-mv784mp-gp.h b/include/configs/db-mv784mp-gp.h
> index 3e20516e94..990fcec129 100644
> --- a/include/configs/db-mv784mp-gp.h
> +++ b/include/configs/db-mv784mp-gp.h
> @@ -79,7 +79,7 @@
> #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
>
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x20000
>
> /* Enable DDR support in SPL (DDR3 training from Marvell bin_hdr) */
> #define CONFIG_SPD_EEPROM 0x4e
> diff --git a/include/configs/ds414.h b/include/configs/ds414.h
> index c8b45066cc..b34da334e2 100644
> --- a/include/configs/ds414.h
> +++ b/include/configs/ds414.h
> @@ -70,7 +70,7 @@
>
> #if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI)
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x24000
> #endif
>
> /* DS414 bus width is 32bits */
> diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> index 2cda05c85a..3875377971 100644
> --- a/include/configs/helios4.h
> +++ b/include/configs/helios4.h
> @@ -71,11 +71,10 @@
>
> #if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI)
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x20000
> #elif defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC) || defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SATA)
> /* SPL related MMC defines */
> -#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS (160 << 10)
> #ifdef CONFIG_SPL_BUILD
> #define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
> #endif
> diff --git a/include/configs/theadorable.h b/include/configs/theadorable.h
> index 587b134a1b..bfe135da6b 100644
> --- a/include/configs/theadorable.h
> +++ b/include/configs/theadorable.h
> @@ -94,7 +94,7 @@
> #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
>
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x1a000
>
> /* Enable DDR support in SPL (DDR3 training from Marvell bin_hdr) */
> #define CONFIG_DDR_FIXED_SIZE (2 << 20) /* 2GiB */
> diff --git a/include/configs/turris_omnia.h b/include/configs/turris_omnia.h
> index 7da18f97db..49ee7a7af5 100644
> --- a/include/configs/turris_omnia.h
> +++ b/include/configs/turris_omnia.h
> @@ -47,13 +47,12 @@
>
> #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI
> /* SPL related SPI defines */
> -# define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +# define CONFIG_SYS_U_BOOT_OFFS 0x24000
> #endif
>
> #ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC
> /* SPL related MMC defines */
> -# define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
> -# define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
> +# define CONFIG_SYS_U_BOOT_OFFS (160 << 10)
> # ifdef CONFIG_SPL_BUILD
> # define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */
> # endif
> diff --git a/include/configs/x530.h b/include/configs/x530.h
> index 4446510df4..25b259832a 100644
> --- a/include/configs/x530.h
> +++ b/include/configs/x530.h
> @@ -98,6 +98,6 @@
> #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
>
> /* SPL related SPI defines */
> -#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS
> +#define CONFIG_SYS_U_BOOT_OFFS 0x24000
>
> #endif /* _CONFIG_X530_H */
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list