diff mbox series

[v1,1/2] arm: mvebu: correct SPL boot configs for SPI/MMC

Message ID 20200417071906.1098043-1-mrjoel@lixil.net
State Accepted
Commit ab2f757eb0513118ac16cab488ea1257ab7d9b83
Headers show
Series [v1,1/2] arm: mvebu: correct SPL boot configs for SPI/MMC | expand

Commit Message

Joel Johnson April 17, 2020, 7:19 a.m. UTC
Update mvebu SPL boot selection mechanism for the move to driver model
usage by ensuring that the required driver support for SPI and MMC
booting is available in SPL when the respective boot method is
selected.

Previously, all mvebu boards selected a boot method (implicitly
MVEBU_SPL_BOOT_DEVICE_SPI for many) even if SPL booting wasn't used.
This changes mvebu boot method selection to depend on SPL usage which
resolves the issue with aarch64 boards which don't use SPL getting an
implicit boot device selection resulting in unmet dependencies. The
32-bit arm boards do use SPL, but I'm led to conclude that most aren't
intentionally using the MVEBU_SPL_BOOT_DEVICE selection since none have
SPL_DM_SPI enabled in their defconfig even though they still implicitly
select the SPI boot method.

This also results in the new addition of SPL_GPIO_SUPPORT to helios4.
The mainline dts for helios4 includes the cd-gpios entry for sdhci with
identical addresses as the clearfog dts. I don't have a helios4 board
to confirm, but based on the current source conclude that the board
itself is either wired to pull the signal low for eMMC, or the default
MMC boot isn't fully functional in mainline. In either case, as far as
I can tell, including the GPIO support will at least cause no
regression.

Tested on SolidRun ClearFog devices.

Signed-off-by: Joel Johnson <mrjoel at lixil.net>

---

This patch unifies two patches from a prior ClearFog specific series
which caused issues when building for most other mvebu boards. Now
build and config diff tested for all arm and aarch64 mvebu boards!

The only substantive changes end up being the SPL dependency for boot
selection, along with defconfig cleanups with Kconfig consolidated
boot dependent values.

The superfluous addition of SPL_MTD_SUPPORT present in the prior patch
for SPI booting was also removed.

---
 arch/arm/mach-mvebu/Kconfig         | 12 ++++++++++++
 configs/clearfog_defconfig          |  3 ---
 configs/controlcenterdc_defconfig   |  4 ----
 configs/db-88f6720_defconfig        |  4 ----
 configs/db-88f6820-amc_defconfig    |  4 ----
 configs/db-88f6820-gp_defconfig     |  4 ----
 configs/db-mv784mp-gp_defconfig     |  3 ---
 configs/ds414_defconfig             |  3 ---
 configs/helios4_defconfig           |  1 -
 configs/maxbcm_defconfig            |  3 ---
 configs/theadorable_debug_defconfig |  3 ---
 configs/turris_omnia_defconfig      |  4 ----
 configs/x530_defconfig              |  4 ----
 include/configs/helios4.h           |  5 -----
 14 files changed, 12 insertions(+), 45 deletions(-)

Comments

Dennis Gilmore April 18, 2020, 2:23 p.m. UTC | #1
resending from a different email address as Gmail rejected my first
attempt to send

