spl: Ensure all SPL symbols in Kconfig have some SPL dependency

Tighten up symbol dependencies in a number of places.  Ensure that a SPL
specific option has at least a direct dependency on SPL.  In places
where it's clear that we depend on something more specific, use that
dependency instead.  This means in a very small number of places we can
drop redundant dependencies.

Reported-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Tom Rini 2022-06-10 23:03:09 -04:00
parent abba59f115
commit b340199f82
27 changed files with 50 additions and 36 deletions

View File

@ -1119,7 +1119,6 @@ config ARCH_SOCFPGA
select SPL_DM_SERIAL
select SPL_LIBCOMMON_SUPPORT
select SPL_LIBGENERIC_SUPPORT
select SPL_NAND_SUPPORT if SPL_NAND_DENALI
select SPL_OF_CONTROL
select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
select SPL_SERIAL

View File

@ -76,6 +76,7 @@ config ARMV8_SEC_FIRMWARE_SUPPORT
config SPL_ARMV8_SEC_FIRMWARE_SUPPORT
bool "Enable ARMv8 secure monitor firmware framework support for SPL"
depends on SPL
select SPL_FIT
select SPL_OF_LIBFDT
help
@ -83,6 +84,7 @@ config SPL_ARMV8_SEC_FIRMWARE_SUPPORT
config SPL_RECOVER_DATA_SECTION
bool "save/restore SPL data section"
depends on SPL
help
Say Y here to save SPL data section for cold boot, and restore
at warm boot in SPL phase.

View File

@ -20,13 +20,13 @@ config MU_BASE_SPL
config IMX8QM
select IMX8
select SUPPORT_SPL
select SPL_RECOVER_DATA_SECTION
select SPL_RECOVER_DATA_SECTION if SPL
bool
config IMX8QXP
select IMX8
select SUPPORT_SPL
select SPL_RECOVER_DATA_SECTION
select SPL_RECOVER_DATA_SECTION if SPL
bool
config SYS_SOC

View File

@ -945,6 +945,7 @@ config ACPI_GPE
config SPL_ACPI_GPE
bool "Support ACPI general-purpose events in SPL"
depends on SPL
help
Enable a driver for ACPI GPEs to allow peripherals to send interrupts
via ACPI to the OS. In U-Boot this is only used when U-Boot itself

View File

@ -626,7 +626,7 @@ config BOOTSTAGE
config SPL_BOOTSTAGE
bool "Boot timing and reported in SPL"
depends on BOOTSTAGE
depends on BOOTSTAGE && SPL
help
Enable recording of boot time in SPL. To make this visible to U-Boot
proper, enable BOOTSTAGE_STASH as well. This will stash the timing

View File

@ -83,6 +83,7 @@ config LOGLEVEL
config SPL_LOGLEVEL
int
depends on SPL
default LOGLEVEL
config TPL_LOGLEVEL
@ -358,7 +359,7 @@ config LOG_SYSLOG
config SPL_LOG
bool "Enable logging support in SPL"
depends on LOG
depends on LOG && SPL
help
This enables support for logging of status and debug messages. These
can be displayed on the console, recorded in a memory buffer, or

View File

@ -48,9 +48,7 @@ CONFIG_AT91_GPIO=y
CONFIG_GENERIC_ATMEL_MCI=y
CONFIG_MTD=y
CONFIG_NAND_ATMEL=y
CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER=y
CONFIG_SYS_NAND_PAGE_SIZE=0x800
CONFIG_SYS_NAND_OOBSIZE=0x40
CONFIG_ATMEL_NAND_HW_PMECC=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SF_DEFAULT_SPEED=30000000
CONFIG_SPI_FLASH_ATMEL=y

View File

@ -55,9 +55,7 @@ CONFIG_GENERIC_ATMEL_MCI=y
CONFIG_MTD=y
CONFIG_MTD_RAW_NAND=y
CONFIG_NAND_ATMEL=y
CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER=y
CONFIG_SYS_NAND_PAGE_SIZE=0x800
CONFIG_SYS_NAND_OOBSIZE=0x40
CONFIG_ATMEL_NAND_HW_PMECC=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SF_DEFAULT_SPEED=30000000
CONFIG_SPI_FLASH_ATMEL=y

View File

