MLK-16753-8 imx: mx6ul/ull: add optee support
authorPeng Fan <peng.fan@nxp.com>
Fri, 10 Nov 2017 05:29:49 +0000 (13:29 +0800)
committerYe Li <ye.li@nxp.com>
Thu, 29 Apr 2021 07:56:06 +0000 (00:56 -0700)
Add different defconfigs.
Enable Trustzone.
Update env to runtime boot OP-TEE.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit af4e26c34e091994615ec721bc357b45e43c89e9)
(cherry picked from commit cd8397e9c973ac31766adf9565b2af18db9f9606)
(cherry picked from commit 79e2e2fbe7ddf376619efb43c4b4e6c4285a6f5c)
(cherry picked from commit 65fd479c23fa3d36d54c1853e3e2645ebcc56e96)
(cherry picked from commit df85fa7f7517b61852a9441db361015e4bf86cb6)
(cherry picked from commit 7b33b260cf77d37a906dcf1ca974c2f9ac7077fb)

board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
board/freescale/mx6ullevk/imximage.cfg
board/freescale/mx6ullevk/imximage_lpddr2.cfg
board/freescale/mx6ullevk/mx6ullevk.c
board/freescale/mx6ullevk/plugin.S
configs/mx6ul_14x14_evk_optee_defconfig [new file with mode: 0644]
configs/mx6ul_9x9_evk_optee_defconfig [new file with mode: 0644]
configs/mx6ull_14x14_evk_optee_defconfig [new file with mode: 0644]
include/configs/mx6ul_14x14_evk.h
include/configs/mx6ullevk.h

index d21f3a0..221a1ba 100644 (file)
@@ -402,6 +402,11 @@ int board_late_init(void)
        add_board_boot_modes(board_boot_modes);
 #endif
 
+       env_set("tee", "no");
+#ifdef CONFIG_IMX_OPTEE
+       env_set("tee", "yes");
+#endif
+
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
        env_set("board_name", "EVK");
 
index 1555039..11db2ce 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  *
  * Refer doc/imx/mkimage/imximage.txt for more details about how-to configure
  * and create imximage boot image
@@ -58,6 +59,11 @@ DATA 4 0x020c4078 0xffffffff
 DATA 4 0x020c407c 0xffffffff
 DATA 4 0x020c4080 0xffffffff
 
+#ifdef CONFIG_IMX_OPTEE
+DATA 4 0x20e4024 0x00000001
+CHECK_BITS_SET 4 0x20e4024 0x1
+#endif
+
 DATA 4 0x020E04B4 0x000C0000
 DATA 4 0x020E04AC 0x00000000
 DATA 4 0x020E027C 0x00000030
index 870236d..bceec04 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  *
  * SPDX-License-Identifier:    GPL-2.0+
  *
@@ -58,6 +59,11 @@ DATA 4 0x020c4078 0xffffffff
 DATA 4 0x020c407c 0xffffffff
 DATA 4 0x020c4080 0xffffffff
 
+#ifdef CONFIG_IMX_OPTEE
+DATA 4 0x20e4024 0x00000001
+CHECK_BITS_SET 4 0x20e4024 0x1
+#endif
+
 DATA 4 0x020E04B4 0x00080000
 DATA 4 0x020E04AC 0x00000000
 DATA 4 0x020E027C 0x00000030
index e5587b0..d0b7071 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  */
 
 #include <init.h>
@@ -325,6 +326,11 @@ int board_late_init(void)
        add_board_boot_modes(board_boot_modes);
 #endif
 
+       env_set("tee", "no");
+#ifdef CONFIG_IMX_OPTEE
+       env_set("tee", "yes");
+#endif
+
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
        env_set("board_name", "EVK");
 
