[U-Boot,v4] spl: kconfig: separate sysreset and firmware drivers from misc
diff mbox series

Message ID 20190716192932.8194-1-simon.k.r.goldschmidt@gmail.com
State Accepted
Commit a8b5031108a22f41234cc3b0c7e4e4e6f6e77cb8
Delegated to: Tom Rini
Headers show
Series
  • [U-Boot,v4] spl: kconfig: separate sysreset and firmware drivers from misc
Related show

Commit Message

Simon Goldschmidt July 16, 2019, 7:29 p.m. UTC
This adds separate kconfig options for drivers/sysreset and
drivers/firmware.

Up to now, CONFIG_SPL_DRIVERS_MISC_SUPPORT added drivers/misc to SPL
build but also added drivers/firmware and drivers/sysreset at the same
time.

Since that is confusing, this patch uses CONFIG_SPL_SYSRESET for
drivers/sysreset and adds CONFIG_SPL_FIRMWARE for
drivers/firmware (and accordingly for the TPL options).

CONFIG_SPL_DRIVERS_MISC_SUPPORT stays for including drivers/misc into
the SPL build (and accordingly for TPL) since there are boards using
non-DM (non UCLASS_MISC) files from drivers/misc. Such boards don't
have CONFIG_SPL_MISC enabled, so cannot use this to include
drivers/misc into the SPL build.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
---

Changes in v4:
- drivers/Makefile: combine subdirectory include statements for SPL, TPL
  and U-Boot instead of duplicating lines

Changes in v3:
- Revert to keeping CONFIG_SPL_DRIVERS_MISC_SUPPORT as there are boards
  that need to include drivers/misc without UCLASS_MISC being enabled
- Only CONFIG_SPL_FIRMWARE is added as new config symbol. To ensure no
  arch Kconfig files need to be changed, add dependencies to ensure this
  is enabled where required.

Changes in v2:
- adapt config names to match the non-SPL config options:
- changed CONFIG_SPL_SYSRESET_SUPPORT to CONFIG_SPL_SYSRESET
- changed CONFIG_SPL_DRIVERS_FIRMWARE_SUPPORT to CONFIG_SPL_FIRMWARE
- changed CONFIG_SPL_DRIVERS_MISC_SUPPORT to CONFIG_SPL_MISC

 configs/evb-rk3036_defconfig   | 1 +
 configs/kylin-rk3036_defconfig | 1 +
 configs/sandbox_spl_defconfig  | 1 +
 drivers/Makefile               | 6 +++---
 drivers/firmware/Kconfig       | 7 ++++++-
 drivers/sysreset/Kconfig       | 1 +
 6 files changed, 13 insertions(+), 4 deletions(-)

Comments

Lokesh Vutla July 17, 2019, 4:33 a.m. UTC | #1
On 17/07/19 12:59 AM, Simon Goldschmidt wrote:
> This adds separate kconfig options for drivers/sysreset and
> drivers/firmware.
> 
> Up to now, CONFIG_SPL_DRIVERS_MISC_SUPPORT added drivers/misc to SPL
> build but also added drivers/firmware and drivers/sysreset at the same
> time.
> 
> Since that is confusing, this patch uses CONFIG_SPL_SYSRESET for
> drivers/sysreset and adds CONFIG_SPL_FIRMWARE for
> drivers/firmware (and accordingly for the TPL options).
> 
> CONFIG_SPL_DRIVERS_MISC_SUPPORT stays for including drivers/misc into
> the SPL build (and accordingly for TPL) since there are boards using
> non-DM (non UCLASS_MISC) files from drivers/misc. Such boards don't
> have CONFIG_SPL_MISC enabled, so cannot use this to include
> drivers/misc into the SPL build.
> 
> Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>

Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>

Thanks and regards,
Lokesh
Marek Vasut July 21, 2019, 10:47 a.m. UTC | #2
On 7/16/19 9:29 PM, Simon Goldschmidt wrote:
> This adds separate kconfig options for drivers/sysreset and
> drivers/firmware.
> 
> Up to now, CONFIG_SPL_DRIVERS_MISC_SUPPORT added drivers/misc to SPL
> build but also added drivers/firmware and drivers/sysreset at the same
> time.
> 
> Since that is confusing, this patch uses CONFIG_SPL_SYSRESET for
> drivers/sysreset and adds CONFIG_SPL_FIRMWARE for
> drivers/firmware (and accordingly for the TPL options).
> 
> CONFIG_SPL_DRIVERS_MISC_SUPPORT stays for including drivers/misc into
> the SPL build (and accordingly for TPL) since there are boards using
> non-DM (non UCLASS_MISC) files from drivers/misc. Such boards don't
> have CONFIG_SPL_MISC enabled, so cannot use this to include
> drivers/misc into the SPL build.
> 
> Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>

