[PATCH] scmi: Rework SCMI_FIRMWARE implementation
Patrice CHOTARD
patrice.chotard at foss.st.com
Tue Mar 17 13:42:20 CET 2026
On 3/17/26 02:24, Tom Rini wrote:
> 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
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list