@ -54,9 +54,7 @@ CONFIG_AT91_GPIO=y
CONFIG_GENERIC_ATMEL_MCI=y
CONFIG_MTD=y
CONFIG_NAND_ATMEL=y
CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER=y
CONFIG_SYS_NAND_PAGE_SIZE=0x800
CONFIG_SYS_NAND_OOBSIZE=0x40
CONFIG_ATMEL_NAND_HW_PMECC=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SF_DEFAULT_SPEED=30000000
CONFIG_SPI_FLASH_ATMEL=y

View File

@ -53,11 +53,9 @@ CONFIG_AT91_GPIO=y
CONFIG_GENERIC_ATMEL_MCI=y
CONFIG_MTD=y
CONFIG_NAND_ATMEL=y
CONFIG_ATMEL_NAND_HW_PMECC=y
CONFIG_PMECC_CAP=4
CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER=y
CONFIG_SYS_NAND_ONFI_DETECTION=y
CONFIG_SYS_NAND_PAGE_SIZE=0x800
CONFIG_SYS_NAND_OOBSIZE=0x40
CONFIG_DM_SPI_FLASH=y
CONFIG_SF_DEFAULT_SPEED=30000000
CONFIG_SPI_FLASH_ATMEL=y

View File

@ -42,6 +42,7 @@ CONFIG_SPL_STACK=0x0
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x1
# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE is not set
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_NAND_SUPPORT=y
CONFIG_SYS_MAXARGS=32
CONFIG_CMD_ASKENV=y
CONFIG_CMD_GREPENV=y

View File

@ -3,7 +3,7 @@ config FIRMWARE
config SPL_FIRMWARE
bool "Enable Firmware driver support in SPL"
depends on FIRMWARE
depends on FIRMWARE && SPL
config SPL_ARM_PSCI_FW
bool

View File

@ -89,7 +89,7 @@ config DM_GPIO_LOOKUP_LABEL
config SPL_DM_GPIO_LOOKUP_LABEL
bool "Enable searching for gpio labelnames"
depends on DM_GPIO && SPL_DM && SPL_GPIO
depends on SPL_DM_GPIO
help
This option enables searching for gpio names in
the defined gpio labels, if the search for the
@ -490,7 +490,7 @@ config DM_PCA953X
config SPL_DM_PCA953X
bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
depends on DM_GPIO
depends on SPL_DM_GPIO
help
Say yes here to provide access to several register-oriented
SMBus I/O expanders, made mostly by NXP or TI. Compatible

View File

@ -9,7 +9,7 @@ config I2C_MUX
config SPL_I2C_MUX
bool "Support I2C multiplexers on SPL"
depends on I2C_MUX
depends on SPL && I2C_MUX
help
This enables I2C buses to be multiplexed, so that you can select
one of several buses using some sort of control mechanism. The

View File

@ -67,7 +67,7 @@ config LED_BLINK
config SPL_LED
bool "Enable LED support in SPL"
depends on SPL && SPL_DM
depends on SPL_DM
help
The LED subsystem adds a small amount of overhead to the image.
If this is acceptable and you have a need to use LEDs in SPL,
@ -85,7 +85,7 @@ config LED_GPIO
config SPL_LED_GPIO
bool "LED support for GPIO-connected LEDs in SPL"
depends on SPL_LED && DM_GPIO
depends on SPL_LED && SPL_DM_GPIO
help
This option is an SPL-variant of the LED_GPIO option.
See the help of LED_GPIO for details.

View File

@ -123,6 +123,7 @@ config MMC_IO_VOLTAGE
config SPL_MMC_IO_VOLTAGE
bool "Support IO voltage configuration in SPL"
depends on SPL_MMC
help
IO voltage configuration allows selecting the voltage level of the IO
lines (not the level of main supply). This is required for UHS
@ -153,6 +154,7 @@ config MMC_HS400_ES_SUPPORT
config SPL_MMC_HS400_ES_SUPPORT
bool "enable HS400 Enhanced Strobe support in SPL"
depends on SPL_MMC
help
The HS400 Enhanced Strobe mode is support by some eMMC. The bus
frequency is up to 200MHz. This mode does not tune the IO.
@ -166,6 +168,7 @@ config MMC_HS400_SUPPORT
config SPL_MMC_HS400_SUPPORT
bool "enable HS400 support in SPL"
depends on SPL_MMC
select SPL_MMC_HS200_SUPPORT
help
The HS400 mode is support by some eMMC. The bus frequency is up to
@ -179,6 +182,7 @@ config MMC_HS200_SUPPORT
config SPL_MMC_HS200_SUPPORT
bool "enable HS200 support in SPL"
depends on SPL_MMC
help
The HS200 mode is support by some eMMC. The bus frequency is up to
200MHz. This mode requires tuning the IO.
@ -478,7 +482,7 @@ config MMC_SDHCI_ADMA
config SPL_MMC_SDHCI_ADMA
bool "Support SDHCI ADMA2 in SPL"
depends on MMC_SDHCI
depends on SPL_MMC && MMC_SDHCI
select MMC_SDHCI_ADMA_HELPERS
help
This enables support for the ADMA (Advanced DMA) defined