On Sat, Apr 18, 2020 at 9:18 AM Dennis Gilmore
<dgilmore at fedoraproject.org> wrote:
>
> On Fri, Apr 17, 2020 at 2:19 AM Joel Johnson <mrjoel at lixil.net> wrote:
> >
> > Update mvebu SPL boot selection mechanism for the move to driver model
> > usage by ensuring that the required driver support for SPI and MMC
> > booting is available in SPL when the respective boot method is
> > selected.
> >
> > Previously, all mvebu boards selected a boot method (implicitly
> > MVEBU_SPL_BOOT_DEVICE_SPI for many) even if SPL booting wasn't used.
> > This changes mvebu boot method selection to depend on SPL usage which
> > resolves the issue with aarch64 boards which don't use SPL getting an
> > implicit boot device selection resulting in unmet dependencies. The
> > 32-bit arm boards do use SPL, but I'm led to conclude that most aren't
> > intentionally using the MVEBU_SPL_BOOT_DEVICE selection since none have
> > SPL_DM_SPI enabled in their defconfig even though they still implicitly
> > select the SPI boot method.
> >
> > This also results in the new addition of SPL_GPIO_SUPPORT to helios4.
> > The mainline dts for helios4 includes the cd-gpios entry for sdhci with
> > identical addresses as the clearfog dts. I don't have a helios4 board
> > to confirm, but based on the current source conclude that the board
> > itself is either wired to pull the signal low for eMMC, or the default
> > MMC boot isn't fully functional in mainline. In either case, as far as
> > I can tell, including the GPIO support will at least cause no
> > regression.
>
> Currently, SPL does not find u-boot.bin on the helios4, I am working
> on syncing all of the changes done to clearfog to the helios4,
> generally speaking, any change made to clearfog needs to also, be made
> for the helios4 as they have the same SOM. the differences being in
> changes for the carrier board.
>
> Dennis
>
> > Tested on SolidRun ClearFog devices.
> >
> > Signed-off-by: Joel Johnson <mrjoel at lixil.net>
> >
> > ---
> >
> > This patch unifies two patches from a prior ClearFog specific series
> > which caused issues when building for most other mvebu boards. Now
> > build and config diff tested for all arm and aarch64 mvebu boards!
> >
> > The only substantive changes end up being the SPL dependency for boot
> > selection, along with defconfig cleanups with Kconfig consolidated
> > boot dependent values.
> >
> > The superfluous addition of SPL_MTD_SUPPORT present in the prior patch
> > for SPI booting was also removed.
> >
> > ---
> >  arch/arm/mach-mvebu/Kconfig         | 12 ++++++++++++
> >  configs/clearfog_defconfig          |  3 ---
> >  configs/controlcenterdc_defconfig   |  4 ----
> >  configs/db-88f6720_defconfig        |  4 ----
> >  configs/db-88f6820-amc_defconfig    |  4 ----
> >  configs/db-88f6820-gp_defconfig     |  4 ----
> >  configs/db-mv784mp-gp_defconfig     |  3 ---
> >  configs/ds414_defconfig             |  3 ---
> >  configs/helios4_defconfig           |  1 -
> >  configs/maxbcm_defconfig            |  3 ---
> >  configs/theadorable_debug_defconfig |  3 ---
> >  configs/turris_omnia_defconfig      |  4 ----
> >  configs/x530_defconfig              |  4 ----
> >  include/configs/helios4.h           |  5 -----
> >  14 files changed, 12 insertions(+), 45 deletions(-)
> >
> > diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> > index 161dee937f..645990b3ef 100644
> > --- a/arch/arm/mach-mvebu/Kconfig
> > +++ b/arch/arm/mach-mvebu/Kconfig
> > @@ -232,13 +232,25 @@ config SYS_SOC
> >
> >  choice
> >         prompt "Boot method"
> > +       depends on SPL
> >
> >  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
> >
> >  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
> >
> >  config MVEBU_SPL_BOOT_DEVICE_SATA
> >         bool "SATA"
> > diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
> > index 6db8b8acf6..ada35cb53b 100644
> > --- a/configs/clearfog_defconfig
> > +++ b/configs/clearfog_defconfig
> > @@ -3,14 +3,12 @@ CONFIG_ARCH_CPU_INIT=y
> >  CONFIG_SYS_THUMB_BUILD=y
> >  CONFIG_ARCH_MVEBU=y
> >  CONFIG_SYS_TEXT_BASE=0x00800000
> > -CONFIG_SPL_GPIO_SUPPORT=y
> >  CONFIG_SPL_LIBCOMMON_SUPPORT=y
> >  CONFIG_SPL_LIBGENERIC_SUPPORT=y
> >  CONFIG_SYS_MALLOC_F_LEN=0x2000
> >  CONFIG_TARGET_CLEARFOG=y
> >  CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y
> >  CONFIG_DM_GPIO=y
> > -CONFIG_SPL_MMC_SUPPORT=y
> >  CONFIG_SPL_SERIAL_SUPPORT=y
> >  CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> > @@ -42,7 +40,6 @@ CONFIG_CMD_CACHE=y
> >  CONFIG_CMD_TIME=y
> >  # CONFIG_SPL_PARTITION_UUIDS is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog"
> > -CONFIG_ENV_IS_IN_MMC=y
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_SPL_OF_TRANSLATE=y
> >  CONFIG_AHCI_MVEBU=y
> > diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
> > index 51126cbdc3..524dbc2b39 100644
> > --- a/configs/controlcenterdc_defconfig
> > +++ b/configs/controlcenterdc_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_AHCI=y
> >  CONFIG_SPL_TEXT_BASE=0x40000030
> > @@ -28,7 +26,6 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_LAST_STAGE_INIT=y
> >  CONFIG_SPL_BOARD_INIT=y
> >  CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x30000
> >  CONFIG_HUSH_PARSER=y
> >  # CONFIG_CMD_ELF is not set
> > @@ -50,7 +47,6 @@ CONFIG_CMD_EXT4=y
> >  CONFIG_EFI_PARTITION=y
> >  CONFIG_OF_BOARD_FIXUP=y
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-38x-controlcenterdc"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_USE_ENV_SPI_MAX_HZ=y
> >  CONFIG_ENV_SPI_MAX_HZ=50000000
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > diff --git a/configs/db-88f6720_defconfig b/configs/db-88f6720_defconfig
> > index 42c427b792..068f76bbe4 100644
> > --- a/configs/db-88f6720_defconfig
> > +++ b/configs/db-88f6720_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xf1012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40004030
> >  # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> > @@ -25,7 +23,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> >  CONFIG_CMD_I2C=y
> >  CONFIG_CMD_SPI=y
> > @@ -43,7 +40,6 @@ CONFIG_CMD_FAT=y
> >  CONFIG_CMD_FS_GENERIC=y
> >  # CONFIG_DOS_PARTITION is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-375-db"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_USE_ENV_SPI_MAX_HZ=y
> >  CONFIG_ENV_SPI_MAX_HZ=50000000
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > diff --git a/configs/db-88f6820-amc_defconfig b/configs/db-88f6820-amc_defconfig
> > index 5bf9eb66ad..e231ca4673 100644
> > --- a/configs/db-88f6820-amc_defconfig
> > +++ b/configs/db-88f6820-amc_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=200000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40000030
> >  CONFIG_FIT=y
> > @@ -26,7 +24,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> >  # CONFIG_CMD_FLASH is not set
> >  CONFIG_CMD_I2C=y
> > @@ -48,7 +45,6 @@ CONFIG_EFI_PARTITION=y
> >  # CONFIG_PARTITION_UUIDS is not set
> >  # CONFIG_SPL_PARTITION_UUIDS is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-385-db-88f6820-amc"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_USE_ENV_SPI_MAX_HZ=y
> >  CONFIG_ENV_SPI_MAX_HZ=50000000
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
> > index 7e3ee5ec1c..c866131025 100644
> > --- a/configs/db-88f6820-gp_defconfig
> > +++ b/configs/db-88f6820-gp_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_AHCI=y
> >  CONFIG_SPL_TEXT_BASE=0x40000030
> > @@ -26,7 +24,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> >  CONFIG_CMD_I2C=y
> >  CONFIG_CMD_MMC=y
> > @@ -48,7 +45,6 @@ CONFIG_EFI_PARTITION=y
> >  # CONFIG_PARTITION_UUIDS is not set
> >  # CONFIG_SPL_PARTITION_UUIDS is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-388-gp"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_USE_ENV_SPI_MAX_HZ=y
> >  CONFIG_ENV_SPI_MAX_HZ=50000000
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
> > index d3a0d0020a..012149a860 100644
> > --- a/configs/db-mv784mp-gp_defconfig
> > +++ b/configs/db-mv784mp-gp_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40004030
> >  # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> > @@ -25,7 +23,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> >  # CONFIG_CMD_FLASH is not set
> >  CONFIG_CMD_I2C=y
> > diff --git a/configs/ds414_defconfig b/configs/ds414_defconfig
> > index 435c896e41..01a3909c8c 100644
> > --- a/configs/ds414_defconfig
> > +++ b/configs/ds414_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40004030
> >  CONFIG_BOOTDELAY=3
> > @@ -26,7 +24,6 @@ CONFIG_PREBOOT="usb start; sf probe"
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> >  # CONFIG_CMD_FLASH is not set
> >  CONFIG_CMD_I2C=y
> > diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
> > index 1b8d130ebc..0fe8559507 100644
> > --- a/configs/helios4_defconfig
> > +++ b/configs/helios4_defconfig
> > @@ -38,7 +38,6 @@ CONFIG_CMD_CACHE=y
> >  CONFIG_CMD_TIME=y
> >  # CONFIG_SPL_PARTITION_UUIDS is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4"
> > -CONFIG_ENV_IS_IN_MMC=y
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_SPL_OF_TRANSLATE=y
> >  CONFIG_SCSI_AHCI=y
> > diff --git a/configs/maxbcm_defconfig b/configs/maxbcm_defconfig
> > index 60a87edac0..9cc9d66393 100644
> > --- a/configs/maxbcm_defconfig
> > +++ b/configs/maxbcm_defconfig
> > @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40004030
> >  CONFIG_BOOTDELAY=3
> > @@ -24,7 +22,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
> >  CONFIG_CMD_I2C=y
> >  CONFIG_CMD_SPI=y
> > diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
> > index fb12e841cb..616c07ab54 100644
> > --- a/configs/theadorable_debug_defconfig
> > +++ b/configs/theadorable_debug_defconfig
> > @@ -15,8 +15,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40004030
> >  # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> > @@ -28,7 +26,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x1a000
> >  CONFIG_HUSH_PARSER=y
> >  CONFIG_CMD_BOOTZ=y
> > diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig
> > index f3ed9917d5..29c49686e2 100644
> > --- a/configs/turris_omnia_defconfig
> > +++ b/configs/turris_omnia_defconfig
> > @@ -17,8 +17,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_AHCI=y
> >  CONFIG_SPL_TEXT_BASE=0x40000030
> > @@ -32,7 +30,6 @@ CONFIG_MISC_INIT_R=y
> >  # CONFIG_DISPLAY_BOARDINFO is not set
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_SPL_I2C_SUPPORT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> >  CONFIG_CMD_MEMTEST=y
> >  CONFIG_SYS_ALT_MEMTEST=y
> > @@ -53,7 +50,6 @@ CONFIG_CMD_HASH=y
> >  CONFIG_CMD_BTRFS=y
> >  # CONFIG_SPL_PARTITION_UUIDS is not set
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-385-turris-omnia"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_USE_ENV_SPI_MAX_HZ=y
> >  CONFIG_ENV_SPI_MAX_HZ=50000000
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > diff --git a/configs/x530_defconfig b/configs/x530_defconfig
> > index a15b0b46b4..c49211df95 100644
> > --- a/configs/x530_defconfig
> > +++ b/configs/x530_defconfig
> > @@ -15,8 +15,6 @@ CONFIG_NR_DRAM_BANKS=2
> >  CONFIG_SPL=y
> >  CONFIG_DEBUG_UART_BASE=0xd0012000
> >  CONFIG_DEBUG_UART_CLOCK=250000000
> > -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> > -CONFIG_SPL_SPI_SUPPORT=y
> >  CONFIG_DEBUG_UART=y
> >  CONFIG_SPL_TEXT_BASE=0x40000030
> >  CONFIG_FIT=y
> > @@ -26,7 +24,6 @@ CONFIG_SILENT_U_BOOT_ONLY=y
> >  CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y
> >  CONFIG_MISC_INIT_R=y
> >  CONFIG_SPL_BOARD_INIT=y
> > -CONFIG_SPL_SPI_LOAD=y
> >  CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
> >  CONFIG_SPL_WATCHDOG_SUPPORT=y
> >  CONFIG_CMD_MEMINFO=y
> > @@ -47,7 +44,6 @@ CONFIG_CMD_EXT4=y
> >  CONFIG_CMD_FAT=y
> >  CONFIG_CMD_FS_GENERIC=y
> >  CONFIG_DEFAULT_DEVICE_TREE="armada-385-atl-x530"
> > -CONFIG_ENV_IS_IN_SPI_FLASH=y
> >  CONFIG_ENV_ADDR=0x100000
> >  CONFIG_SPL_OF_TRANSLATE=y
> >  CONFIG_BLK=y
> > diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> > index 5a4c9ae066..af595bc7bc 100644
> > --- a/include/configs/helios4.h
> > +++ b/include/configs/helios4.h
> > @@ -93,16 +93,11 @@
> >  #define CONFIG_SPL_BOOTROM_SAVE                (CONFIG_SPL_STACK + 4)
> >
> >  #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
> > -/* SPL related SPI defines */
> > -#define CONFIG_SPL_SPI_FLASH_SUPPORT
> > -#define CONFIG_SPL_SPI_LOAD
> > -#define CONFIG_SPL_SPI_SUPPORT
> >  #define CONFIG_SYS_U_BOOT_OFFS         CONFIG_SYS_SPI_U_BOOT_OFFS
> >  #endif
> >
> >  #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
> >  /* SPL related MMC defines */
> > -#define CONFIG_SPL_MMC_SUPPORT
> >  #define CONFIG_SYS_MMC_U_BOOT_OFFS             (160 << 10)
> >  #define CONFIG_SYS_U_BOOT_OFFS                 CONFIG_SYS_MMC_U_BOOT_OFFS
> >  #ifdef CONFIG_SPL_BUILD
> > --
> > 2.26.1
> >
Joel Johnson April 18, 2020, 10:05 p.m. UTC | #2
On 2020-04-18 08:23, Dennis Gilmore wrote:
> On Sat, Apr 18, 2020 at 9:18 AM Dennis Gilmore
> <dgilmore at fedoraproject.org> wrote:
>> 
>> On Fri, Apr 17, 2020 at 2:19 AM Joel Johnson <mrjoel at lixil.net> wrote:
>> >
>> > Update mvebu SPL boot selection mechanism for the move to driver model
>> > usage by ensuring that the required driver support for SPI and MMC
>> > booting is available in SPL when the respective boot method is
>> > selected.
>> >
>> > Previously, all mvebu boards selected a boot method (implicitly
>> > MVEBU_SPL_BOOT_DEVICE_SPI for many) even if SPL booting wasn't used.
>> > This changes mvebu boot method selection to depend on SPL usage which
>> > resolves the issue with aarch64 boards which don't use SPL getting an
>> > implicit boot device selection resulting in unmet dependencies. The
>> > 32-bit arm boards do use SPL, but I'm led to conclude that most aren't
>> > intentionally using the MVEBU_SPL_BOOT_DEVICE selection since none have
>> > SPL_DM_SPI enabled in their defconfig even though they still implicitly
>> > select the SPI boot method.
>> >
>> > This also results in the new addition of SPL_GPIO_SUPPORT to helios4.
>> > The mainline dts for helios4 includes the cd-gpios entry for sdhci with
>> > identical addresses as the clearfog dts. I don't have a helios4 board
>> > to confirm, but based on the current source conclude that the board
>> > itself is either wired to pull the signal low for eMMC, or the default
>> > MMC boot isn't fully functional in mainline. In either case, as far as
>> > I can tell, including the GPIO support will at least cause no
>> > regression.
>> 
>> Currently, SPL does not find u-boot.bin on the helios4, I am working
>> on syncing all of the changes done to clearfog to the helios4,
>> generally speaking, any change made to clearfog needs to also, be made
>> for the helios4 as they have the same SOM. the differences being in
>> changes for the carrier board.
>> 
>> Dennis

