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
					
				|  | @ -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…
	
		Reference in New Issue