Commit 16d4e53618b92f4638284a99402470fc440187fb
Committed by
Ye Li
1 parent
a4a9ecab1e
Exists in
smarc_8mq-imx_v2020.04_5.4.24_2.1.0
and in
3 other branches
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
- 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
- configs/mx6ul_9x9_evk_optee_defconfig
- configs/mx6ull_14x14_evk_optee_defconfig
- include/configs/mx6ul_14x14_evk.h
- include/configs/mx6ullevk.h
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 " \ |