Great, thanks for the update and confirmation!

Stefan - in this case, I'd encourage that only the first commit of this 
series be merged and drop the second patch entirely.

Joel
Stefan Roese April 22, 2020, 12:25 p.m. UTC | #3
On 17.04.20 09:19, Joel Johnson wrote:
> Update mvebu SPL boot selection mechanism for the move to driver model
> usage by ensuring that the required driver support for SPI and MMC
> booting is available in SPL when the respective boot method is
> selected.
> 
> Previously, all mvebu boards selected a boot method (implicitly
> MVEBU_SPL_BOOT_DEVICE_SPI for many) even if SPL booting wasn't used.
> This changes mvebu boot method selection to depend on SPL usage which
> resolves the issue with aarch64 boards which don't use SPL getting an
> implicit boot device selection resulting in unmet dependencies. The
> 32-bit arm boards do use SPL, but I'm led to conclude that most aren't
> intentionally using the MVEBU_SPL_BOOT_DEVICE selection since none have
> SPL_DM_SPI enabled in their defconfig even though they still implicitly
> select the SPI boot method.
> 
> This also results in the new addition of SPL_GPIO_SUPPORT to helios4.
> The mainline dts for helios4 includes the cd-gpios entry for sdhci with
> identical addresses as the clearfog dts. I don't have a helios4 board
> to confirm, but based on the current source conclude that the board
> itself is either wired to pull the signal low for eMMC, or the default
> MMC boot isn't fully functional in mainline. In either case, as far as
> I can tell, including the GPIO support will at least cause no
> regression.
> 
> Tested on SolidRun ClearFog devices.
> 
> Signed-off-by: Joel Johnson <mrjoel at lixil.net>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
> 
> This patch unifies two patches from a prior ClearFog specific series
> which caused issues when building for most other mvebu boards. Now
> build and config diff tested for all arm and aarch64 mvebu boards!
> 
> The only substantive changes end up being the SPL dependency for boot
> selection, along with defconfig cleanups with Kconfig consolidated
> boot dependent values.
> 
> The superfluous addition of SPL_MTD_SUPPORT present in the prior patch
> for SPI booting was also removed.
> 
> ---
>   arch/arm/mach-mvebu/Kconfig         | 12 ++++++++++++
>   configs/clearfog_defconfig          |  3 ---
>   configs/controlcenterdc_defconfig   |  4 ----
>   configs/db-88f6720_defconfig        |  4 ----
>   configs/db-88f6820-amc_defconfig    |  4 ----
>   configs/db-88f6820-gp_defconfig     |  4 ----
>   configs/db-mv784mp-gp_defconfig     |  3 ---
>   configs/ds414_defconfig             |  3 ---
>   configs/helios4_defconfig           |  1 -
>   configs/maxbcm_defconfig            |  3 ---
>   configs/theadorable_debug_defconfig |  3 ---
>   configs/turris_omnia_defconfig      |  4 ----
>   configs/x530_defconfig              |  4 ----
>   include/configs/helios4.h           |  5 -----
>   14 files changed, 12 insertions(+), 45 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 161dee937f..645990b3ef 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -232,13 +232,25 @@ config SYS_SOC
>   
>   choice
>   	prompt "Boot method"
> +	depends on SPL
>   
>   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
>   
>   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
>   
>   config MVEBU_SPL_BOOT_DEVICE_SATA
>   	bool "SATA"
> diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
> index 6db8b8acf6..ada35cb53b 100644
> --- a/configs/clearfog_defconfig
> +++ b/configs/clearfog_defconfig
> @@ -3,14 +3,12 @@ CONFIG_ARCH_CPU_INIT=y
>   CONFIG_SYS_THUMB_BUILD=y
>   CONFIG_ARCH_MVEBU=y
>   CONFIG_SYS_TEXT_BASE=0x00800000
> -CONFIG_SPL_GPIO_SUPPORT=y
>   CONFIG_SPL_LIBCOMMON_SUPPORT=y
>   CONFIG_SPL_LIBGENERIC_SUPPORT=y
>   CONFIG_SYS_MALLOC_F_LEN=0x2000
>   CONFIG_TARGET_CLEARFOG=y
>   CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y
>   CONFIG_DM_GPIO=y
> -CONFIG_SPL_MMC_SUPPORT=y
>   CONFIG_SPL_SERIAL_SUPPORT=y
>   CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
> @@ -42,7 +40,6 @@ CONFIG_CMD_CACHE=y
>   CONFIG_CMD_TIME=y
>   # CONFIG_SPL_PARTITION_UUIDS is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog"
> -CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SPL_OF_TRANSLATE=y
>   CONFIG_AHCI_MVEBU=y
> diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
> index 51126cbdc3..524dbc2b39 100644
> --- a/configs/controlcenterdc_defconfig
> +++ b/configs/controlcenterdc_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_AHCI=y
>   CONFIG_SPL_TEXT_BASE=0x40000030
> @@ -28,7 +26,6 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_LAST_STAGE_INIT=y
>   CONFIG_SPL_BOARD_INIT=y
>   CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x30000
>   CONFIG_HUSH_PARSER=y
>   # CONFIG_CMD_ELF is not set
> @@ -50,7 +47,6 @@ CONFIG_CMD_EXT4=y
>   CONFIG_EFI_PARTITION=y
>   CONFIG_OF_BOARD_FIXUP=y
>   CONFIG_DEFAULT_DEVICE_TREE="armada-38x-controlcenterdc"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_USE_ENV_SPI_MAX_HZ=y
>   CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/db-88f6720_defconfig b/configs/db-88f6720_defconfig
> index 42c427b792..068f76bbe4 100644
> --- a/configs/db-88f6720_defconfig
> +++ b/configs/db-88f6720_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xf1012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40004030
>   # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> @@ -25,7 +23,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
>   CONFIG_CMD_I2C=y
>   CONFIG_CMD_SPI=y
> @@ -43,7 +40,6 @@ CONFIG_CMD_FAT=y
>   CONFIG_CMD_FS_GENERIC=y
>   # CONFIG_DOS_PARTITION is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-375-db"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_USE_ENV_SPI_MAX_HZ=y
>   CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/db-88f6820-amc_defconfig b/configs/db-88f6820-amc_defconfig
> index 5bf9eb66ad..e231ca4673 100644
> --- a/configs/db-88f6820-amc_defconfig
> +++ b/configs/db-88f6820-amc_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=200000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40000030
>   CONFIG_FIT=y
> @@ -26,7 +24,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
>   # CONFIG_CMD_FLASH is not set
>   CONFIG_CMD_I2C=y
> @@ -48,7 +45,6 @@ CONFIG_EFI_PARTITION=y
>   # CONFIG_PARTITION_UUIDS is not set
>   # CONFIG_SPL_PARTITION_UUIDS is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-385-db-88f6820-amc"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_USE_ENV_SPI_MAX_HZ=y
>   CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
> index 7e3ee5ec1c..c866131025 100644
> --- a/configs/db-88f6820-gp_defconfig
> +++ b/configs/db-88f6820-gp_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_AHCI=y
>   CONFIG_SPL_TEXT_BASE=0x40000030
> @@ -26,7 +24,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
>   CONFIG_CMD_I2C=y
>   CONFIG_CMD_MMC=y
> @@ -48,7 +45,6 @@ CONFIG_EFI_PARTITION=y
>   # CONFIG_PARTITION_UUIDS is not set
>   # CONFIG_SPL_PARTITION_UUIDS is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-388-gp"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_USE_ENV_SPI_MAX_HZ=y
>   CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
> index d3a0d0020a..012149a860 100644
> --- a/configs/db-mv784mp-gp_defconfig
> +++ b/configs/db-mv784mp-gp_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40004030
>   # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> @@ -25,7 +23,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
>   # CONFIG_CMD_FLASH is not set
>   CONFIG_CMD_I2C=y
> diff --git a/configs/ds414_defconfig b/configs/ds414_defconfig
> index 435c896e41..01a3909c8c 100644
> --- a/configs/ds414_defconfig
> +++ b/configs/ds414_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40004030
>   CONFIG_BOOTDELAY=3
> @@ -26,7 +24,6 @@ CONFIG_PREBOOT="usb start; sf probe"
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
>   # CONFIG_CMD_FLASH is not set
>   CONFIG_CMD_I2C=y
> diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
> index 1b8d130ebc..0fe8559507 100644
> --- a/configs/helios4_defconfig
> +++ b/configs/helios4_defconfig
> @@ -38,7 +38,6 @@ CONFIG_CMD_CACHE=y
>   CONFIG_CMD_TIME=y
>   # CONFIG_SPL_PARTITION_UUIDS is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4"
> -CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SPL_OF_TRANSLATE=y
>   CONFIG_SCSI_AHCI=y
> diff --git a/configs/maxbcm_defconfig b/configs/maxbcm_defconfig
> index 60a87edac0..9cc9d66393 100644
> --- a/configs/maxbcm_defconfig
> +++ b/configs/maxbcm_defconfig
> @@ -14,8 +14,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40004030
>   CONFIG_BOOTDELAY=3
> @@ -24,7 +22,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
>   CONFIG_CMD_I2C=y
>   CONFIG_CMD_SPI=y
> diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
> index fb12e841cb..616c07ab54 100644
> --- a/configs/theadorable_debug_defconfig
> +++ b/configs/theadorable_debug_defconfig
> @@ -15,8 +15,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40004030
>   # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> @@ -28,7 +26,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x1a000
>   CONFIG_HUSH_PARSER=y
>   CONFIG_CMD_BOOTZ=y
> diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig
> index f3ed9917d5..29c49686e2 100644
> --- a/configs/turris_omnia_defconfig
> +++ b/configs/turris_omnia_defconfig
> @@ -17,8 +17,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_AHCI=y
>   CONFIG_SPL_TEXT_BASE=0x40000030
> @@ -32,7 +30,6 @@ CONFIG_MISC_INIT_R=y
>   # CONFIG_DISPLAY_BOARDINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_SPL_I2C_SUPPORT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
>   CONFIG_CMD_MEMTEST=y
>   CONFIG_SYS_ALT_MEMTEST=y
> @@ -53,7 +50,6 @@ CONFIG_CMD_HASH=y
>   CONFIG_CMD_BTRFS=y
>   # CONFIG_SPL_PARTITION_UUIDS is not set
>   CONFIG_DEFAULT_DEVICE_TREE="armada-385-turris-omnia"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_USE_ENV_SPI_MAX_HZ=y
>   CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/x530_defconfig b/configs/x530_defconfig
> index a15b0b46b4..c49211df95 100644
> --- a/configs/x530_defconfig
> +++ b/configs/x530_defconfig
> @@ -15,8 +15,6 @@ CONFIG_NR_DRAM_BANKS=2
>   CONFIG_SPL=y
>   CONFIG_DEBUG_UART_BASE=0xd0012000
>   CONFIG_DEBUG_UART_CLOCK=250000000
> -CONFIG_SPL_SPI_FLASH_SUPPORT=y
> -CONFIG_SPL_SPI_SUPPORT=y
>   CONFIG_DEBUG_UART=y
>   CONFIG_SPL_TEXT_BASE=0x40000030
>   CONFIG_FIT=y
> @@ -26,7 +24,6 @@ CONFIG_SILENT_U_BOOT_ONLY=y
>   CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y
>   CONFIG_MISC_INIT_R=y
>   CONFIG_SPL_BOARD_INIT=y
> -CONFIG_SPL_SPI_LOAD=y
>   CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
>   CONFIG_SPL_WATCHDOG_SUPPORT=y
>   CONFIG_CMD_MEMINFO=y
> @@ -47,7 +44,6 @@ CONFIG_CMD_EXT4=y
>   CONFIG_CMD_FAT=y
>   CONFIG_CMD_FS_GENERIC=y
>   CONFIG_DEFAULT_DEVICE_TREE="armada-385-atl-x530"
> -CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_ENV_ADDR=0x100000
>   CONFIG_SPL_OF_TRANSLATE=y
>   CONFIG_BLK=y
> diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> index 5a4c9ae066..af595bc7bc 100644
> --- a/include/configs/helios4.h
> +++ b/include/configs/helios4.h
> @@ -93,16 +93,11 @@
>   #define CONFIG_SPL_BOOTROM_SAVE		(CONFIG_SPL_STACK + 4)
>   
>   #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
> -/* SPL related SPI defines */
> -#define CONFIG_SPL_SPI_FLASH_SUPPORT
> -#define CONFIG_SPL_SPI_LOAD
> -#define CONFIG_SPL_SPI_SUPPORT
>   #define CONFIG_SYS_U_BOOT_OFFS		CONFIG_SYS_SPI_U_BOOT_OFFS
>   #endif
>   
>   #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
>   /* SPL related MMC defines */
> -#define CONFIG_SPL_MMC_SUPPORT
>   #define CONFIG_SYS_MMC_U_BOOT_OFFS		(160 << 10)
>   #define CONFIG_SYS_U_BOOT_OFFS			CONFIG_SYS_MMC_U_BOOT_OFFS
>   #ifdef CONFIG_SPL_BUILD
> 


