Commit 16d4e53618b92f4638284a99402470fc440187fb

Authored by Peng Fan
Committed by Ye Li
1 parent a4a9ecab1e

MLK-16753-8 imx: mx6ul/ull: add optee support

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)

Showing 10 changed files with 360 additions and 46 deletions Side-by-side Diff

board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
... ... @@ -399,6 +399,11 @@
399 399 add_board_boot_modes(board_boot_modes);
400 400 #endif
401 401  
  402 + env_set("tee", "no");
  403 +#ifdef CONFIG_IMX_OPTEE
  404 + env_set("tee", "yes");
  405 +#endif
  406 +
402 407 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
403 408 env_set("board_name", "EVK");
404 409  
board/freescale/mx6ullevk/imximage.cfg
1 1 /* SPDX-License-Identifier: GPL-2.0+ */
2 2 /*
3 3 * Copyright (C) 2016 Freescale Semiconductor, Inc.
  4 + * Copyright 2017 NXP
4 5 *
5 6 * Refer doc/README.imximage for more details about how-to configure
6 7 * and create imximage boot image
... ... @@ -57,6 +58,11 @@
57 58 DATA 4 0x020c4078 0xffffffff
58 59 DATA 4 0x020c407c 0xffffffff
59 60 DATA 4 0x020c4080 0xffffffff
  61 +
  62 +#ifdef CONFIG_IMX_OPTEE
  63 +DATA 4 0x20e4024 0x00000001
  64 +CHECK_BITS_SET 4 0x20e4024 0x1
  65 +#endif
60 66  
61 67 DATA 4 0x020E04B4 0x000C0000
62 68 DATA 4 0x020E04AC 0x00000000
board/freescale/mx6ullevk/imximage_lpddr2.cfg
1 1 /*
2 2 * Copyright (C) 2016 Freescale Semiconductor, Inc.
  3 + * Copyright 2017 NXP
3 4 *
4 5 * SPDX-License-Identifier: GPL-2.0+
5 6 *
... ... @@ -57,6 +58,11 @@
57 58 DATA 4 0x020c4078 0xffffffff
58 59 DATA 4 0x020c407c 0xffffffff
59 60 DATA 4 0x020c4080 0xffffffff
  61 +
  62 +#ifdef CONFIG_IMX_OPTEE
  63 +DATA 4 0x20e4024 0x00000001
  64 +CHECK_BITS_SET 4 0x20e4024 0x1
  65 +#endif
60 66  
61 67 DATA 4 0x020E04B4 0x00080000
62 68 DATA 4 0x020E04AC 0x00000000
board/freescale/mx6ullevk/mx6ullevk.c
1 1 // SPDX-License-Identifier: GPL-2.0+
2 2 /*
3 3 * Copyright (C) 2016 Freescale Semiconductor, Inc.
  4 + * Copyright 2017 NXP
4 5 */
5 6  
6 7 #include <init.h>
... ... @@ -320,6 +321,11 @@
320 321 {
321 322 #ifdef CONFIG_CMD_BMODE
322 323 add_board_boot_modes(board_boot_modes);
  324 +#endif
  325 +
  326 + env_set("tee", "no");
  327 +#ifdef CONFIG_IMX_OPTEE
  328 + env_set("tee", "yes");
323 329 #endif
324 330  
325 331 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
board/freescale/mx6ullevk/plugin.S
1 1 /* SPDX-License-Identifier: GPL-2.0+ */
2 2 /*
3 3 * Copyright (C) 2016 Freescale Semiconductor, Inc.
  4 + * Copyright 2017 NXP
4 5 */
5 6  
6 7 #include <config.h>
... ... @@ -239,6 +240,12 @@
239 240 str r1, [r0, #0x78]
240 241 str r1, [r0, #0x7C]
241 242 str r1, [r0, #0x80]
  243 +
  244 +#ifdef CONFIG_IMX_OPTEE
  245 + ldr r0, =0x20e4024
  246 + ldr r1, =0x1
  247 + str r1, [r0]
  248 +#endif
242 249 .endm
243 250  
244 251 .macro imx6_qos_setting
configs/mx6ul_14x14_evk_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6UL_14X14_EVK=y
  4 +CONFIG_ENV_SIZE=0x2000
  5 +CONFIG_ENV_OFFSET=0xE0000
  6 +CONFIG_DM_GPIO=y
  7 +CONFIG_NR_DRAM_BANKS=1
  8 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage.cfg"
  9 +CONFIG_IMX_OPTEE=y
  10 +CONFIG_BOOTDELAY=3
  11 +# CONFIG_CONSOLE_MUX is not set
  12 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  13 +CONFIG_SUPPORT_RAW_INITRD=y
  14 +CONFIG_BOUNCE_BUFFER=y
  15 +CONFIG_BOARD_EARLY_INIT_F=y
  16 +CONFIG_HUSH_PARSER=y
  17 +CONFIG_CMD_BOOTZ=y
  18 +# CONFIG_CMD_IMLS is not set
  19 +CONFIG_CMD_MEMTEST=y
  20 +CONFIG_CMD_GPIO=y
  21 +CONFIG_CMD_I2C=y
  22 +CONFIG_CMD_MMC=y
  23 +CONFIG_CMD_SF=y
  24 +CONFIG_CMD_USB=y
  25 +CONFIG_CMD_DHCP=y
  26 +CONFIG_CMD_PING=y
  27 +CONFIG_CMD_BMP=y
  28 +CONFIG_CMD_CACHE=y
  29 +CONFIG_CMD_NET=y
  30 +CONFIG_CMD_EXT2=y
  31 +CONFIG_CMD_EXT4=y
  32 +CONFIG_CMD_EXT4_WRITE=y
  33 +CONFIG_CMD_FAT=y
  34 +CONFIG_CMD_FS_GENERIC=y
  35 +CONFIG_OF_CONTROL=y
  36 +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk"
  37 +CONFIG_ENV_IS_IN_MMC=y
  38 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
  39 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  40 +CONFIG_DM_74X164=y
  41 +CONFIG_DM_I2C=y
  42 +CONFIG_DM_MMC=y
  43 +CONFIG_FSL_USDHC=y
  44 +CONFIG_MTD=y
  45 +CONFIG_DM_SPI_FLASH=y
  46 +CONFIG_SF_DEFAULT_MODE=0
  47 +CONFIG_SF_DEFAULT_SPEED=40000000
  48 +CONFIG_SPI_FLASH_STMICRO=y
  49 +CONFIG_PHYLIB=y
  50 +CONFIG_PHY_MICREL=y
  51 +CONFIG_PHY_MICREL_KSZ8XXX=y
  52 +CONFIG_DM_ETH=y
  53 +CONFIG_DM_ETH_PHY=y
  54 +CONFIG_FEC_MXC=y
  55 +CONFIG_MII=y
  56 +CONFIG_PINCTRL=y
  57 +CONFIG_PINCTRL_IMX6=y
  58 +CONFIG_DM_REGULATOR=y
  59 +CONFIG_DM_REGULATOR_FIXED=y
  60 +CONFIG_DM_REGULATOR_GPIO=y
  61 +CONFIG_SPI=y
  62 +CONFIG_DM_SPI=y
  63 +CONFIG_SOFT_SPI=y
  64 +CONFIG_FSL_QSPI=y
  65 +CONFIG_USB=y
  66 +CONFIG_DM_USB=y
  67 +CONFIG_USB_STORAGE=y
  68 +CONFIG_USB_HOST_ETHER=y
  69 +CONFIG_USB_ETHER_ASIX=y
  70 +CONFIG_DM_VIDEO=y
  71 +CONFIG_SYS_WHITE_ON_BLACK=y
configs/mx6ul_9x9_evk_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6UL_9X9_EVK=y
  4 +CONFIG_ENV_SIZE=0x2000
  5 +CONFIG_ENV_OFFSET=0xE0000
  6 +CONFIG_DM_GPIO=y
  7 +CONFIG_NR_DRAM_BANKS=1
  8 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage_lpddr2.cfg"
  9 +CONFIG_IMX_OPTEE=y
  10 +CONFIG_BOOTDELAY=3
  11 +# CONFIG_CONSOLE_MUX is not set
  12 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  13 +CONFIG_SUPPORT_RAW_INITRD=y
  14 +CONFIG_BOUNCE_BUFFER=y
  15 +CONFIG_BOARD_EARLY_INIT_F=y
  16 +CONFIG_HUSH_PARSER=y
  17 +CONFIG_CMD_BOOTZ=y
  18 +# CONFIG_CMD_IMLS is not set
  19 +CONFIG_CMD_MEMTEST=y
  20 +CONFIG_CMD_GPIO=y
  21 +CONFIG_CMD_I2C=y
  22 +CONFIG_CMD_MMC=y
  23 +CONFIG_CMD_SF=y
  24 +CONFIG_CMD_USB=y
  25 +CONFIG_CMD_DHCP=y
  26 +CONFIG_CMD_PING=y
  27 +CONFIG_CMD_BMP=y
  28 +CONFIG_CMD_CACHE=y
  29 +CONFIG_CMD_NET=y
  30 +CONFIG_CMD_EXT2=y
  31 +CONFIG_CMD_EXT4=y
  32 +CONFIG_CMD_EXT4_WRITE=y
  33 +CONFIG_CMD_FAT=y
  34 +CONFIG_CMD_FS_GENERIC=y
  35 +CONFIG_OF_CONTROL=y
  36 +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-9x9-evk"
  37 +CONFIG_ENV_IS_IN_MMC=y
  38 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
  39 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  40 +CONFIG_DM_74X164=y
  41 +CONFIG_DM_I2C=y
  42 +CONFIG_DM_MMC=y
  43 +CONFIG_FSL_USDHC=y
  44 +CONFIG_MTD=y
  45 +CONFIG_DM_SPI_FLASH=y
  46 +CONFIG_SF_DEFAULT_MODE=0
  47 +CONFIG_SF_DEFAULT_SPEED=40000000
  48 +CONFIG_SPI_FLASH_STMICRO=y
  49 +CONFIG_PHYLIB=y
  50 +CONFIG_PHY_MICREL=y
  51 +CONFIG_PHY_MICREL_KSZ8XXX=y
  52 +CONFIG_DM_ETH=y
  53 +CONFIG_DM_ETH_PHY=y
  54 +CONFIG_FEC_MXC=y
  55 +CONFIG_MII=y
  56 +CONFIG_PINCTRL=y
  57 +CONFIG_PINCTRL_IMX6=y
  58 +CONFIG_DM_PMIC=y
  59 +CONFIG_DM_PMIC_PFUZE100=y
  60 +CONFIG_DM_REGULATOR=y
  61 +CONFIG_DM_REGULATOR_PFUZE100=y
  62 +CONFIG_DM_REGULATOR_FIXED=y
  63 +CONFIG_DM_REGULATOR_GPIO=y
  64 +CONFIG_SPI=y
  65 +CONFIG_DM_SPI=y
  66 +CONFIG_SOFT_SPI=y
  67 +CONFIG_FSL_QSPI=y
  68 +CONFIG_USB=y
  69 +CONFIG_DM_USB=y
  70 +CONFIG_USB_STORAGE=y
  71 +CONFIG_USB_HOST_ETHER=y
  72 +CONFIG_USB_ETHER_ASIX=y
  73 +CONFIG_DM_VIDEO=y
  74 +CONFIG_SYS_WHITE_ON_BLACK=y
configs/mx6ull_14x14_evk_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6ULL_14X14_EVK=y
  4 +CONFIG_ENV_SIZE=0x2000
  5 +CONFIG_ENV_OFFSET=0xE0000
  6 +CONFIG_DM_GPIO=y
  7 +CONFIG_NR_DRAM_BANKS=1
  8 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"
  9 +CONFIG_BOOTDELAY=3
  10 +# CONFIG_CONSOLE_MUX is not set
  11 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  12 +CONFIG_SUPPORT_RAW_INITRD=y
  13 +CONFIG_BOUNCE_BUFFER=y
  14 +CONFIG_IMX_OPTEE=y
  15 +CONFIG_BOARD_EARLY_INIT_F=y
  16 +CONFIG_HUSH_PARSER=y
  17 +CONFIG_CMD_BOOTZ=y
  18 +# CONFIG_CMD_IMLS is not set
  19 +CONFIG_CMD_MEMTEST=y
  20 +CONFIG_CMD_GPIO=y
  21 +CONFIG_CMD_I2C=y
  22 +CONFIG_CMD_MMC=y
  23 +CONFIG_CMD_SF=y
  24 +CONFIG_CMD_USB=y
  25 +CONFIG_CMD_DHCP=y
  26 +CONFIG_CMD_PING=y
  27 +CONFIG_CMD_BMP=y
  28 +CONFIG_CMD_CACHE=y
  29 +CONFIG_CMD_NET=y
  30 +CONFIG_CMD_EXT2=y
  31 +CONFIG_CMD_EXT4=y
  32 +CONFIG_CMD_EXT4_WRITE=y
  33 +CONFIG_CMD_FAT=y
  34 +CONFIG_CMD_FS_GENERIC=y
  35 +CONFIG_OF_CONTROL=y
  36 +CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk"
  37 +CONFIG_ENV_IS_IN_MMC=y
  38 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
  39 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  40 +CONFIG_DM_74X164=y
  41 +CONFIG_DM_I2C=y
  42 +CONFIG_DM_MMC=y
  43 +CONFIG_FSL_USDHC=y
  44 +CONFIG_MTD=y
  45 +CONFIG_DM_SPI_FLASH=y
  46 +CONFIG_SF_DEFAULT_MODE=0
  47 +CONFIG_SF_DEFAULT_SPEED=40000000
  48 +CONFIG_SPI_FLASH_STMICRO=y
  49 +CONFIG_PHYLIB=y
  50 +CONFIG_PHY_MICREL=y
  51 +CONFIG_PHY_MICREL_KSZ8XXX=y
  52 +CONFIG_DM_ETH=y
  53 +CONFIG_DM_ETH_PHY=y
  54 +CONFIG_FEC_MXC=y
  55 +CONFIG_MII=y
  56 +CONFIG_PINCTRL=y
  57 +CONFIG_PINCTRL_IMX6=y
  58 +CONFIG_DM_REGULATOR=y
  59 +CONFIG_DM_REGULATOR_FIXED=y
  60 +CONFIG_DM_REGULATOR_GPIO=y
  61 +CONFIG_SPI=y
  62 +CONFIG_DM_SPI=y
  63 +CONFIG_SOFT_SPI=y
  64 +CONFIG_FSL_QSPI=y
  65 +CONFIG_USB=y
  66 +CONFIG_DM_USB=y
  67 +CONFIG_USB_STORAGE=y
  68 +CONFIG_USB_HOST_ETHER=y
  69 +CONFIG_USB_ETHER_ASIX=y
  70 +CONFIG_DM_VIDEO=y
  71 +CONFIG_SYS_WHITE_ON_BLACK=y
include/configs/mx6ul_14x14_evk.h
1 1 /* SPDX-License-Identifier: GPL-2.0+ */
2 2 /*
3   - * Copyright (C) 2015 Freescale Semiconductor, Inc.
  3 + * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
  4 + * Copyright 2017 NXP
4 5 *
5 6 * Configuration settings for the Freescale i.MX6UL 14x14 EVK board.
6 7 */
... ... @@ -60,7 +61,7 @@
60 61 #define CONFIG_SYS_MMC_IMG_LOAD_PART 1
61 62  
62 63 #ifdef CONFIG_NAND_BOOT
63   -#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
  64 +#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),16m(tee),-(rootfs) "
64 65 #else
65 66 #define MFG_NAND_PARTITION ""
66 67 #endif
67 68  
68 69  
69 70  
70 71  
71 72  
... ... @@ -78,27 +79,41 @@
78 79 "\0" \
79 80 "initrd_addr=0x83800000\0" \
80 81 "initrd_high=0xffffffff\0" \
81   - "bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
  82 + "bootcmd_mfg=run mfgtool_args; " \
  83 + "if test ${tee} = yes; then " \
  84 + "bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; " \
  85 + "else " \
  86 + "bootz ${loadaddr} ${initrd_addr} ${fdt_addr}; " \
  87 + "fi;\0"
82 88  
83 89 #if defined(CONFIG_NAND_BOOT)
84 90 #define CONFIG_EXTRA_ENV_SETTINGS \
85 91 CONFIG_MFG_ENV_SETTINGS \
  92 + TEE_ENV \
86 93 "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
87 94 "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" \
88 95 "fdt_addr=0x83000000\0" \
89 96 "fdt_high=0xffffffff\0" \
  97 + "tee_addr=0x84000000\0" \
90 98 "console=ttymxc0\0" \
91 99 "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
92 100 "root=ubi0:rootfs rootfstype=ubifs " \
93 101 BOOTARGS_CMA_SIZE \
94   - "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
  102 + MFG_NAND_PARTITION \
  103 + "\0" \
95 104 "bootcmd=nand read ${loadaddr} 0x4000000 0xc00000;"\
96 105 "nand read ${fdt_addr} 0x5000000 0x100000;"\
97   - "bootz ${loadaddr} - ${fdt_addr}\0"
  106 + "if test ${tee} = yes; then " \
  107 + "nand read ${tee_addr} 0x6000000 0x400000;"\
  108 + "bootm ${tee_addr} - ${fdt_addr};" \
  109 + "else " \
  110 + "bootz ${loadaddr} - ${fdt_addr};" \
  111 + "fi\0"
98 112  
99 113 #else
100 114 #define CONFIG_EXTRA_ENV_SETTINGS \
101 115 CONFIG_MFG_ENV_SETTINGS \
  116 + TEE_ENV \
102 117 "script=boot.scr\0" \
103 118 "image=zImage\0" \
104 119 "console=ttymxc0\0" \
... ... @@ -106,6 +121,8 @@
106 121 "initrd_high=0xffffffff\0" \
107 122 "fdt_file=undefined\0" \
108 123 "fdt_addr=0x83000000\0" \
  124 + "tee_addr=0x84000000\0" \
  125 + "tee_file=undefined\0" \
109 126 "boot_fdt=try\0" \
110 127 "ip_dyn=yes\0" \
111 128 "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
112 129  
113 130  
114 131  
115 132  
... ... @@ -123,20 +140,25 @@
123 140 "source\0" \
124 141 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
125 142 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
  143 + "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
126 144 "mmcboot=echo Booting from mmc ...; " \
127 145 "run mmcargs; " \
128   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
129   - "if run loadfdt; then " \
130   - "bootz ${loadaddr} - ${fdt_addr}; " \
131   - "else " \
132   - "if test ${boot_fdt} = try; then " \
133   - "bootz; " \
  146 + "if test ${tee} = yes; then " \
  147 + "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
  148 + "else " \
  149 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  150 + "if run loadfdt; then " \
  151 + "bootz ${loadaddr} - ${fdt_addr}; " \
134 152 "else " \
135   - "echo WARN: Cannot load the DT; " \
  153 + "if test ${boot_fdt} = try; then " \
  154 + "bootz; " \
  155 + "else " \
  156 + "echo WARN: Cannot load the DT; " \
  157 + "fi; " \
136 158 "fi; " \
  159 + "else " \
  160 + "bootz; " \
137 161 "fi; " \
138   - "else " \
139   - "bootz; " \
140 162 "fi;\0" \
141 163 "netargs=setenv bootargs console=${console},${baudrate} " \
142 164 BOOTARGS_CMA_SIZE \
143 165  
144 166  
145 167  
146 168  
... ... @@ -150,19 +172,34 @@
150 172 "setenv get_cmd tftp; " \
151 173 "fi; " \
152 174 "${get_cmd} ${image}; " \
153   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
154   - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
155   - "bootz ${loadaddr} - ${fdt_addr}; " \
156   - "else " \
157   - "if test ${boot_fdt} = try; then " \
158   - "bootz; " \
  175 + "if test ${tee} = yes; then " \
  176 + "${get_cmd} ${tee_addr} ${tee_file}; " \
  177 + "${get_cmd} ${fdt_addr} ${fdt_file}; " \
  178 + "bootm ${tee_addr} - ${fdt_addr}; " \
  179 + "else " \
  180 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  181 + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
  182 + "bootz ${loadaddr} - ${fdt_addr}; " \
159 183 "else " \
160   - "echo WARN: Cannot load the DT; " \
  184 + "if test ${boot_fdt} = try; then " \
  185 + "bootz; " \
  186 + "else " \
  187 + "echo WARN: Cannot load the DT; " \
  188 + "fi; " \
161 189 "fi; " \
  190 + "else " \
  191 + "bootz; " \
162 192 "fi; " \
163   - "else " \
164   - "bootz; " \
165 193 "fi;\0" \
  194 + "findtee="\
  195 + "if test $tee_file = undefined; then " \
  196 + "if test $board_name = EVK && test $board_rev = 9X9; then " \
  197 + "setenv tee_file uTee-6ul9x9evk; fi; " \
  198 + "if test $board_name = EVK && test $board_rev = 14X14; then " \
  199 + "setenv tee_file uTee-6ulevk; fi; " \
  200 + "if test $fdt_file = undefined; then " \
  201 + "echo WARNING: Could not determine tee to use; fi; " \
  202 + "fi;\0" \
166 203 "findfdt="\
167 204 "if test $fdt_file = undefined; then " \
168 205 "if test $board_name = EVK && test $board_rev = 9X9; then " \
169 206  
... ... @@ -170,11 +207,13 @@
170 207 "if test $board_name = EVK && test $board_rev = 14X14; then " \
171 208 "setenv fdt_file imx6ul-14x14-evk.dtb; fi; " \
172 209 "if test $fdt_file = undefined; then " \
173   - "echo WARNING: Could not determine dtb to use; fi; " \
  210 + "echo WARNING: Could not determine dtb to use; " \
  211 + "fi; " \
174 212 "fi;\0" \
175 213  
176 214 #define CONFIG_BOOTCOMMAND \
177 215 "run findfdt;" \
  216 + "run findtee;" \
178 217 "mmc dev ${mmcdev};" \
179 218 "mmc dev ${mmcdev}; if mmc rescan; then " \
180 219 "if run loadbootscript; then " \
include/configs/mx6ullevk.h
1 1 /* SPDX-License-Identifier: GPL-2.0+ */
2 2 /*
3 3 * Copyright (C) 2016 Freescale Semiconductor, Inc.
  4 + * Copyright 2017 NXP
4 5 *
5 6 * Configuration settings for the Freescale i.MX6UL 14x14 EVK board.
6 7 */
... ... @@ -54,7 +55,7 @@
54 55 #define CONFIG_SYS_MMC_IMG_LOAD_PART 1
55 56  
56 57 #ifdef CONFIG_NAND_BOOT
57   -#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) "
  58 +#define MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),16m(tee),-(rootfs) "
58 59 #else
59 60 #define MFG_NAND_PARTITION ""
60 61 #endif
61 62  
62 63  
63 64  
64 65  
65 66  
... ... @@ -72,27 +73,41 @@
72 73 "\0" \
73 74 "initrd_addr=0x83800000\0" \
74 75 "initrd_high=0xffffffff\0" \
75   - "bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
  76 + "bootcmd_mfg=run mfgtool_args; " \
  77 + "if test ${tee} = yes; then " \
  78 + "bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; " \
  79 + "else " \
  80 + "bootz ${loadaddr} ${initrd_addr} ${fdt_addr}; " \
  81 + "fi;\0"
76 82  
77 83 #if defined(CONFIG_NAND_BOOT)
78 84 #define CONFIG_EXTRA_ENV_SETTINGS \
79 85 CONFIG_MFG_ENV_SETTINGS \
  86 + TEE_ENV \
80 87 "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
81 88 "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" \
82 89 "fdt_addr=0x83000000\0" \
83 90 "fdt_high=0xffffffff\0" \
  91 + "tee_addr=0x84000000\0" \
84 92 "console=ttymxc0\0" \
85 93 "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
86 94 "root=ubi0:rootfs rootfstype=ubifs " \
87 95 BOOTARGS_CMA_SIZE \
88   - "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
  96 + MFG_NAND_PARTITION \
  97 + "\0" \
89 98 "bootcmd=nand read ${loadaddr} 0x4000000 0xc00000;"\
90 99 "nand read ${fdt_addr} 0x5000000 0x100000;"\
91   - "bootz ${loadaddr} - ${fdt_addr}\0"
  100 + "if test ${tee} = yes; then " \
  101 + "nand read ${tee_addr} 0x6000000 0x400000;"\
  102 + "bootm ${tee_addr} - ${fdt_addr};" \
  103 + "else " \
  104 + "bootz ${loadaddr} - ${fdt_addr};" \
  105 + "fi\0"
92 106  
93 107 #else
94 108 #define CONFIG_EXTRA_ENV_SETTINGS \
95 109 CONFIG_MFG_ENV_SETTINGS \
  110 + TEE_ENV \
96 111 "script=boot.scr\0" \
97 112 "image=zImage\0" \
98 113 "console=ttymxc0\0" \
... ... @@ -100,6 +115,8 @@
100 115 "initrd_high=0xffffffff\0" \
101 116 "fdt_file=undefined\0" \
102 117 "fdt_addr=0x83000000\0" \
  118 + "tee_addr=0x84000000\0" \
  119 + "tee_file=uTee-6ullevk\0" \
103 120 "boot_fdt=try\0" \
104 121 "ip_dyn=yes\0" \
105 122 "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
106 123  
107 124  
108 125  
109 126  
... ... @@ -117,20 +134,25 @@
117 134 "source\0" \
118 135 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
119 136 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
  137 + "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
120 138 "mmcboot=echo Booting from mmc ...; " \
121 139 "run mmcargs; " \
122   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
123   - "if run loadfdt; then " \
124   - "bootz ${loadaddr} - ${fdt_addr}; " \
125   - "else " \
126   - "if test ${boot_fdt} = try; then " \
127   - "bootz; " \
  140 + "if test ${tee} = yes; then " \
  141 + "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
  142 + "else " \
  143 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  144 + "if run loadfdt; then " \
  145 + "bootz ${loadaddr} - ${fdt_addr}; " \
128 146 "else " \
129   - "echo WARN: Cannot load the DT; " \
  147 + "if test ${boot_fdt} = try; then " \
  148 + "bootz; " \
  149 + "else " \
  150 + "echo WARN: Cannot load the DT; " \
  151 + "fi; " \
130 152 "fi; " \
  153 + "else " \
  154 + "bootz; " \
131 155 "fi; " \
132   - "else " \
133   - "bootz; " \
134 156 "fi;\0" \
135 157 "netargs=setenv bootargs console=${console},${baudrate} " \
136 158 BOOTARGS_CMA_SIZE \
137 159  
138 160  
139 161  
... ... @@ -144,18 +166,24 @@
144 166 "setenv get_cmd tftp; " \
145 167 "fi; " \
146 168 "${get_cmd} ${image}; " \
147   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
148   - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
149   - "bootz ${loadaddr} - ${fdt_addr}; " \
150   - "else " \
151   - "if test ${boot_fdt} = try; then " \
152   - "bootz; " \
  169 + "if test ${tee} = yes; then " \
  170 + "${get_cmd} ${tee_addr} ${tee_file}; " \
  171 + "${get_cmd} ${fdt_addr} ${fdt_file}; " \
  172 + "bootm ${tee_addr} - ${fdt_addr}; " \
  173 + "else " \
  174 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  175 + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
  176 + "bootz ${loadaddr} - ${fdt_addr}; " \
153 177 "else " \
154   - "echo WARN: Cannot load the DT; " \
  178 + "if test ${boot_fdt} = try; then " \
  179 + "bootz; " \
  180 + "else " \
  181 + "echo WARN: Cannot load the DT; " \
  182 + "fi; " \
155 183 "fi; " \
  184 + "else " \
  185 + "bootz; " \
156 186 "fi; " \
157   - "else " \
158   - "bootz; " \
159 187 "fi;\0" \
160 188 "findfdt="\
161 189 "if test $fdt_file = undefined; then " \
... ... @@ -172,6 +200,7 @@
172 200  
173 201 #define CONFIG_BOOTCOMMAND \
174 202 "run findfdt;" \
  203 + "run findtee;" \
175 204 "mmc dev ${mmcdev};" \
176 205 "mmc dev ${mmcdev}; if mmc rescan; then " \
177 206 "if run loadbootscript; then " \