[PATCH] scmi: Rework SCMI_FIRMWARE implementation
Tom Rini
trini at konsulko.com
Tue Mar 17 02:24:14 CET 2026
As exposed by "make randconfig", how we have SCMI_FIRMWARE today is
incomplete, and in one case, used incorrectly. First, SCMI_FIRMWARE has
a build-time dependency on OF_CONTROL being enabled, so add that.
Second, RESET_SCMI depends on SCMI_FIRMWARE being enabled, it should not
select that symbol. In turn, a number of platforms need to now enable
SCMI_FIRMWARE explicitly and not rely on RESET_SCMI to enable it for
them.
Signed-off-by: Tom Rini <trini at konsulko.com>
---
Cc: Marek Vasut <marek.vasut+renesas at mailbox.org>
Cc: Michal Simek <michal.simek at amd.com>
Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
Cc: Patrice Chotard <patrice.chotard at foss.st.com>
Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
Cc: Peng Fan <peng.fan at nxp.com>
Cc: Simon Glass <sjg at chromium.org>
Cc: uboot-stm32 at st-md-mailman.stormreply.com
---
configs/amd_versal2_virt_defconfig | 1 +
configs/r8a78000_ironhide_defconfig | 1 +
configs/sandbox_defconfig | 1 +
configs/stm32mp13_defconfig | 1 +
configs/stm32mp15-odyssey_defconfig | 1 +
configs/stm32mp15_defconfig | 1 +
configs/stm32mp15_trusted_defconfig | 1 +
configs/stm32mp21_defconfig | 1 +
configs/stm32mp23_defconfig | 1 +
configs/stm32mp25_defconfig | 1 +
drivers/firmware/scmi/Kconfig | 1 +
drivers/reset/Kconfig | 2 +-
12 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/configs/amd_versal2_virt_defconfig b/configs/amd_versal2_virt_defconfig
index 94dce5c191c4..8cc210946539 100644
--- a/configs/amd_versal2_virt_defconfig
+++ b/configs/amd_versal2_virt_defconfig
@@ -80,6 +80,7 @@ CONFIG_CLK_SCMI=y
CONFIG_CLK_VERSAL=y
CONFIG_DFU_RAM=y
CONFIG_ARM_FFA_TRANSPORT=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_FPGA_XILINX=y
CONFIG_FPGA_VERSALPL=y
CONFIG_DM_I2C=y
diff --git a/configs/r8a78000_ironhide_defconfig b/configs/r8a78000_ironhide_defconfig
index 180704e75af8..64e2c278a7e0 100644
--- a/configs/r8a78000_ironhide_defconfig
+++ b/configs/r8a78000_ironhide_defconfig
@@ -29,6 +29,7 @@ CONFIG_FIRMWARE=y
CONFIG_NR_DRAM_BANKS=16
CONFIG_POWER_DOMAIN=y
CONFIG_RCAR_MFIS_MBOX=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_RESET_SCMI=y
CONFIG_SCMI_AGENT_MAILBOX=y
CONFIG_SCMI_FIRMWARE=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 36bf37827e91..b681b91c3f99 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -209,6 +209,7 @@ CONFIG_SANDBOX_DMA=y
CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
CONFIG_ARM_FFA_TRANSPORT=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_FPGA_ALTERA=y
CONFIG_FPGA_STRATIX_II=y
CONFIG_FPGA_STRATIX_V=y
diff --git a/configs/stm32mp13_defconfig b/configs/stm32mp13_defconfig
index 6bd139441122..620a6da2efe3 100644
--- a/configs/stm32mp13_defconfig
+++ b/configs/stm32mp13_defconfig
@@ -70,6 +70,7 @@ CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_FASTBOOT_CMD_OEM_PARTCONF=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_STM32F7=y
diff --git a/configs/stm32mp15-odyssey_defconfig b/configs/stm32mp15-odyssey_defconfig
index 868ba1915f71..5d1c01c99fb3 100644
--- a/configs/stm32mp15-odyssey_defconfig
+++ b/configs/stm32mp15-odyssey_defconfig
@@ -86,6 +86,7 @@ CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_NAME="mmc1"
CONFIG_FASTBOOT_CMD_OEM_PARTCONF=y
CONFIG_FASTBOOT_CMD_OEM_BOOTBUS=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
diff --git a/configs/stm32mp15_defconfig b/configs/stm32mp15_defconfig
index af2efc7bceb0..c26602b63b6f 100644
--- a/configs/stm32mp15_defconfig
+++ b/configs/stm32mp15_defconfig
@@ -88,6 +88,7 @@ CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_NAME="mmc1"
CONFIG_FASTBOOT_CMD_OEM_PARTCONF=y
CONFIG_FASTBOOT_CMD_OEM_BOOTBUS=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
diff --git a/configs/stm32mp15_trusted_defconfig b/configs/stm32mp15_trusted_defconfig
index 226d83357843..d7501612a797 100644
--- a/configs/stm32mp15_trusted_defconfig
+++ b/configs/stm32mp15_trusted_defconfig
@@ -89,6 +89,7 @@ CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_NAME="mmc1"
CONFIG_FASTBOOT_CMD_OEM_PARTCONF=y
CONFIG_FASTBOOT_CMD_OEM_BOOTBUS=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
diff --git a/configs/stm32mp21_defconfig b/configs/stm32mp21_defconfig
index 8ad31292579c..6a74a435f8d5 100644
--- a/configs/stm32mp21_defconfig
+++ b/configs/stm32mp21_defconfig
@@ -51,6 +51,7 @@ CONFIG_NO_NET=y
CONFIG_SYS_64BIT_LBA=y
CONFIG_BUTTON=y
CONFIG_BUTTON_GPIO=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_STM32F7=y
diff --git a/configs/stm32mp23_defconfig b/configs/stm32mp23_defconfig
index 49f47becba64..ed6fdd9662ef 100644
--- a/configs/stm32mp23_defconfig
+++ b/configs/stm32mp23_defconfig
@@ -51,6 +51,7 @@ CONFIG_NO_NET=y
CONFIG_SYS_64BIT_LBA=y
CONFIG_BUTTON=y
CONFIG_BUTTON_GPIO=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_STM32F7=y
diff --git a/configs/stm32mp25_defconfig b/configs/stm32mp25_defconfig
index 99b22a68fda6..42335aafeaf3 100644
--- a/configs/stm32mp25_defconfig
+++ b/configs/stm32mp25_defconfig
@@ -58,6 +58,7 @@ CONFIG_NO_NET=y
CONFIG_SYS_64BIT_LBA=y
CONFIG_BUTTON=y
CONFIG_BUTTON_GPIO=y
+CONFIG_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_STM32F7=y
diff --git a/drivers/firmware/scmi/Kconfig b/drivers/firmware/scmi/Kconfig
index 33e089c460ba..cd912ebe4096 100644
--- a/drivers/firmware/scmi/Kconfig
+++ b/drivers/firmware/scmi/Kconfig
@@ -3,6 +3,7 @@ config SCMI_FIRMWARE
select FIRMWARE
select OF_TRANSLATE
depends on SANDBOX || DM_MAILBOX || ARM_SMCCC || OPTEE
+ depends on OF_CONTROL
help
System Control and Management Interface (SCMI) is a communication
protocol that defines standard interfaces for power, performance
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index 2fd91d6299cc..66911199c8ba 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -208,7 +208,7 @@ config RESET_RASPBERRYPI
config RESET_SCMI
bool "Enable SCMI reset domain driver"
- select SCMI_FIRMWARE
+ depends on SCMI_FIRMWARE
help
Enable this option if you want to support reset controller
devices exposed by a SCMI agent based on SCMI reset domain
--
2.43.0
More information about the U-Boot
mailing list