Viele Gr??e,
Stefan
diff mbox series

Patch

diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 161dee937f..645990b3ef 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -232,13 +232,25 @@  config SYS_SOC
 
 choice
 	prompt "Boot method"
+	depends on SPL
 
 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
 
 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
 
 config MVEBU_SPL_BOOT_DEVICE_SATA
 	bool "SATA"
diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
index 6db8b8acf6..ada35cb53b 100644
--- a/configs/clearfog_defconfig
+++ b/configs/clearfog_defconfig
@@ -3,14 +3,12 @@  CONFIG_ARCH_CPU_INIT=y
 CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MVEBU=y
 CONFIG_SYS_TEXT_BASE=0x00800000
-CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_TARGET_CLEARFOG=y
 CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y
 CONFIG_DM_GPIO=y
-CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
@@ -42,7 +40,6 @@  CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIME=y
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog"
-CONFIG_ENV_IS_IN_MMC=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_AHCI_MVEBU=y
diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
index 51126cbdc3..524dbc2b39 100644
--- a/configs/controlcenterdc_defconfig
+++ b/configs/controlcenterdc_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_AHCI=y
 CONFIG_SPL_TEXT_BASE=0x40000030
@@ -28,7 +26,6 @@  CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_LAST_STAGE_INIT=y
 CONFIG_SPL_BOARD_INIT=y
 CONFIG_SPL_SYS_MALLOC_SIMPLE=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x30000
 CONFIG_HUSH_PARSER=y
 # CONFIG_CMD_ELF is not set