View File

@ -73,6 +73,7 @@ config PMECC_SECTOR_SIZE
config SPL_GENERATE_ATMEL_PMECC_HEADER
bool "Atmel PMECC Header Generation"
depends on SPL
select ATMEL_NAND_HWECC
select ATMEL_NAND_HW_PMECC
help
@ -647,7 +648,7 @@ config SYS_NAND_U_BOOT_OFFS_REDUND
config SPL_NAND_AM33XX_BCH
bool "Enables SPL-NAND driver which supports ELM based"
depends on NAND_OMAP_GPMC && !OMAP34XX
depends on SPL_NAND_SUPPORT && NAND_OMAP_GPMC && !OMAP34XX
default y
help
Hardware ECC correction. This is useful for platforms which have ELM
@ -658,6 +659,7 @@ config SPL_NAND_AM33XX_BCH
config SPL_NAND_DENALI
bool "Support Denali NAND controller for SPL"
depends on SPL_NAND_SUPPORT
help
This is a small implementation of the Denali NAND controller
for use on SPL.
@ -673,7 +675,7 @@ config NAND_DENALI_SPARE_AREA_SKIP_BYTES
config SPL_NAND_SIMPLE
bool "Use simple SPL NAND driver"
depends on !SPL_NAND_AM33XX_BCH
depends on !SPL_NAND_AM33XX_BCH && SPL_NAND_SUPPORT
help
Support for NAND boot using simple NAND drivers that
expose the cmd_ctrl() interface.

View File

@ -248,7 +248,7 @@ config SPI_FLASH_MTD
config SPL_SPI_FLASH_MTD
bool "SPI flash MTD support for SPL"
depends on SPI_FLASH
depends on SPI_FLASH && SPL
help
Enable the MTD support for the SPI flash layer in SPL.

View File

@ -29,6 +29,7 @@ config POWER_LEGACY
config SPL_POWER_LEGACY
bool "Legacy power support in SPL"
depends on SPL && !SPL_DM_PMIC
default y if POWER_LEGACY
help
Note: This is a legacy option. Use SPL_DM_PMIC instead.

View File

@ -8,6 +8,7 @@ config ACPI_PMC
config SPL_ACPI_PMC
bool "Power Manager (x86 PMC) support in SPL"
depends on SPL
default y if ACPI_PMC
help
Enable support for an x86-style power-management controller which

View File

@ -55,7 +55,7 @@ config DM_REGULATOR_BD71837
config SPL_DM_REGULATOR_BD71837
bool "Enable Driver Model for ROHM BD71837/BD71847 regulators in SPL"
depends on DM_REGULATOR_BD71837
depends on DM_REGULATOR_BD71837 && SPL
help
This config enables implementation of driver-model regulator uclass
features for regulators on ROHM BD71837 and BD71847 in SPL.
@ -70,7 +70,7 @@ config DM_REGULATOR_PCA9450
config SPL_DM_REGULATOR_PCA9450
bool "Enable Driver Model for NXP PCA9450 regulators in SPL"
depends on DM_REGULATOR_PCA9450
depends on DM_REGULATOR_PCA9450 && SPL
help
This config enables implementation of driver-model regulator uclass
features for regulators on ROHM PCA9450 in SPL.
@ -115,7 +115,7 @@ config REGULATOR_PWM
config SPL_REGULATOR_PWM
bool "Enable Driver for PWM regulators in SPL"
depends on REGULATOR_PWM
depends on REGULATOR_PWM && SPL
help
This config enables implementation of driver-model regulator uclass
features for PWM regulators in SPL.
@ -163,7 +163,7 @@ config DM_REGULATOR_FIXED
config SPL_DM_REGULATOR_FIXED
bool "Enable Driver Model for REGULATOR Fixed value in SPL"
depends on DM_REGULATOR_FIXED
depends on DM_REGULATOR_FIXED && SPL
select SPL_DM_REGULATOR_COMMON
---help---
This config enables implementation of driver-model regulator uclass
@ -345,7 +345,7 @@ config SPL_DM_REGULATOR_STPMIC1
config SPL_DM_REGULATOR_PALMAS
bool "Enable driver for PALMAS PMIC regulators"
depends on SPL_PMIC_PALMAS
depends on SPL_PMIC_PALMAS
help
This enables implementation of driver-model regulator uclass
features for REGULATOR PALMAS and the family of PALMAS PMICs.
@ -353,7 +353,7 @@ config SPL_DM_REGULATOR_PALMAS
config SPL_DM_REGULATOR_LP87565
bool "Enable driver for LP87565 PMIC regulators"
depends on SPL_PMIC_LP87565
depends on SPL_PMIC_LP87565
help
This enables implementation of driver-model regulator uclass
features for REGULATOR LP87565 and the family of LP87565 PMICs.

