提交 654706be 编写于 作者: P Patrick Delaunay 提交者: Patrice Chotard

configs: stm32mp1: replace STM32MP1_TRUSTED by TFABOOT

Activate ARCH_SUPPORT_TFABOOT and replace the arch stm32mp
specific config CONFIG_STM32MP1_TRUSTED by the generic CONFIG_TFABOOT
introduced by the commit 535d76a1 ("armv8: layerscape: Add TFABOOT
support").
This config CONFIG_TFABOOT is activated for the trusted boot chain,
when U-Boot is loaded by TF-A.
Signed-off-by: NPatrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: NPatrice Chotard <patrice.chotard@st.com>
上级 de80a247
...@@ -1586,6 +1586,7 @@ config ARCH_STI ...@@ -1586,6 +1586,7 @@ config ARCH_STI
config ARCH_STM32MP config ARCH_STM32MP
bool "Support STMicroelectronics STM32MP Socs with cortex A" bool "Support STMicroelectronics STM32MP Socs with cortex A"
select ARCH_MISC_INIT select ARCH_MISC_INIT
select ARCH_SUPPORT_TFABOOT
select BOARD_LATE_INIT select BOARD_LATE_INIT
select CLK select CLK
select DM select DM
......
...@@ -35,9 +35,10 @@ config ENV_SIZE ...@@ -35,9 +35,10 @@ config ENV_SIZE
config STM32MP15x config STM32MP15x
bool "Support STMicroelectronics STM32MP15x Soc" bool "Support STMicroelectronics STM32MP15x Soc"
select ARCH_SUPPORT_PSCI if !STM32MP1_TRUSTED select ARCH_SUPPORT_PSCI if !TFABOOT
select ARM_SMCCC if TFABOOT
select CPU_V7A select CPU_V7A
select CPU_V7_HAS_NONSEC if !STM32MP1_TRUSTED select CPU_V7_HAS_NONSEC if !TFABOOT
select CPU_V7_HAS_VIRT select CPU_V7_HAS_VIRT
select OF_BOARD_SETUP select OF_BOARD_SETUP
select PINCTRL_STM32 select PINCTRL_STM32
...@@ -45,8 +46,8 @@ config STM32MP15x ...@@ -45,8 +46,8 @@ config STM32MP15x
select STM32_RESET select STM32_RESET
select STM32_SERIAL select STM32_SERIAL
select SYS_ARCH_TIMER select SYS_ARCH_TIMER
imply SYSRESET_PSCI if STM32MP1_TRUSTED imply SYSRESET_PSCI if TFABOOT
imply SYSRESET_SYSCON if !STM32MP1_TRUSTED imply SYSRESET_SYSCON if !TFABOOT
help help
support of STMicroelectronics SOC STM32MP15x family support of STMicroelectronics SOC STM32MP15x family
STM32MP157, STM32MP153 or STM32MP151 STM32MP157, STM32MP153 or STM32MP151
...@@ -83,19 +84,9 @@ config TARGET_DH_STM32MP1_PDK2 ...@@ -83,19 +84,9 @@ config TARGET_DH_STM32MP1_PDK2
endchoice endchoice
config STM32MP1_TRUSTED
bool "Support trusted boot with TF-A"
default y if !SPL
select ARM_SMCCC
help
Say Y here to enable boot with TF-A
Trusted boot chain is :
BootRom => TF-A.stm32 (clock & DDR) => U-Boot.stm32
TF-A monitor provides proprietary SMC to manage secure devices
config STM32MP1_OPTEE config STM32MP1_OPTEE
bool "Support trusted boot with TF-A and OP-TEE" bool "Support trusted boot with TF-A and OP-TEE"
depends on STM32MP1_TRUSTED depends on TFABOOT
default n default n
help help
Say Y here to enable boot with TF-A and OP-TEE Say Y here to enable boot with TF-A and OP-TEE
......
...@@ -68,7 +68,7 @@ static bool bsec_read_lock(u32 address, u32 otp) ...@@ -68,7 +68,7 @@ static bool bsec_read_lock(u32 address, u32 otp)
return !!(readl(address + bank) & bit); return !!(readl(address + bank) & bit);
} }
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
/** /**
* bsec_check_error() - Check status of one otp * bsec_check_error() - Check status of one otp
* @base: base address of bsec IP * @base: base address of bsec IP
...@@ -273,7 +273,7 @@ static int bsec_program_otp(long base, u32 val, u32 otp) ...@@ -273,7 +273,7 @@ static int bsec_program_otp(long base, u32 val, u32 otp)
return ret; return ret;
} }
#endif /* CONFIG_STM32MP1_TRUSTED */ #endif /* CONFIG_TFABOOT */
/* BSEC MISC driver *******************************************************/ /* BSEC MISC driver *******************************************************/
struct stm32mp_bsec_platdata { struct stm32mp_bsec_platdata {
...@@ -282,7 +282,7 @@ struct stm32mp_bsec_platdata { ...@@ -282,7 +282,7 @@ struct stm32mp_bsec_platdata {
static int stm32mp_bsec_read_otp(struct udevice *dev, u32 *val, u32 otp) static int stm32mp_bsec_read_otp(struct udevice *dev, u32 *val, u32 otp)
{ {
#ifdef CONFIG_STM32MP1_TRUSTED #ifdef CONFIG_TFABOOT
return stm32_smc(STM32_SMC_BSEC, return stm32_smc(STM32_SMC_BSEC,
STM32_SMC_READ_OTP, STM32_SMC_READ_OTP,
otp, 0, val); otp, 0, val);
...@@ -313,7 +313,7 @@ static int stm32mp_bsec_read_otp(struct udevice *dev, u32 *val, u32 otp) ...@@ -313,7 +313,7 @@ static int stm32mp_bsec_read_otp(struct udevice *dev, u32 *val, u32 otp)
static int stm32mp_bsec_read_shadow(struct udevice *dev, u32 *val, u32 otp) static int stm32mp_bsec_read_shadow(struct udevice *dev, u32 *val, u32 otp)
{ {
#ifdef CONFIG_STM32MP1_TRUSTED #ifdef CONFIG_TFABOOT
return stm32_smc(STM32_SMC_BSEC, return stm32_smc(STM32_SMC_BSEC,
STM32_SMC_READ_SHADOW, STM32_SMC_READ_SHADOW,
otp, 0, val); otp, 0, val);
...@@ -336,7 +336,7 @@ static int stm32mp_bsec_read_lock(struct udevice *dev, u32 *val, u32 otp) ...@@ -336,7 +336,7 @@ static int stm32mp_bsec_read_lock(struct udevice *dev, u32 *val, u32 otp)
static int stm32mp_bsec_write_otp(struct udevice *dev, u32 val, u32 otp) static int stm32mp_bsec_write_otp(struct udevice *dev, u32 val, u32 otp)
{ {
#ifdef CONFIG_STM32MP1_TRUSTED #ifdef CONFIG_TFABOOT
return stm32_smc_exec(STM32_SMC_BSEC, return stm32_smc_exec(STM32_SMC_BSEC,
STM32_SMC_PROG_OTP, STM32_SMC_PROG_OTP,
otp, val); otp, val);
...@@ -349,7 +349,7 @@ static int stm32mp_bsec_write_otp(struct udevice *dev, u32 val, u32 otp) ...@@ -349,7 +349,7 @@ static int stm32mp_bsec_write_otp(struct udevice *dev, u32 val, u32 otp)
static int stm32mp_bsec_write_shadow(struct udevice *dev, u32 val, u32 otp) static int stm32mp_bsec_write_shadow(struct udevice *dev, u32 val, u32 otp)
{ {
#ifdef CONFIG_STM32MP1_TRUSTED #ifdef CONFIG_TFABOOT
return stm32_smc_exec(STM32_SMC_BSEC, return stm32_smc_exec(STM32_SMC_BSEC,
STM32_SMC_WRITE_SHADOW, STM32_SMC_WRITE_SHADOW,
otp, val); otp, val);
...@@ -362,7 +362,7 @@ static int stm32mp_bsec_write_shadow(struct udevice *dev, u32 val, u32 otp) ...@@ -362,7 +362,7 @@ static int stm32mp_bsec_write_shadow(struct udevice *dev, u32 val, u32 otp)
static int stm32mp_bsec_write_lock(struct udevice *dev, u32 val, u32 otp) static int stm32mp_bsec_write_lock(struct udevice *dev, u32 val, u32 otp)
{ {
#ifdef CONFIG_STM32MP1_TRUSTED #ifdef CONFIG_TFABOOT
if (val == 1) if (val == 1)
return stm32_smc_exec(STM32_SMC_BSEC, return stm32_smc_exec(STM32_SMC_BSEC,
STM32_SMC_WRLOCK_OTP, STM32_SMC_WRLOCK_OTP,
...@@ -473,7 +473,7 @@ static int stm32mp_bsec_ofdata_to_platdata(struct udevice *dev) ...@@ -473,7 +473,7 @@ static int stm32mp_bsec_ofdata_to_platdata(struct udevice *dev)
return 0; return 0;
} }
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
static int stm32mp_bsec_probe(struct udevice *dev) static int stm32mp_bsec_probe(struct udevice *dev)
{ {
int otp; int otp;
...@@ -500,7 +500,7 @@ U_BOOT_DRIVER(stm32mp_bsec) = { ...@@ -500,7 +500,7 @@ U_BOOT_DRIVER(stm32mp_bsec) = {
.ofdata_to_platdata = stm32mp_bsec_ofdata_to_platdata, .ofdata_to_platdata = stm32mp_bsec_ofdata_to_platdata,
.platdata_auto_alloc_size = sizeof(struct stm32mp_bsec_platdata), .platdata_auto_alloc_size = sizeof(struct stm32mp_bsec_platdata),
.ops = &stm32mp_bsec_ops, .ops = &stm32mp_bsec_ops,
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
.probe = stm32mp_bsec_probe, .probe = stm32mp_bsec_probe,
#endif #endif
}; };
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
#define PKG_MASK GENMASK(2, 0) #define PKG_MASK GENMASK(2, 0)
#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) #if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
static void security_init(void) static void security_init(void)
{ {
/* Disable the backup domain write protection */ /* Disable the backup domain write protection */
...@@ -136,7 +136,7 @@ static void security_init(void) ...@@ -136,7 +136,7 @@ static void security_init(void)
writel(BIT(0), RCC_MP_AHB5ENSETR); writel(BIT(0), RCC_MP_AHB5ENSETR);
writel(0x0, GPIOZ_SECCFGR); writel(0x0, GPIOZ_SECCFGR);
} }
#endif /* CONFIG_STM32MP1_TRUSTED */ #endif /* CONFIG_TFABOOT */
/* /*
* Debug init * Debug init
...@@ -150,7 +150,7 @@ static void dbgmcu_init(void) ...@@ -150,7 +150,7 @@ static void dbgmcu_init(void)
} }
#endif /* !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) */ #endif /* !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) */
#if !defined(CONFIG_STM32MP1_TRUSTED) && \ #if !defined(CONFIG_TFABOOT) && \
(!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)) (!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD))
/* get bootmode from ROM code boot context: saved in TAMP register */ /* get bootmode from ROM code boot context: saved in TAMP register */
static void update_bootmode(void) static void update_bootmode(void)
...@@ -198,7 +198,7 @@ int arch_cpu_init(void) ...@@ -198,7 +198,7 @@ int arch_cpu_init(void)
#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) #if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
dbgmcu_init(); dbgmcu_init();
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
security_init(); security_init();
update_bootmode(); update_bootmode();
#endif #endif
...@@ -214,7 +214,7 @@ int arch_cpu_init(void) ...@@ -214,7 +214,7 @@ int arch_cpu_init(void)
if ((boot_mode & TAMP_BOOT_DEVICE_MASK) == BOOT_SERIAL_UART) if ((boot_mode & TAMP_BOOT_DEVICE_MASK) == BOOT_SERIAL_UART)
gd->flags |= GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE; gd->flags |= GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE;
#if defined(CONFIG_DEBUG_UART) && \ #if defined(CONFIG_DEBUG_UART) && \
!defined(CONFIG_STM32MP1_TRUSTED) && \ !defined(CONFIG_TFABOOT) && \
(!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)) (!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD))
else else
debug_uart_init(); debug_uart_init();
......
...@@ -118,7 +118,7 @@ int checkboard(void) ...@@ -118,7 +118,7 @@ int checkboard(void)
if (IS_ENABLED(CONFIG_STM32MP1_OPTEE)) if (IS_ENABLED(CONFIG_STM32MP1_OPTEE))
mode = "trusted with OP-TEE"; mode = "trusted with OP-TEE";
else if (IS_ENABLED(CONFIG_STM32MP1_TRUSTED)) else if (IS_ENABLED(CONFIG_TFABOOT))
mode = "trusted"; mode = "trusted";
else else
mode = "basic"; mode = "basic";
...@@ -283,7 +283,7 @@ static void __maybe_unused led_error_blink(u32 nb_blink) ...@@ -283,7 +283,7 @@ static void __maybe_unused led_error_blink(u32 nb_blink)
static void sysconf_init(void) static void sysconf_init(void)
{ {
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
u8 *syscfg; u8 *syscfg;
#ifdef CONFIG_DM_REGULATOR #ifdef CONFIG_DM_REGULATOR
struct udevice *pwr_dev; struct udevice *pwr_dev;
......
...@@ -92,7 +92,7 @@ int checkboard(void) ...@@ -92,7 +92,7 @@ int checkboard(void)
if (IS_ENABLED(CONFIG_STM32MP1_OPTEE)) if (IS_ENABLED(CONFIG_STM32MP1_OPTEE))
mode = "trusted with OP-TEE"; mode = "trusted with OP-TEE";
else if (IS_ENABLED(CONFIG_STM32MP1_TRUSTED)) else if (IS_ENABLED(TFABOOT))
mode = "trusted"; mode = "trusted";
else else
mode = "basic"; mode = "basic";
...@@ -462,7 +462,7 @@ static int board_check_usb_power(void) ...@@ -462,7 +462,7 @@ static int board_check_usb_power(void)
static void sysconf_init(void) static void sysconf_init(void)
{ {
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
u8 *syscfg; u8 *syscfg;
#ifdef CONFIG_DM_REGULATOR #ifdef CONFIG_DM_REGULATOR
struct udevice *pwr_dev; struct udevice *pwr_dev;
......
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_ARCH_STM32MP=y CONFIG_ARCH_STM32MP=y
CONFIG_TFABOOT=y
CONFIG_SYS_MALLOC_F_LEN=0x3000 CONFIG_SYS_MALLOC_F_LEN=0x3000
CONFIG_ENV_SECT_SIZE=0x40000 CONFIG_ENV_SECT_SIZE=0x40000
CONFIG_ENV_OFFSET=0x280000 CONFIG_ENV_OFFSET=0x280000
......
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_ARCH_STM32MP=y CONFIG_ARCH_STM32MP=y
CONFIG_TFABOOT=y
CONFIG_SYS_MALLOC_F_LEN=0x3000 CONFIG_SYS_MALLOC_F_LEN=0x3000
CONFIG_ENV_SECT_SIZE=0x40000 CONFIG_ENV_SECT_SIZE=0x40000
CONFIG_ENV_OFFSET=0x280000 CONFIG_ENV_OFFSET=0x280000
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) #if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
/* activate clock tree initialization in the driver */ /* activate clock tree initialization in the driver */
#define STM32MP1_CLOCK_TREE_INIT #define STM32MP1_CLOCK_TREE_INIT
......
...@@ -177,7 +177,7 @@ static int stm32mp1_ddr_probe(struct udevice *dev) ...@@ -177,7 +177,7 @@ static int stm32mp1_ddr_probe(struct udevice *dev)
priv->info.base = STM32_DDR_BASE; priv->info.base = STM32_DDR_BASE;
#if !defined(CONFIG_STM32MP1_TRUSTED) && \ #if !defined(CONFIG_TFABOOT) && \
(!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)) (!defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD))
priv->info.size = 0; priv->info.size = 0;
return stm32mp1_ddr_setup(dev); return stm32mp1_ddr_setup(dev);
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <linux/sizes.h> #include <linux/sizes.h>
#include <asm/arch/stm32.h> #include <asm/arch/stm32.h>
#ifndef CONFIG_STM32MP1_TRUSTED #ifndef CONFIG_TFABOOT
/* PSCI support */ /* PSCI support */
#define CONFIG_ARMV7_PSCI_1_0 #define CONFIG_ARMV7_PSCI_1_0
#define CONFIG_ARMV7_SECURE_BASE STM32_SYSRAM_BASE #define CONFIG_ARMV7_SECURE_BASE STM32_SYSRAM_BASE
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册