@@ -50,7 +47,6 @@  CONFIG_CMD_EXT4=y
 CONFIG_EFI_PARTITION=y
 CONFIG_OF_BOARD_FIXUP=y
 CONFIG_DEFAULT_DEVICE_TREE="armada-38x-controlcenterdc"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_MAX_HZ=y
 CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/db-88f6720_defconfig b/configs/db-88f6720_defconfig
index 42c427b792..068f76bbe4 100644
--- a/configs/db-88f6720_defconfig
+++ b/configs/db-88f6720_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xf1012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40004030
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
@@ -25,7 +23,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
 CONFIG_CMD_I2C=y
 CONFIG_CMD_SPI=y
@@ -43,7 +40,6 @@  CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 # CONFIG_DOS_PARTITION is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-375-db"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_MAX_HZ=y
 CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/db-88f6820-amc_defconfig b/configs/db-88f6820-amc_defconfig
index 5bf9eb66ad..e231ca4673 100644
--- a/configs/db-88f6820-amc_defconfig
+++ b/configs/db-88f6820-amc_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=200000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40000030
 CONFIG_FIT=y
@@ -26,7 +24,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_I2C=y
@@ -48,7 +45,6 @@  CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-385-db-88f6820-amc"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_MAX_HZ=y
 CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
index 7e3ee5ec1c..c866131025 100644
--- a/configs/db-88f6820-gp_defconfig
+++ b/configs/db-88f6820-gp_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_AHCI=y
 CONFIG_SPL_TEXT_BASE=0x40000030