Applied, thanks.

Patch
diff mbox series

diff --git a/configs/evb-rk3036_defconfig b/configs/evb-rk3036_defconfig
index 5e6bb54551..0eb7384340 100644
--- a/configs/evb-rk3036_defconfig
+++ b/configs/evb-rk3036_defconfig
@@ -47,6 +47,7 @@  CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=20000000
 CONFIG_PINCTRL=y
 # CONFIG_SPL_DM_SERIAL is not set
+# CONFIG_SPL_SYSRESET is not set
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYSRESET=y
 CONFIG_USB=y
diff --git a/configs/kylin-rk3036_defconfig b/configs/kylin-rk3036_defconfig
index 921af0d476..a76ae9d326 100644
--- a/configs/kylin-rk3036_defconfig
+++ b/configs/kylin-rk3036_defconfig
@@ -49,6 +49,7 @@  CONFIG_SF_DEFAULT_SPEED=20000000
 CONFIG_PINCTRL=y
 CONFIG_DM_REGULATOR_FIXED=y
 # CONFIG_SPL_DM_SERIAL is not set
+# CONFIG_SPL_SYSRESET is not set
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYSRESET=y
 CONFIG_USB=y
diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig
index 27034cfaa9..5b7dae9be6 100644
--- a/configs/sandbox_spl_defconfig
+++ b/configs/sandbox_spl_defconfig
@@ -3,6 +3,7 @@  CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
+CONFIG_SPL_FIRMWARE=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
 CONFIG_BOOTSTAGE_STASH_ADDR=0x0
diff --git a/drivers/Makefile b/drivers/Makefile
index 603aa98590..41933605ce 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -4,7 +4,9 @@  obj-$(CONFIG_$(SPL_TPL_)CLK) += clk/
 obj-$(CONFIG_$(SPL_TPL_)DM) += core/
 obj-$(CONFIG_$(SPL_TPL_)DFU) += dfu/
 obj-$(CONFIG_$(SPL_TPL_)GPIO_SUPPORT) += gpio/
-obj-$(CONFIG_$(SPL_TPL_)DRIVERS_MISC_SUPPORT) += misc/ sysreset/ firmware/
+obj-$(CONFIG_$(SPL_TPL_)DRIVERS_MISC_SUPPORT) += misc/
+obj-$(CONFIG_$(SPL_TPL_)SYSRESET) += sysreset/
+obj-$(CONFIG_$(SPL_TPL_)FIRMWARE) +=firmware/
 obj-$(CONFIG_$(SPL_TPL_)I2C_SUPPORT) += i2c/
 obj-$(CONFIG_$(SPL_TPL_)INPUT) += input/
 obj-$(CONFIG_$(SPL_TPL_)LED) += led/
@@ -81,7 +83,6 @@  obj-y += cache/
 obj-$(CONFIG_CPU) += cpu/
 obj-y += crypto/
 obj-$(CONFIG_FASTBOOT) += fastboot/
-obj-y += firmware/
 obj-$(CONFIG_FPGA) += fpga/
 obj-y += misc/
 obj-$(CONFIG_MMC) += mmc/
@@ -96,7 +97,6 @@  obj-y += rtc/
 obj-y += scsi/
 obj-y += sound/
 obj-y += spmi/
-obj-y += sysreset/
 obj-y += video/
 obj-y += watchdog/
 obj-$(CONFIG_QE) += qe/
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 7d8f161b26..873bc8c796 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -1,9 +1,13 @@ 
 config FIRMWARE
 	bool "Enable Firmware driver support"
 
+config SPL_FIRMWARE
+	bool "Enable Firmware driver support in SPL"
+	depends on FIRMWARE
+
 config SPL_ARM_PSCI_FW
 	bool
-	select FIRMWARE
+	select SPL_FIRMWARE
 
 config ARM_PSCI_FW
 	bool
@@ -13,6 +17,7 @@  config TI_SCI_PROTOCOL
 	tristate "TI System Control Interface (TISCI) Message Protocol"
 	depends on K3_SEC_PROXY
 	select FIRMWARE
+	select SPL_FIRMWARE if SPL
 	help
 	  TI System Control Interface (TISCI) Message Protocol is used to manage
 	  compute systems such as ARM, DSP etc with the system controller in
diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
index 30aed2c4c1..a69b74cee2 100644
--- a/drivers/sysreset/Kconfig
+++ b/drivers/sysreset/Kconfig
@@ -50,6 +50,7 @@  config SYSRESET_MICROBLAZE
 config SYSRESET_PSCI
 	bool "Enable support for PSCI System Reset"
 	depends on ARM_PSCI_FW
+	select SPL_ARM_PSCI_FW if SPL
 	help
 	  Enable PSCI SYSTEM_RESET function call.  To use this, PSCI firmware
 	  must be running on your system.