Commit 65fd479c23fa3d36d54c1853e3e2645ebcc56e96

Authored by Peng Fan
Committed by Ye Li
1 parent c86df3e535

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)

Showing 13 changed files with 358 additions and 47 deletions Side-by-side Diff

board/freescale/mx6ul_14x14_evk/imximage.cfg
... ... @@ -64,6 +64,11 @@
64 64 DATA 4 0x020c407c 0xffffffff
65 65 DATA 4 0x020c4080 0xffffffff
66 66  
  67 +#ifdef CONFIG_IMX_OPTEE
  68 +DATA 4 0x20e4024 0x00000001
  69 +CHECK_BITS_SET 4 0x20e4024 0x1
  70 +#endif
  71 +
67 72 DATA 4 0x020E04B4 0x000C0000
68 73 DATA 4 0x020E04AC 0x00000000
69 74 DATA 4 0x020E027C 0x00000030
... ... @@ -129,6 +134,11 @@
129 134 DATA 4 0x020c4078 0xffffffff
130 135 DATA 4 0x020c407c 0xffffffff
131 136 DATA 4 0x020c4080 0xffffffff
  137 +
  138 +#ifdef CONFIG_IMX_OPTEE
  139 +DATA 4 0x20e4024 0x00000001
  140 +CHECK_BITS_SET 4 0x20e4024 0x1
  141 +#endif
132 142  
133 143 DATA 4 0x020E04B4 0x000C0000
134 144 DATA 4 0x020E04AC 0x00000000
board/freescale/mx6ul_14x14_evk/imximage_lpddr2.cfg
... ... @@ -60,6 +60,11 @@
60 60 DATA 4 0x020c4080 0xffffffff
61 61 DATA 4 0x020c4084 0xffffffff
62 62  
  63 +#ifdef CONFIG_IMX_OPTEE
  64 +DATA 4 0x20e4024 0x00000001
  65 +CHECK_BITS_SET 4 0x20e4024 0x1
  66 +#endif
  67 +
63 68 DATA 4 0x020E04B4 0x00080000
64 69 DATA 4 0x020E04AC 0x00000000
65 70 DATA 4 0x020E027C 0x00000030
board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
... ... @@ -666,6 +666,11 @@
666 666 add_board_boot_modes(board_boot_modes);
667 667 #endif
668 668  
  669 + env_set("tee", "no");
  670 +#ifdef CONFIG_IMX_OPTEE
  671 + env_set("tee", "yes");
  672 +#endif
  673 +