@@ -26,7 +24,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
@@ -48,7 +45,6 @@  CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-388-gp"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_MAX_HZ=y
 CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
index d3a0d0020a..012149a860 100644
--- a/configs/db-mv784mp-gp_defconfig
+++ b/configs/db-mv784mp-gp_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40004030
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
@@ -25,7 +23,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_I2C=y
diff --git a/configs/ds414_defconfig b/configs/ds414_defconfig
index 435c896e41..01a3909c8c 100644
--- a/configs/ds414_defconfig
+++ b/configs/ds414_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40004030
 CONFIG_BOOTDELAY=3
@@ -26,7 +24,6 @@  CONFIG_PREBOOT="usb start; sf probe"
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_I2C=y
diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
index 1b8d130ebc..0fe8559507 100644
--- a/configs/helios4_defconfig
+++ b/configs/helios4_defconfig
@@ -38,7 +38,6 @@  CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIME=y
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4"
-CONFIG_ENV_IS_IN_MMC=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_SCSI_AHCI=y
diff --git a/configs/maxbcm_defconfig b/configs/maxbcm_defconfig
index 60a87edac0..9cc9d66393 100644
--- a/configs/maxbcm_defconfig
+++ b/configs/maxbcm_defconfig
@@ -14,8 +14,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40004030
 CONFIG_BOOTDELAY=3
