mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 21:51:31 +00:00
stm32mp1: dynamically detect op-tee presence
Activate OP-TEE driver for trusted and optee defconfig. This driver allows detection of TEE presence for boot from flash; CONFIG_STM32MP1_OPTEE is also removed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
This commit is contained in:
parent
4a1b975dac
commit
43df0a159d
7 changed files with 15 additions and 20 deletions
|
@ -86,16 +86,6 @@ config TARGET_DH_STM32MP1_PDK2
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config STM32MP1_OPTEE
|
|
||||||
bool "Support trusted boot with TF-A and OP-TEE"
|
|
||||||
depends on TFABOOT
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Say Y here to enable boot with TF-A and OP-TEE
|
|
||||||
Trusted boot chain is :
|
|
||||||
BootRom => TF-A.stm32 (clock & DDR) => OP-TEE => U-Boot.stm32
|
|
||||||
OP-TEE monitor provides ST SMC to access to secure resources
|
|
||||||
|
|
||||||
config SYS_TEXT_BASE
|
config SYS_TEXT_BASE
|
||||||
default 0xC0100000
|
default 0xC0100000
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <fdt_support.h>
|
#include <fdt_support.h>
|
||||||
|
#include <tee.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#include <dt-bindings/pinctrl/stm32-pinfunc.h>
|
#include <dt-bindings/pinctrl/stm32-pinfunc.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
@ -322,7 +323,8 @@ int ft_system_setup(void *blob, bd_t *bd)
|
||||||
"st,package", pkg, false);
|
"st,package", pkg, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CONFIG_IS_ENABLED(STM32MP1_OPTEE))
|
if (!CONFIG_IS_ENABLED(OPTEE) ||
|
||||||
|
!tee_find_device(NULL, NULL, NULL, NULL))
|
||||||
stm32_fdt_disable_optee(blob);
|
stm32_fdt_disable_optee(blob);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -116,9 +116,7 @@ int checkboard(void)
|
||||||
const char *fdt_compat;
|
const char *fdt_compat;
|
||||||
int fdt_compat_len;
|
int fdt_compat_len;
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_STM32MP1_OPTEE))
|
if (IS_ENABLED(CONFIG_TFABOOT))
|
||||||
mode = "trusted with OP-TEE";
|
|
||||||
else if (IS_ENABLED(CONFIG_TFABOOT))
|
|
||||||
mode = "trusted";
|
mode = "trusted";
|
||||||
else
|
else
|
||||||
mode = "basic";
|
mode = "basic";
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <env_internal.h>
|
#include <env_internal.h>
|
||||||
#include <mtd.h>
|
#include <mtd.h>
|
||||||
#include <mtd_node.h>
|
#include <mtd_node.h>
|
||||||
|
#include <tee.h>
|
||||||
|
|
||||||
#define MTDPARTS_LEN 256
|
#define MTDPARTS_LEN 256
|
||||||
#define MTDIDS_LEN 128
|
#define MTDIDS_LEN 128
|
||||||
|
@ -49,7 +50,7 @@ static void board_get_mtdparts(const char *dev,
|
||||||
strncat(mtdparts, ",", MTDPARTS_LEN);
|
strncat(mtdparts, ",", MTDPARTS_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CONFIG_IS_ENABLED(STM32MP1_OPTEE) && tee) {
|
if (tee) {
|
||||||
strncat(mtdparts, tee, MTDPARTS_LEN);
|
strncat(mtdparts, tee, MTDPARTS_LEN);
|
||||||
strncat(mtdparts, ",", MTDPARTS_LEN);
|
strncat(mtdparts, ",", MTDPARTS_LEN);
|
||||||
}
|
}
|
||||||
|
@ -72,7 +73,8 @@ void board_mtdparts_default(const char **mtdids, const char **mtdparts)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CONFIG_IS_ENABLED(STM32MP1_OPTEE))
|
if (CONFIG_IS_ENABLED(OPTEE) &&
|
||||||
|
tee_find_device(NULL, NULL, NULL, NULL))
|
||||||
tee = true;
|
tee = true;
|
||||||
|
|
||||||
memset(parts, 0, sizeof(parts));
|
memset(parts, 0, sizeof(parts));
|
||||||
|
|
|
@ -87,9 +87,7 @@ int checkboard(void)
|
||||||
const char *fdt_compat;
|
const char *fdt_compat;
|
||||||
int fdt_compat_len;
|
int fdt_compat_len;
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_STM32MP1_OPTEE))
|
if (IS_ENABLED(CONFIG_TFABOOT))
|
||||||
mode = "trusted with OP-TEE";
|
|
||||||
else if (IS_ENABLED(TFABOOT))
|
|
||||||
mode = "trusted";
|
mode = "trusted";
|
||||||
else
|
else
|
||||||
mode = "basic";
|
mode = "basic";
|
||||||
|
|
|
@ -5,7 +5,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x3000
|
||||||
CONFIG_ENV_OFFSET=0x280000
|
CONFIG_ENV_OFFSET=0x280000
|
||||||
CONFIG_ENV_SECT_SIZE=0x40000
|
CONFIG_ENV_SECT_SIZE=0x40000
|
||||||
CONFIG_TARGET_ST_STM32MP15x=y
|
CONFIG_TARGET_ST_STM32MP15x=y
|
||||||
CONFIG_STM32MP1_OPTEE=y
|
|
||||||
CONFIG_ENV_OFFSET_REDUND=0x2C0000
|
CONFIG_ENV_OFFSET_REDUND=0x2C0000
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_FIT=y
|
CONFIG_FIT=y
|
||||||
|
@ -114,6 +113,9 @@ CONFIG_SPI=y
|
||||||
CONFIG_DM_SPI=y
|
CONFIG_DM_SPI=y
|
||||||
CONFIG_STM32_QSPI=y
|
CONFIG_STM32_QSPI=y
|
||||||
CONFIG_STM32_SPI=y
|
CONFIG_STM32_SPI=y
|
||||||
|
CONFIG_TEE=y
|
||||||
|
CONFIG_OPTEE=y
|
||||||
|
# CONFIG_OPTEE_TA_AVB is not set
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_DM_USB_GADGET=y
|
CONFIG_DM_USB_GADGET=y
|
||||||
|
|
|
@ -110,6 +110,9 @@ CONFIG_SPI=y
|
||||||
CONFIG_DM_SPI=y
|
CONFIG_DM_SPI=y
|
||||||
CONFIG_STM32_QSPI=y
|
CONFIG_STM32_QSPI=y
|
||||||
CONFIG_STM32_SPI=y
|
CONFIG_STM32_SPI=y
|
||||||
|
CONFIG_TEE=y
|
||||||
|
CONFIG_OPTEE=y
|
||||||
|
# CONFIG_OPTEE_TA_AVB is not set
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_DM_USB_GADGET=y
|
CONFIG_DM_USB_GADGET=y
|
||||||
|
|
Loading…
Add table
Reference in a new issue