669 674 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
670 675 env_set("board_name", "EVK");
671 676  
board/freescale/mx6ul_14x14_evk/plugin.S
... ... @@ -348,6 +348,12 @@
348 348 str r1, [r0, #0x78]
349 349 str r1, [r0, #0x7C]
350 350 str r1, [r0, #0x80]
  351 +
  352 +#ifdef CONFIG_IMX_OPTEE
  353 + ldr r0, =0x20e4024
  354 + ldr r1, =1
  355 + str r1, [r0]
  356 +#endif
351 357 .endm
352 358  
353 359 .macro imx6_qos_setting
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 <asm/arch/clock.h>
... ... @@ -380,6 +381,11 @@
380 381 {
381 382 #ifdef CONFIG_CMD_BMODE
382 383 add_board_boot_modes(board_boot_modes);
  384 +#endif
  385 +
  386 + env_set("tee", "no");
  387 +#ifdef CONFIG_IMX_OPTEE
  388 + env_set("tee", "yes");
383 389 #endif
384 390  
385 391 #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_NR_DRAM_BANKS=1
  5 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage.cfg"
  6 +CONFIG_IMX_OPTEE=y
  7 +CONFIG_BOOTDELAY=3
  8 +# CONFIG_CONSOLE_MUX is not set
  9 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  10 +CONFIG_SUPPORT_RAW_INITRD=y
  11 +CONFIG_BOUNCE_BUFFER=y
  12 +CONFIG_BOARD_EARLY_INIT_F=y
  13 +CONFIG_HUSH_PARSER=y
  14 +CONFIG_CMD_BOOTZ=y
  15 +# CONFIG_CMD_IMLS is not set
  16 +CONFIG_CMD_MEMTEST=y
  17 +CONFIG_CMD_GPIO=y
  18 +CONFIG_CMD_I2C=y
  19 +CONFIG_CMD_MMC=y
  20 +CONFIG_CMD_SF=y
  21 +CONFIG_CMD_USB=y
  22 +CONFIG_CMD_DHCP=y
  23 +CONFIG_CMD_PING=y
  24 +CONFIG_CMD_BMP=y
  25 +CONFIG_CMD_CACHE=y
  26 +CONFIG_CMD_NET=y
  27 +CONFIG_CMD_EXT2=y
  28 +CONFIG_CMD_EXT4=y
  29 +CONFIG_CMD_EXT4_WRITE=y
  30 +CONFIG_CMD_FAT=y
  31 +CONFIG_CMD_FS_GENERIC=y
  32 +CONFIG_OF_CONTROL=y
  33 +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk"
  34 +CONFIG_ENV_IS_IN_MMC=y
  35 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  36 +CONFIG_DM_GPIO=y
  37 +CONFIG_DM_74X164=y
  38 +CONFIG_DM_I2C=y
  39 +CONFIG_DM_MMC=y
  40 +CONFIG_FSL_ESDHC=y
  41 +CONFIG_DM_SPI_FLASH=y
  42 +CONFIG_SPI_FLASH=y
  43 +CONFIG_SF_DEFAULT_MODE=0
  44 +CONFIG_SF_DEFAULT_SPEED=40000000
  45 +CONFIG_SPI_FLASH_STMICRO=y
  46 +CONFIG_PHYLIB=y
  47 +CONFIG_PHY_MICREL=y
  48 +CONFIG_DM_ETH=y
  49 +CONFIG_MII=y
  50 +CONFIG_PINCTRL=y
  51 +CONFIG_PINCTRL_IMX6=y
  52 +CONFIG_DM_REGULATOR=y
  53 +CONFIG_DM_REGULATOR_FIXED=y
  54 +CONFIG_DM_REGULATOR_GPIO=y
  55 +CONFIG_SPI=y
  56 +CONFIG_DM_SPI=y
  57 +CONFIG_SOFT_SPI=y
  58 +CONFIG_FSL_QSPI=y
  59 +CONFIG_USB=y
  60 +CONFIG_DM_USB=y
  61 +CONFIG_USB_STORAGE=y
  62 +CONFIG_USB_HOST_ETHER=y
  63 +CONFIG_USB_ETHER_ASIX=y
  64 +CONFIG_VIDEO=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_NR_DRAM_BANKS=1
  5 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage_lpddr2.cfg"
  6 +CONFIG_IMX_OPTEE=y
  7 +CONFIG_BOOTDELAY=3
  8 +# CONFIG_CONSOLE_MUX is not set
  9 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  10 +CONFIG_SUPPORT_RAW_INITRD=y
  11 +CONFIG_BOUNCE_BUFFER=y
  12 +CONFIG_BOARD_EARLY_INIT_F=y
  13 +CONFIG_HUSH_PARSER=y
  14 +CONFIG_CMD_BOOTZ=y
  15 +# CONFIG_CMD_IMLS is not set
  16 +CONFIG_CMD_MEMTEST=y
  17 +CONFIG_CMD_GPIO=y
  18 +CONFIG_CMD_I2C=y
  19 +CONFIG_CMD_MMC=y
  20 +CONFIG_CMD_SF=y
  21 +CONFIG_CMD_USB=y
  22 +CONFIG_CMD_DHCP=y
  23 +CONFIG_CMD_PING=y
  24 +CONFIG_CMD_BMP=y
  25 +CONFIG_CMD_CACHE=y
  26 +CONFIG_CMD_NET=y
  27 +CONFIG_CMD_EXT2=y
  28 +CONFIG_CMD_EXT4=y
  29 +CONFIG_CMD_EXT4_WRITE=y
  30 +CONFIG_CMD_FAT=y
  31 +CONFIG_CMD_FS_GENERIC=y
  32 +CONFIG_OF_CONTROL=y
  33 +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-9x9-evk"
  34 +CONFIG_ENV_IS_IN_MMC=y
  35 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  36 +CONFIG_DM_GPIO=y
  37 +CONFIG_DM_74X164=y
  38 +CONFIG_DM_I2C=y
  39 +CONFIG_DM_MMC=y
  40 +CONFIG_FSL_ESDHC=y
  41 +CONFIG_DM_SPI_FLASH=y
  42 +CONFIG_SPI_FLASH=y
  43 +CONFIG_SF_DEFAULT_MODE=0
  44 +CONFIG_SF_DEFAULT_SPEED=40000000
  45 +CONFIG_SPI_FLASH_STMICRO=y
  46 +CONFIG_PHYLIB=y
  47 +CONFIG_PHY_MICREL=y
  48 +CONFIG_DM_ETH=y
  49 +CONFIG_MII=y
  50 +CONFIG_PINCTRL=y
  51 +CONFIG_PINCTRL_IMX6=y
  52 +CONFIG_DM_PMIC=y
  53 +CONFIG_DM_PMIC_PFUZE100=y
  54 +CONFIG_DM_REGULATOR=y
  55 +CONFIG_DM_REGULATOR_PFUZE100=y
  56 +CONFIG_DM_REGULATOR_FIXED=y
  57 +CONFIG_DM_REGULATOR_GPIO=y
  58 +CONFIG_SPI=y
  59 +CONFIG_DM_SPI=y
  60 +CONFIG_SOFT_SPI=y
  61 +CONFIG_FSL_QSPI=y
  62 +CONFIG_USB=y
  63 +CONFIG_DM_USB=y
  64 +CONFIG_USB_STORAGE=y
  65 +CONFIG_USB_HOST_ETHER=y
  66 +CONFIG_USB_ETHER_ASIX=y
  67 +CONFIG_VIDEO=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_NR_DRAM_BANKS=1
  5 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"
  6 +CONFIG_SUPPORT_RAW_INITRD=y
  7 +CONFIG_BOUNCE_BUFFER=y
  8 +CONFIG_VIDEO=y
  9 +CONFIG_IMX_OPTEE=y
  10 +CONFIG_BOOTDELAY=3
  11 +CONFIG_BOARD_EARLY_INIT_F=y
  12 +CONFIG_HUSH_PARSER=y
  13 +CONFIG_CMD_BOOTZ=y
  14 +# CONFIG_CMD_IMLS is not set
  15 +CONFIG_CMD_MEMTEST=y
  16 +CONFIG_CMD_GPIO=y
  17 +CONFIG_CMD_I2C=y
  18 +CONFIG_CMD_MMC=y
  19 +CONFIG_CMD_SF=y
  20 +CONFIG_CMD_USB=y
  21 +CONFIG_CMD_DHCP=y
  22 +CONFIG_CMD_PING=y
  23 +CONFIG_CMD_BMP=y
  24 +CONFIG_CMD_CACHE=y
  25 +CONFIG_CMD_NET=y
  26 +CONFIG_CMD_EXT2=y
  27 +CONFIG_CMD_EXT4=y
  28 +CONFIG_CMD_EXT4_WRITE=y
  29 +CONFIG_CMD_FAT=y
  30 +CONFIG_CMD_FS_GENERIC=y
  31 +CONFIG_OF_CONTROL=y
  32 +CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk"
  33 +CONFIG_ENV_IS_IN_MMC=y
  34 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
  35 +CONFIG_DM_GPIO=y
  36 +CONFIG_DM_74X164=y
  37 +CONFIG_DM_I2C=y
  38 +CONFIG_DM_MMC=y
  39 +CONFIG_FSL_ESDHC=y
  40 +CONFIG_DM_SPI_FLASH=y
  41 +CONFIG_SPI_FLASH=y
  42 +CONFIG_SF_DEFAULT_MODE=0
  43 +CONFIG_SF_DEFAULT_SPEED=40000000
  44 +CONFIG_SPI_FLASH_STMICRO=y
  45 +CONFIG_PHYLIB=y
  46 +CONFIG_PHY_MICREL=y
  47 +CONFIG_DM_ETH=y
  48 +CONFIG_MII=y
  49 +CONFIG_PINCTRL=y
  50 +CONFIG_PINCTRL_IMX6=y
  51 +CONFIG_DM_REGULATOR=y
  52 +CONFIG_DM_REGULATOR_FIXED=y
  53 +CONFIG_DM_REGULATOR_GPIO=y
  54 +CONFIG_SPI=y
  55 +CONFIG_DM_SPI=y
  56 +CONFIG_SOFT_SPI=y
  57 +CONFIG_FSL_QSPI=y
  58 +CONFIG_USB=y
  59 +CONFIG_DM_USB=y
  60 +CONFIG_USB_STORAGE=y
  61 +CONFIG_USB_HOST_ETHER=y
  62 +CONFIG_USB_ETHER_ASIX=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  
... ... @@ -78,11 +79,17 @@
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 "panel=TFT43AB\0" \
87 94 "fdt_addr=0x83000000\0" \
88 95 "fdt_high=0xffffffff\0" \
89 96  
90 97  
... ... @@ -90,14 +97,21 @@
90 97 "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
91 98 "root=ubi0:rootfs rootfstype=ubifs " \
92 99 BOOTARGS_CMA_SIZE \
93   - "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
  100 + MFG_NAND_PARTITION \
  101 + "\0" \
94 102 "bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
95 103 "nand read ${fdt_addr} 0x5000000 0x100000;"\
96   - "bootz ${loadaddr} - ${fdt_addr}\0"
  104 + "if test ${tee} = yes; then " \
  105 + "nand read ${tee_addr} 0x6000000 0x400000;"\
  106 + "bootm ${teeaddr} - ${fdt_addr};" \
  107 + "else " \
  108 + "bootz ${loadaddr} - ${fdt_addr};" \
  109 + "fi\0"
97 110  
98 111 #else
99 112 #define CONFIG_EXTRA_ENV_SETTINGS \
100 113 CONFIG_MFG_ENV_SETTINGS \
  114 + TEE_ENV \
101 115 "script=boot.scr\0" \
102 116 "image=zImage\0" \
103 117 "console=ttymxc0\0" \
... ... @@ -105,6 +119,8 @@
105 119 "initrd_high=0xffffffff\0" \
106 120 "fdt_file=undefined\0" \
107 121 "fdt_addr=0x83000000\0" \
  122 + "tee_addr=0x84000000\0" \
  123 + "tee_file=undefined\0" \
108 124 "boot_fdt=try\0" \
109 125 "ip_dyn=yes\0" \
110 126 "panel=TFT43AB\0" \
111 127  
112 128  
113 129  
114 130  
... ... @@ -121,20 +137,25 @@
121 137 "source\0" \
122 138 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
123 139 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
  140 + "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
124 141 "mmcboot=echo Booting from mmc ...; " \
125 142 "run mmcargs; " \
126   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
127   - "if run loadfdt; then " \
128   - "bootz ${loadaddr} - ${fdt_addr}; " \
129   - "else " \
130   - "if test ${boot_fdt} = try; then " \
131   - "bootz; " \
  143 + "if test ${tee} = yes; then " \
  144 + "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
  145 + "else " \
  146 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  147 + "if run loadfdt; then " \
  148 + "bootz ${loadaddr} - ${fdt_addr}; " \
132 149 "else " \
133   - "echo WARN: Cannot load the DT; " \
  150 + "if test ${boot_fdt} = try; then " \
  151 + "bootz; " \
  152 + "else " \
  153 + "echo WARN: Cannot load the DT; " \
  154 + "fi; " \
134 155 "fi; " \
  156 + "else " \
  157 + "bootz; " \
135 158 "fi; " \
136   - "else " \
137   - "bootz; " \
138 159 "fi;\0" \
139 160 "netargs=setenv bootargs console=${console},${baudrate} " \
140 161 BOOTARGS_CMA_SIZE \
141 162  
142 163  
143 164  
144 165  
... ... @@ -148,19 +169,34 @@
148 169 "setenv get_cmd tftp; " \
149 170 "fi; " \
150 171 "${get_cmd} ${image}; " \
151   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
152   - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
153   - "bootz ${loadaddr} - ${fdt_addr}; " \
154   - "else " \
155   - "if test ${boot_fdt} = try; then " \
156   - "bootz; " \
  172 + "if test ${tee} = yes; then " \
  173 + "${get_cmd} ${tee_addr} ${tee_file}; " \
  174 + "${get_cmd} ${fdt_addr} ${fdt_file}; " \
  175 + "bootm ${tee_addr} - ${fdt_addr}; " \
  176 + "else " \
  177 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  178 + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
  179 + "bootz ${loadaddr} - ${fdt_addr}; " \
157 180 "else " \
158   - "echo WARN: Cannot load the DT; " \
  181 + "if test ${boot_fdt} = try; then " \
  182 + "bootz; " \
  183 + "else " \
  184 + "echo WARN: Cannot load the DT; " \
  185 + "fi; " \
159 186 "fi; " \
  187 + "else " \
  188 + "bootz; " \
160 189 "fi; " \
161   - "else " \
162   - "bootz; " \
163 190 "fi;\0" \
  191 + "findtee="\
  192 + "if test $tee_file = undefined; then " \
  193 + "if test $board_name = EVK && test $board_rev = 9X9; then " \
  194 + "setenv tee_file uTee-6ul9x9; fi; " \
  195 + "if test $board_name = EVK && test $board_rev = 14X14; then " \
  196 + "setenv tee_file uTee-6ulevk; fi; " \
  197 + "if test $fdt_file = undefined; then " \
  198 + "echo WARNING: Could not determine tee to use; fi; " \
  199 + "fi;\0" \
164 200 "findfdt="\
165 201 "if test $fdt_file = undefined; then " \
166 202 "if test $board_name = EVK && test $board_rev = 9X9; then " \
167 203  
... ... @@ -168,11 +204,13 @@
168 204 "if test $board_name = EVK && test $board_rev = 14X14; then " \
169 205 "setenv fdt_file imx6ul-14x14-evk.dtb; fi; " \
170 206 "if test $fdt_file = undefined; then " \
171   - "echo WARNING: Could not determine dtb to use; fi; " \
  207 + "echo WARNING: Could not determine dtb to use; " \
  208 + "fi; " \
172 209 "fi;\0" \
173 210  
174 211 #define CONFIG_BOOTCOMMAND \
175 212 "run findfdt;" \
  213 + "run findtee;" \
176 214 "mmc dev ${mmcdev};" \
177 215 "mmc dev ${mmcdev}; if mmc rescan; then " \
178 216 "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 */
... ... @@ -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  
... ... @@ -78,11 +79,17 @@
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 "panel=TFT43AB\0" \
87 94 "fdt_addr=0x83000000\0" \
88 95 "fdt_high=0xffffffff\0" \
89 96  
90 97  
... ... @@ -90,14 +97,21 @@
90 97 "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
91 98 "root=ubi0:rootfs rootfstype=ubifs " \
92 99 BOOTARGS_CMA_SIZE \
93   - "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
  100 + MFG_NAND_PARTITION \
  101 + "\0" \
94 102 "bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
95 103 "nand read ${fdt_addr} 0x5000000 0x100000;"\
96   - "bootz ${loadaddr} - ${fdt_addr}\0"
  104 + "if test ${tee} = yes; then " \
  105 + "nand read ${tee_addr} 0x6000000 0x400000;"\
  106 + "bootm ${teeaddr} - ${fdt_addr};" \
  107 + "else " \
  108 + "bootz ${loadaddr} - ${fdt_addr};" \
  109 + "fi\0"
97 110  
98 111 #else
99 112 #define CONFIG_EXTRA_ENV_SETTINGS \
100 113 CONFIG_MFG_ENV_SETTINGS \
  114 + TEE_ENV \
101 115 "script=boot.scr\0" \
102 116 "image=zImage\0" \
103 117 "console=ttymxc0\0" \
... ... @@ -105,6 +119,8 @@
105 119 "initrd_high=0xffffffff\0" \
106 120 "fdt_file=undefined\0" \
107 121 "fdt_addr=0x83000000\0" \
  122 + "tee_addr=0x84000000\0" \
  123 + "tee_file=uTee-6ullevk\0" \
108 124 "boot_fdt=try\0" \
109 125 "ip_dyn=yes\0" \
110 126 "panel=TFT43AB\0" \
111 127  
112 128  
113 129  
114 130  
... ... @@ -121,20 +137,25 @@
121 137 "source\0" \
122 138 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
123 139 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
  140 + "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
124 141 "mmcboot=echo Booting from mmc ...; " \
125 142 "run mmcargs; " \
126   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
127   - "if run loadfdt; then " \
128   - "bootz ${loadaddr} - ${fdt_addr}; " \
129   - "else " \
130   - "if test ${boot_fdt} = try; then " \
131   - "bootz; " \
  143 + "if test ${tee} = yes; then " \
  144 + "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
  145 + "else " \
  146 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  147 + "if run loadfdt; then " \
  148 + "bootz ${loadaddr} - ${fdt_addr}; " \
132 149 "else " \
133   - "echo WARN: Cannot load the DT; " \
  150 + "if test ${boot_fdt} = try; then " \
  151 + "bootz; " \
  152 + "else " \
  153 + "echo WARN: Cannot load the DT; " \
  154 + "fi; " \
134 155 "fi; " \
  156 + "else " \
  157 + "bootz; " \
135 158 "fi; " \
136   - "else " \
137   - "bootz; " \
138 159 "fi;\0" \
139 160 "netargs=setenv bootargs console=${console},${baudrate} " \
140 161 BOOTARGS_CMA_SIZE \
141 162  
142 163  
143 164  
... ... @@ -148,18 +169,24 @@
148 169 "setenv get_cmd tftp; " \
149 170 "fi; " \
150 171 "${get_cmd} ${image}; " \
151   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
152   - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
153   - "bootz ${loadaddr} - ${fdt_addr}; " \
154   - "else " \
155   - "if test ${boot_fdt} = try; then " \
156   - "bootz; " \
  172 + "if test ${tee} = yes; then " \
  173 + "${get_cmd} ${tee_addr} ${tee_file}; " \
  174 + "${get_cmd} ${fdt_addr} ${fdt_file}; " \
  175 + "bootm ${tee_addr} - ${fdt_addr}; " \
  176 + "else " \
  177 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  178 + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
  179 + "bootz ${loadaddr} - ${fdt_addr}; " \
157 180 "else " \
158   - "echo WARN: Cannot load the DT; " \
  181 + "if test ${boot_fdt} = try; then " \
  182 + "bootz; " \
  183 + "else " \
  184 + "echo WARN: Cannot load the DT; " \
  185 + "fi; " \
159 186 "fi; " \
  187 + "else " \
  188 + "bootz; " \
160 189 "fi; " \
161   - "else " \
162   - "bootz; " \
163 190 "fi;\0" \
164 191 "findfdt="\
165 192 "if test $fdt_file = undefined; then " \
166 193  
... ... @@ -168,11 +195,13 @@
168 195 "if test $board_name = EVK && test $board_rev = 14X14; then " \
169 196 "setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \
170 197 "if test $fdt_file = undefined; then " \
171   - "echo WARNING: Could not determine dtb to use; fi; " \
  198 + "echo WARNING: Could not determine dtb to use; " \
  199 + "fi; " \
172 200 "fi;\0" \
173 201  
174 202 #define CONFIG_BOOTCOMMAND \
175 203 "run findfdt;" \
  204 + "run findtee;" \
176 205 "mmc dev ${mmcdev};" \
177 206 "mmc dev ${mmcdev}; if mmc rescan; then " \
178 207 "if run loadbootscript; then " \