@@ -24,7 +22,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x20000
 CONFIG_CMD_I2C=y
 CONFIG_CMD_SPI=y
diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
index fb12e841cb..616c07ab54 100644
--- a/configs/theadorable_debug_defconfig
+++ b/configs/theadorable_debug_defconfig
@@ -15,8 +15,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40004030
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
@@ -28,7 +26,6 @@  CONFIG_SYS_CONSOLE_INFO_QUIET=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x1a000
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig
index f3ed9917d5..29c49686e2 100644
--- a/configs/turris_omnia_defconfig
+++ b/configs/turris_omnia_defconfig
@@ -17,8 +17,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_AHCI=y
 CONFIG_SPL_TEXT_BASE=0x40000030
@@ -32,7 +30,6 @@  CONFIG_MISC_INIT_R=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_I2C_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
 CONFIG_CMD_MEMTEST=y
 CONFIG_SYS_ALT_MEMTEST=y
@@ -53,7 +50,6 @@  CONFIG_CMD_HASH=y
 CONFIG_CMD_BTRFS=y
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_DEFAULT_DEVICE_TREE="armada-385-turris-omnia"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_MAX_HZ=y
 CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/x530_defconfig b/configs/x530_defconfig
index a15b0b46b4..c49211df95 100644
--- a/configs/x530_defconfig
+++ b/configs/x530_defconfig
@@ -15,8 +15,6 @@  CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BASE=0xd0012000
 CONFIG_DEBUG_UART_CLOCK=250000000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DEBUG_UART=y
 CONFIG_SPL_TEXT_BASE=0x40000030
 CONFIG_FIT=y