View File

@ -9,6 +9,7 @@ config FS_CBFS
config SPL_FS_CBFS
bool "Enable CBFS (Coreboot Filesystem) in SPL"
depends on SPL
help
Define this to enable support for reading from a Coreboot
filesystem. This is a ROM-based filesystem used for accessing files

View File

@ -239,6 +239,7 @@ config GENERATE_ACPI_TABLE
config SPL_TINY_MEMSET
bool "Use a very small memset() in SPL"
depends on SPL
help
The faster memset() is the arch-specific one (if available) enabled
by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
@ -557,6 +558,7 @@ config MD5
config SPL_MD5
bool "Support MD5 algorithm in SPL"
depends on SPL
help
This option enables MD5 support in SPL. MD5 is an algorithm designed
in 1991 that produces a 16-byte digest (or checksum) from its input
@ -643,6 +645,7 @@ config ZSTD
config SPL_LZ4
bool "Enable LZ4 decompression support in SPL"
depends on SPL
help
This enables support for the LZ4 decompression algorithm in SPL. LZ4
is a lossless data compression algorithm that is focused on
@ -651,6 +654,7 @@ config SPL_LZ4
config SPL_LZMA
bool "Enable LZMA decompression support for SPL build"
depends on SPL
help
This enables support for LZMA compression algorithm for SPL boot.
@ -662,6 +666,7 @@ config VPL_LZMA
config SPL_LZO
bool "Enable LZO decompression support in SPL"
depends on SPL
help
This enables support for LZO compression algorithm in the SPL.
@ -678,6 +683,7 @@ config SPL_ZLIB
config SPL_ZSTD
bool "Enable Zstandard decompression support in SPL"
depends on SPL
select XXHASH
help
This enables Zstandard decompression library in the SPL.
@ -750,7 +756,7 @@ config SPL_OF_LIBFDT
config SPL_OF_LIBFDT_ASSUME_MASK
hex "Mask of conditions to assume for libfdt"
depends on SPL_OF_LIBFDT || FIT
depends on SPL_OF_LIBFDT || (FIT && SPL)
default 0xff
help
Use this to change the assumptions made by libfdt in SPL about the

View File

@ -28,7 +28,7 @@ config ASYMMETRIC_PUBLIC_KEY_SUBTYPE
config SPL_ASYMMETRIC_PUBLIC_KEY_SUBTYPE
bool "Asymmetric public-key crypto algorithm subtype within SPL"
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE && SPL
help
This option provides support for asymmetric public key type handling in the SPL.
If signature generation and/or verification are to be used,
@ -48,7 +48,7 @@ config RSA_PUBLIC_KEY_PARSER
config SPL_RSA_PUBLIC_KEY_PARSER
bool "RSA public key parser within SPL"
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE && SPL
select SPL_ASN1_DECODER
select ASN1_COMPILER
select SPL_OID_REGISTRY

View File

@ -17,6 +17,7 @@ config ECDSA_VERIFY
config SPL_ECDSA_VERIFY
bool "Enable ECDSA verification support in SPL"
depends on SPL
help
Allow ECDSA signatures to be recognized and verified in SPL.

View File

@ -18,6 +18,7 @@ if RSA
config SPL_RSA
bool "Use RSA Library within SPL"
depends on SPL
config SPL_RSA_VERIFY
bool

View File

@ -8,6 +8,7 @@ menuconfig UNIT_TEST
config SPL_UNIT_TEST
bool "Unit tests in SPL"
depends on SPL
# We need to be able to unbind devices for tests to work
select SPL_DM_DEVICE_REMOVE
help