spl: Ensure all SPL symbols in Kconfig have some SPL dependency
authorTom Rini <trini@konsulko.com>
Sat, 11 Jun 2022 03:03:09 +0000 (23:03 -0400)
committerTom Rini <trini@konsulko.com>
Thu, 7 Jul 2022 13:29:08 +0000 (09:29 -0400)
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>
27 files changed:
arch/arm/Kconfig
arch/arm/cpu/armv8/Kconfig
arch/arm/mach-imx/imx8/Kconfig
arch/x86/Kconfig
boot/Kconfig
common/Kconfig
configs/at91sam9n12ek_nandflash_defconfig
configs/at91sam9x5ek_dataflash_defconfig
configs/at91sam9x5ek_nandflash_defconfig
configs/sama5d36ek_cmp_nandflash_defconfig
configs/socfpga_secu1_defconfig
drivers/firmware/Kconfig
drivers/gpio/Kconfig
drivers/i2c/muxes/Kconfig
drivers/led/Kconfig
drivers/mmc/Kconfig
drivers/mtd/nand/raw/Kconfig
drivers/mtd/spi/Kconfig
drivers/power/Kconfig
drivers/power/acpi_pmc/Kconfig
drivers/power/regulator/Kconfig
fs/cbfs/Kconfig
lib/Kconfig
lib/crypto/Kconfig
lib/ecdsa/Kconfig
lib/rsa/Kconfig
test/Kconfig

index ef79fc3..423fca2 100644 (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
index 72d12b4..1305238 100644 (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.
index 8f185c1..2ba7454 100644 (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
index 1ac43e9..7e86c6a 100644 (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
index 945ef1c..ee0dc90 100644 (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
index f08a8e7..e7914ca 100644 (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
index 18ec990..5ffa294 100644 (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
index 6e36b60..da37fb5 100644 (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
index a32eb13..9d58173 100644 (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
index 0139ebe..2fd58b0 100644 (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
index 72cf0d1..4a244e1 100644 (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
index f10d1aa..eae1c8d 100644 (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
index 149a62f..8ab22ed 100644 (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
index 39683fc..323c4fb 100644 (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
index 418ed21..ccdd7d7 100644 (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.
index b44cd98..fd44421 100644 (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
index 4129a33..190300f 100644 (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.
index f350c7e..f83876c 100644 (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.
 
index 2c20dc7..0af53a6 100644 (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.
index 355d161..629acb0 100644 (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
index d6cea8e..c519e06 100644 (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.
index 03980d8..b663992 100644 (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
index c9f9ddc..7dd777b 100644 (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
index 1c04a7e..152eb2a 100644 (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
index a95c4ff..5c3d67d 100644 (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.
 
index b773f17..9033384 100644 (file)
@@ -18,6 +18,7 @@ if RSA
 
 config SPL_RSA
        bool "Use RSA Library within SPL"
+       depends on SPL
 
 config SPL_RSA_VERIFY
        bool
index 7f3447a..9b283a5 100644 (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