summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBai Ping <ping.bai@nxp.com>2017-12-04 12:49:13 +0800
committerBai Ping <ping.bai@nxp.com>2017-12-05 15:20:28 +0800
commit3535868b89df84d3e6554114f7867f9ef908ff01 (patch)
treea41756045b917e1ba8dac0bf5f7952d7d70de8e1
parent1f86ee60e72bb56af69a4128e8234e08c9bb1f59 (diff)
MLK-17082-02 imx: add optee support for imx6sl
Add defconfig for tee support; Enable the TZASC support; Add env config for tee support. Signed-off-by: Bai Ping <ping.bai@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
-rw-r--r--board/freescale/mx6slevk/imximage.cfg6
-rw-r--r--board/freescale/mx6slevk/mx6slevk.c5
-rw-r--r--configs/mx6slevk_optee_defconfig48
-rw-r--r--include/configs/mx6slevk.h55
4 files changed, 95 insertions, 19 deletions
diff --git a/board/freescale/mx6slevk/imximage.cfg b/board/freescale/mx6slevk/imximage.cfg
index 4e9229dff8..0fa293e829 100644
--- a/board/freescale/mx6slevk/imximage.cfg
+++ b/board/freescale/mx6slevk/imximage.cfg
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2013-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
*
* SPDX-License-Identifier: GPL-2.0+
*
@@ -53,6 +54,11 @@ DATA 4 0x020c4078 0xffffffff
DATA 4 0x020c407c 0xffffffff
DATA 4 0x020c4080 0xffffffff
+#ifdef CONFIG_IMX_OPTEE
+DATA 4 0x020e0024 0x00000001
+CHECK_BITS_SET 4 0x020e0024 0x1
+#endif
+
DATA 4 0x020e0344 0x00003030
DATA 4 0x020e0348 0x00003030
DATA 4 0x020e034c 0x00003030
diff --git a/board/freescale/mx6slevk/mx6slevk.c b/board/freescale/mx6slevk/mx6slevk.c
index 3c9e07383b..61e1a67424 100644
--- a/board/freescale/mx6slevk/mx6slevk.c
+++ b/board/freescale/mx6slevk/mx6slevk.c
@@ -890,6 +890,11 @@ void i2c_force_reset_slave(void)
int board_late_init(void)
{
+ setenv("tee", "no");
+#ifdef CONFIG_IMX_OPTEE
+ setenv("tee", "yes");
+#endif
+
#ifdef CONFIG_ENV_IS_IN_MMC
board_late_mmc_env_init();
#endif
diff --git a/configs/mx6slevk_optee_defconfig b/configs/mx6slevk_optee_defconfig
new file mode 100644
index 0000000000..7cb483e8f2
--- /dev/null
+++ b/configs/mx6slevk_optee_defconfig
@@ -0,0 +1,48 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6SLEVK=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6slevk/imximage.cfg,MX6SL"
+CONFIG_IMX_OPTEE=y
+CONFIG_BOOTDELAY=3
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_USB=y
+CONFIG_USB_STORAGE=y
+# CONFIG_OF_LIBFDT=y
+
+CONFIG_DEFAULT_DEVICE_TREE="imx6sl-evk"
+CONFIG_OF_CONTROL=y
+# CONFIG_BLK is not set
+CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_DM_ETH=y
+CONFIG_DM_USB=y
diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h
index c623513b01..0e77e053be 100644
--- a/include/configs/mx6slevk.h
+++ b/include/configs/mx6slevk.h
@@ -72,7 +72,11 @@
"\0" \
"initrd_addr=0x83800000\0" \
"initrd_high=0xffffffff\0" \
- "bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
+ "bootcmd_mfg=run mfgtool_args;" \
+ "if test ${tee} = yes; then " \
+ "bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; " \
+ "else " \
+ "bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
#define CONFIG_EXTRA_ENV_SETTINGS \
CONFIG_MFG_ENV_SETTINGS \
@@ -84,6 +88,8 @@
"initrd_high=0xffffffff\0" \
"fdt_file=imx6sl-evk.dtb\0" \
"fdt_addr=0x83000000\0" \
+ "tee_addr=0x84000000\0" \
+ "tee_file=undefined\0" \
"boot_fdt=try\0" \
"ip_dyn=yes\0" \
"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
@@ -98,20 +104,25 @@
"source\0" \
"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+ "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
"mmcboot=echo Booting from mmc ...; " \
"run mmcargs; " \
- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
- "if run loadfdt; then " \
- "bootz ${loadaddr} - ${fdt_addr}; " \
- "else " \
- "if test ${boot_fdt} = try; then " \
- "bootz; " \
+ "if test ${tee} = yes; then " \
+ "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if run loadfdt; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
"else " \
- "echo WARN: Cannot load the DT; " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
"fi; " \
+ "else " \
+ "bootz; " \
"fi; " \
- "else " \
- "bootz; " \
"fi;\0" \
"netargs=setenv bootargs console=${console},${baudrate} " \
"root=/dev/nfs " \
@@ -124,18 +135,24 @@
"setenv get_cmd tftp; " \
"fi; " \
"${get_cmd} ${image}; " \
- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
- "bootz ${loadaddr} - ${fdt_addr}; " \
- "else " \
- "if test ${boot_fdt} = try; then " \
- "bootz; " \
+ "if test ${tee} = yes; then " \
+ "${get_cmd} ${tee_addr} ${tee_file}; " \
+ "${get_cmd} ${fdt_addr} ${fdt_file}; " \
+ "bootm ${tee_addr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
"else " \
- "echo WARN: Cannot load the DT; " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
"fi; " \
+ "else " \
+ "bootz; " \
"fi; " \
- "else " \
- "bootz; " \
"fi;\0"
#define CONFIG_BOOTCOMMAND \