index 2adc1bf..812088d 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  */
 
 #include <config.h>
        str r1, [r0, #0x78]
        str r1, [r0, #0x7C]
        str r1, [r0, #0x80]
+
+#ifdef CONFIG_IMX_OPTEE
+       ldr r0, =0x20e4024
+       ldr r1, =0x1
+       str r1, [r0]
+#endif
 .endm
 
 .macro imx6_qos_setting
diff --git a/configs/mx6ul_14x14_evk_optee_defconfig b/configs/mx6ul_14x14_evk_optee_defconfig
new file mode 100644 (file)
index 0000000..c6ed745
--- /dev/null
@@ -0,0 +1,90 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_MEMTEST_START=0x80000000
+CONFIG_SYS_MEMTEST_END=0x88000000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_ENV_OFFSET=0xE0000
+CONFIG_MX6UL=y
+CONFIG_TARGET_MX6UL_14X14_EVK=y
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk"
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage.cfg"
+CONFIG_IMX_OPTEE=y
+CONFIG_BOOTDELAY=3
+# CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_NET=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SYS_MMC_ENV_DEV=1
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_DM_74X164=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SF_DEFAULT_SPEED=40000000
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ8XXX=y
+CONFIG_DM_ETH=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_MXC_UART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_QSPI=y
+CONFIG_SOFT_SPI=y
+CONFIG_IMX_THERMAL=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="FSL"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0525
+CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
+CONFIG_CI_UDC=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_VIDEO_BMP_RLE8=y
+CONFIG_BMP_16BPP=y
diff --git a/configs/mx6ul_9x9_evk_optee_defconfig b/configs/mx6ul_9x9_evk_optee_defconfig
new file mode 100644 (file)
index 0000000..dda18f1
--- /dev/null
@@ -0,0 +1,85 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_MEMTEST_START=0x80000000
+CONFIG_SYS_MEMTEST_END=0x88000000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_ENV_OFFSET=0xE0000
+CONFIG_MX6UL=y
+CONFIG_TARGET_MX6UL_9X9_EVK=y
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ul-9x9-evk"
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage_lpddr2.cfg"
+CONFIG_IMX_OPTEE=y
+CONFIG_BOOTDELAY=3
+# CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_NET=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SYS_MMC_ENV_DEV=1
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_DM_74X164=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SF_DEFAULT_SPEED=40000000
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ8XXX=y
+CONFIG_DM_ETH=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+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_MXC_UART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_QSPI=y
+CONFIG_SOFT_SPI=y
+CONFIG_IMX_THERMAL=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_VIDEO_BMP_RLE8=y
+CONFIG_BMP_16BPP=y
diff --git a/configs/mx6ull_14x14_evk_optee_defconfig b/configs/mx6ull_14x14_evk_optee_defconfig
new file mode 100644 (file)
index 0000000..44a352d
--- /dev/null
@@ -0,0 +1,76 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_MEMTEST_START=0x80000000
+CONFIG_SYS_MEMTEST_END=0x88000000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_ENV_OFFSET=0xE0000
+CONFIG_MX6ULL=y
+CONFIG_TARGET_MX6ULL_14X14_EVK=y
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk"
+CONFIG_BOOTDELAY=3
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"
+CONFIG_IMX_OPTEE=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_NET=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SYS_MMC_ENV_DEV=1
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_DM_74X164=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SF_DEFAULT_SPEED=40000000
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ8XXX=y
+CONFIG_DM_ETH=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_MXC_UART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_SOFT_SPI=y
+CONFIG_FSL_QSPI=y
+CONFIG_IMX_THERMAL=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
index 47a155a..be38bf4 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  *
  * Configuration settings for the Freescale i.MX6UL 14x14 EVK board.
  */
@@ -60,7 +61,7 @@
 #define CONFIG_SYS_MMC_IMG_LOAD_PART   1
 
 #ifdef CONFIG_NAND_BOOT
-#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
+#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),16m(tee),-(rootfs) "
 #else
 #define MFG_NAND_PARTITION ""
 #endif
                "\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}; " \
+               "fi;\0"
 
 #if defined(CONFIG_NAND_BOOT)
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_MFG_ENV_SETTINGS \
+       TEE_ENV \
        "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
        "videomode=video=ctfb:x:480,y:272,depth:24,pclk:108695,le:8,ri:4,up:2,lo:4,hs:41,vs:10,sync:0,vmode:0\0" \
        "fdt_addr=0x83000000\0" \
        "fdt_high=0xffffffff\0"   \
+       "tee_addr=0x84000000\0" \
        "console=ttymxc0\0" \
        "bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
                "root=ubi0:rootfs rootfstype=ubifs "                 \
                BOOTARGS_CMA_SIZE \
-               "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
+               MFG_NAND_PARTITION \
+               "\0" \
        "bootcmd=nand read ${loadaddr} 0x4000000 0xc00000;"\
                "nand read ${fdt_addr} 0x5000000 0x100000;"\
-               "bootz ${loadaddr} - ${fdt_addr}\0"
+               "if test ${tee} = yes; then " \
+                       "nand read ${tee_addr} 0x6000000 0x400000;"\
+                       "bootm ${tee_addr} - ${fdt_addr};" \
+               "else " \
+                       "bootz ${loadaddr} - ${fdt_addr};" \
+               "fi\0"
 
 #else
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_MFG_ENV_SETTINGS \
+       TEE_ENV \
        "script=boot.scr\0" \
        "image=zImage\0" \
        "console=ttymxc0\0" \
        "initrd_high=0xffffffff\0" \
        "fdt_file=undefined\0" \
        "fdt_addr=0x83000000\0" \
+       "tee_addr=0x84000000\0" \
+       "tee_file=undefined\0" \
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
                "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} " \
                BOOTARGS_CMA_SIZE \
                        "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" \
+               "findtee="\
+                       "if test $tee_file = undefined; then " \
+                               "if test $board_name = EVK && test $board_rev = 9X9; then " \
+                                       "setenv tee_file uTee-6ul9x9evk; fi; " \
+                               "if test $board_name = EVK && test $board_rev = 14X14; then " \
+                                       "setenv tee_file uTee-6ulevk; fi; " \
+                               "if test $fdt_file = undefined; then " \
+                                       "echo WARNING: Could not determine tee to use; fi; " \
+                       "fi;\0" \
                "findfdt="\
                        "if test $fdt_file = undefined; then " \
                                "if test $board_name = EVK && test $board_rev = 9X9; then " \
                                "if test $board_name = EVK && test $board_rev = 14X14; then " \
                                        "setenv fdt_file imx6ul-14x14-evk.dtb; fi; " \
                                "if test $fdt_file = undefined; then " \
-                                       "echo WARNING: Could not determine dtb to use; fi; " \
+                                       "echo WARNING: Could not determine dtb to use; " \
+                               "fi; " \
                        "fi;\0" \
 
 #define CONFIG_BOOTCOMMAND \
           "run findfdt;" \
+          "run findtee;" \
           "mmc dev ${mmcdev};" \
           "mmc dev ${mmcdev}; if mmc rescan; then " \
                   "if run loadbootscript; then " \
index 854b283..ae54c1e 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
  *
  * Configuration settings for the Freescale i.MX6UL 14x14 EVK board.
  */
@@ -54,7 +55,7 @@
 #define CONFIG_SYS_MMC_IMG_LOAD_PART   1
 
 #ifdef CONFIG_NAND_BOOT
-#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
+#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),16m(tee),-(rootfs) "
 #else
 #define MFG_NAND_PARTITION ""
 #endif
                "\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}; " \
+               "fi;\0"
 
 #if defined(CONFIG_NAND_BOOT)
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_MFG_ENV_SETTINGS \
+       TEE_ENV \
        "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
        "videomode=video=ctfb:x:480,y:272,depth:24,pclk:108695,le:8,ri:4,up:2,lo:4,hs:41,vs:10,sync:0,vmode:0\0" \
        "fdt_addr=0x83000000\0" \
        "fdt_high=0xffffffff\0"   \
+       "tee_addr=0x84000000\0" \
        "console=ttymxc0\0" \
        "bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
                "root=ubi0:rootfs rootfstype=ubifs "                 \
                BOOTARGS_CMA_SIZE \
-               "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
+               MFG_NAND_PARTITION \
+               "\0" \
        "bootcmd=nand read ${loadaddr} 0x4000000 0xc00000;"\
                "nand read ${fdt_addr} 0x5000000 0x100000;"\
-               "bootz ${loadaddr} - ${fdt_addr}\0"
+               "if test ${tee} = yes; then " \
+                       "nand read ${tee_addr} 0x6000000 0x400000;"\
+                       "bootm ${tee_addr} - ${fdt_addr};" \
+               "else " \
+                       "bootz ${loadaddr} - ${fdt_addr};" \
+               "fi\0"
 
 #else
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_MFG_ENV_SETTINGS \
+       TEE_ENV \
        "script=boot.scr\0" \
        "image=zImage\0" \
        "console=ttymxc0\0" \
        "initrd_high=0xffffffff\0" \
        "fdt_file=undefined\0" \
        "fdt_addr=0x83000000\0" \
+       "tee_addr=0x84000000\0" \
+       "tee_file=uTee-6ullevk\0" \
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
        "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
                "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} " \
                BOOTARGS_CMA_SIZE \
                        "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" \
                "findfdt="\
                        "if test $fdt_file = undefined; then " \
 
 #define CONFIG_BOOTCOMMAND \
           "run findfdt;" \
+          "run findtee;" \
           "mmc dev ${mmcdev};" \
           "mmc dev ${mmcdev}; if mmc rescan; then " \
                   "if run loadbootscript; then " \