@@ -26,7 +24,6 @@  CONFIG_SILENT_U_BOOT_ONLY=y
 CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_BOARD_INIT=y
-CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x24000
 CONFIG_SPL_WATCHDOG_SUPPORT=y
 CONFIG_CMD_MEMINFO=y
@@ -47,7 +44,6 @@  CONFIG_CMD_EXT4=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_DEFAULT_DEVICE_TREE="armada-385-atl-x530"
-CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_ENV_ADDR=0x100000
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_BLK=y
diff --git a/include/configs/helios4.h b/include/configs/helios4.h
index 5a4c9ae066..af595bc7bc 100644
--- a/include/configs/helios4.h
+++ b/include/configs/helios4.h
@@ -93,16 +93,11 @@ 
 #define CONFIG_SPL_BOOTROM_SAVE		(CONFIG_SPL_STACK + 4)
 
 #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SPI_NOR_FLASH
-/* SPL related SPI defines */
-#define CONFIG_SPL_SPI_FLASH_SUPPORT
-#define CONFIG_SPL_SPI_LOAD
-#define CONFIG_SPL_SPI_SUPPORT
 #define CONFIG_SYS_U_BOOT_OFFS		CONFIG_SYS_SPI_U_BOOT_OFFS
 #endif
 
 #if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
 /* SPL related MMC defines */
-#define CONFIG_SPL_MMC_SUPPORT
 #define CONFIG_SYS_MMC_U_BOOT_OFFS		(160 << 10)
 #define CONFIG_SYS_U_BOOT_OFFS			CONFIG_SYS_MMC_U_BOOT_OFFS
 #ifdef CONFIG_SPL_BUILD