Commit 3a0b8a0a7a1b9286a3a4f5247970d15234b0632f

Authored by Peng Fan
Committed by Ye Li
1 parent 32a6fd10d7

MLK-16753-5 imx: mx6qsabreauto: add optee support

Add defconfigs.
Enable Trustzone.
Update env to runtime boot OP-TEE.
To 6QP AUTO, TZASC not enabled now.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 62277d7e521894b079911fd8e8b26507ff03c018)
(cherry picked from commit b7be942860a15feb0bd660b1922d4ed9306f1184)
(cherry picked from commit 56d2100c6b3c483d063ce70ad7ce9d6da378ada6)
(cherry picked from commit 44242fe2c59c99936552cefd42b576feb51a25d7)

Showing 10 changed files with 411 additions and 24 deletions Side-by-side Diff

board/freescale/mx6sabreauto/imximage.cfg
... ... @@ -51,6 +51,11 @@
51 51 * Address absolute address of the register
52 52 * value value to be stored in the register
53 53 */
  54 +#ifdef CONFIG_IMX_OPTEE
  55 +SET_BIT 4 0x20c4070 0x3c00000
  56 +DATA 4 0x20e0024 0x00000003
  57 +CHECK_BITS_SET 4 0x20e0024 0x3
  58 +#endif
54 59 DATA 4 0x020e0798 0x000C0000
55 60 DATA 4 0x020e0758 0x00000000
56 61 DATA 4 0x020e0588 0x00000030
board/freescale/mx6sabreauto/mx6dl.cfg
... ... @@ -52,6 +52,11 @@
52 52 * Address absolute address of the register
53 53 * value value to be stored in the register
54 54 */
  55 +#ifdef CONFIG_IMX_OPTEE
  56 +SET_BIT 4 0x20c4070 0x3c00000
  57 +DATA 4 0x20e0024 0x00000003
  58 +CHECK_BITS_SET 4 0x20e0024 0x3
  59 +#endif
55 60 DATA 4 0x020e0774 0x000C0000
56 61 DATA 4 0x020e0754 0x00000000
57 62 DATA 4 0x020e04ac 0x00000030
board/freescale/mx6sabreauto/mx6sabreauto.c
... ... @@ -907,6 +907,11 @@
907 907 add_board_boot_modes(board_boot_modes);
908 908 #endif
909 909  
  910 + env_set("tee", "no");
  911 +#ifdef CONFIG_IMX_OPTEE
  912 + env_set("tee", "yes");
  913 +#endif
  914 +
910 915 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
911 916 env_set("board_name", "SABREAUTO");
912 917  
board/freescale/mx6sabreauto/mx6solo.cfg
... ... @@ -52,6 +52,11 @@
52 52 * Address absolute address of the register
53 53 * value value to be stored in the register
54 54 */
  55 +#ifdef CONFIG_IMX_OPTEE
  56 +SET_BIT 4 0x20c4070 0x3c00000
  57 +DATA 4 0x20e0024 0x00000003
  58 +CHECK_BITS_SET 4 0x20e0024 0x3
  59 +#endif
55 60 DATA 4, 0x020e0774, 0x000C0000
56 61 DATA 4, 0x020e0754, 0x00000000
57 62 DATA 4, 0x020e04ac, 0x00000030
board/freescale/mx6sabreauto/plugin.S
... ... @@ -631,6 +631,14 @@
631 631 str r1, [r0, #0x07c]
632 632 ldr r1, =0x00000FFF
633 633 str r1, [r0, #0x080]
  634 +
  635 +#ifdef CONFIG_IMX_OPTEE
  636 +#ifndef CONFIG_MX6QP
  637 + ldr r0, =0x20e0024
  638 + ldr r1, =0x3
  639 + str r1, [r0]
  640 +#endif
  641 +#endif
634 642 .endm
635 643  
636 644 .macro imx6_qos_setting
configs/mx6dlsabreauto_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6DLSABREAUTO=y
  4 +CONFIG_NR_DRAM_BANKS=1
  5 +CONFIG_ENV_SIZE=0x2000
  6 +CONFIG_ENV_OFFSET=0xE0000
  7 +CONFIG_DM_VIDEO=y
  8 +# CONFIG_VIDEO_BPP8 is not set
  9 +# CONFIG_VIDEO_BPP32 is not set
  10 +CONFIG_SYS_WHITE_ON_BLACK=y
  11 +CONFIG_VIDEO_IPUV3=y
  12 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6dl.cfg"
  13 +CONFIG_IMX_OPTEE=y
  14 +CONFIG_ENV_IS_IN_MMC=y
  15 +CONFIG_BOOTDELAY=3
  16 +# CONFIG_CONSOLE_MUX is not set
  17 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  18 +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
  19 +CONFIG_SUPPORT_RAW_INITRD=y
  20 +CONFIG_BOUNCE_BUFFER=y
  21 +CONFIG_HUSH_PARSER=y
  22 +CONFIG_CMD_BOOTZ=y
  23 +# CONFIG_CMD_IMLS is not set
  24 +# CONFIG_CMD_FLASH is not set
  25 +CONFIG_CMD_MEMTEST=y
  26 +CONFIG_CMD_MMC=y
  27 +CONFIG_CMD_PART=y
  28 +CONFIG_CMD_I2C=y
  29 +CONFIG_CMD_USB=y
  30 +CONFIG_CMD_USB_MASS_STORAGE=y
  31 +CONFIG_CMD_GPIO=y
  32 +CONFIG_CMD_DHCP=y
  33 +CONFIG_CMD_MII=y
  34 +CONFIG_CMD_PING=y
  35 +CONFIG_CMD_CACHE=y
  36 +CONFIG_CMD_EXT2=y
  37 +CONFIG_CMD_EXT4=y
  38 +CONFIG_CMD_EXT4_WRITE=y
  39 +CONFIG_CMD_FAT=y
  40 +CONFIG_CMD_FS_GENERIC=y
  41 +CONFIG_USB=y
  42 +CONFIG_DM_USB=y
  43 +CONFIG_USB_STORAGE=y
  44 +CONFIG_USB_GADGET=y
  45 +CONFIG_CI_UDC=y
  46 +CONFIG_USB_GADGET_DOWNLOAD=y
  47 +CONFIG_USB_HOST_ETHER=y
  48 +CONFIG_USB_ETHER_ASIX=y
  49 +CONFIG_USB_GADGET_MANUFACTURER="FSL"
  50 +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
  51 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
  52 +
  53 +# CONFIG_VIDEO_SW_CURSOR is not set
  54 +# CONFIG_OF_LIBFDT=y
  55 +
  56 +CONFIG_DEFAULT_DEVICE_TREE="imx6dl-sabreauto"
  57 +CONFIG_OF_CONTROL=y
  58 +CONFIG_DM_GPIO=y
  59 +CONFIG_DM_PCA953X=y
  60 +CONFIG_DM_I2C=y
  61 +CONFIG_DM_MMC=y
  62 +CONFIG_FSL_USDHC=y
  63 +CONFIG_PINCTRL=y
  64 +CONFIG_PINCTRL_IMX6=y
  65 +CONFIG_DM_PMIC=y
  66 +CONFIG_DM_PMIC_PFUZE100=y
  67 +CONFIG_DM_REGULATOR=y
  68 +CONFIG_DM_REGULATOR_PFUZE100=y
  69 +CONFIG_DM_REGULATOR_FIXED=y
  70 +CONFIG_DM_REGULATOR_GPIO=y
  71 +CONFIG_DM_ETH=y
  72 +CONFIG_PHYLIB=y
  73 +CONFIG_MII=y
configs/mx6qpsabreauto_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6QPSABREAUTO=y
  4 +CONFIG_NR_DRAM_BANKS=1
  5 +CONFIG_ENV_SIZE=0x2000
  6 +CONFIG_ENV_OFFSET=0xE0000
  7 +CONFIG_DM_VIDEO=y
  8 +# CONFIG_VIDEO_BPP8 is not set
  9 +# CONFIG_VIDEO_BPP32 is not set
  10 +CONFIG_SYS_WHITE_ON_BLACK=y
  11 +CONFIG_VIDEO_IPUV3=y
  12 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6qp.cfg"
  13 +CONFIG_IMX_OPTEE=y
  14 +CONFIG_ENV_IS_IN_MMC=y
  15 +CONFIG_BOOTDELAY=3
  16 +# CONFIG_CONSOLE_MUX is not set
  17 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  18 +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
  19 +CONFIG_SUPPORT_RAW_INITRD=y
  20 +CONFIG_BOUNCE_BUFFER=y
  21 +CONFIG_HUSH_PARSER=y
  22 +CONFIG_CMD_BOOTZ=y
  23 +# CONFIG_CMD_IMLS is not set
  24 +# CONFIG_CMD_FLASH is not set
  25 +CONFIG_CMD_MEMTEST=y
  26 +CONFIG_CMD_MMC=y
  27 +CONFIG_CMD_PART=y
  28 +CONFIG_CMD_I2C=y
  29 +CONFIG_CMD_USB=y
  30 +CONFIG_CMD_USB_MASS_STORAGE=y
  31 +CONFIG_CMD_GPIO=y
  32 +CONFIG_CMD_DHCP=y
  33 +CONFIG_CMD_MII=y
  34 +CONFIG_CMD_PING=y
  35 +CONFIG_CMD_CACHE=y
  36 +CONFIG_CMD_EXT2=y
  37 +CONFIG_CMD_EXT4=y
  38 +CONFIG_CMD_EXT4_WRITE=y
  39 +CONFIG_CMD_FAT=y
  40 +CONFIG_CMD_FS_GENERIC=y
  41 +CONFIG_USB=y
  42 +CONFIG_DM_USB=y
  43 +CONFIG_USB_STORAGE=y
  44 +CONFIG_USB_GADGET=y
  45 +CONFIG_CI_UDC=y
  46 +CONFIG_USB_GADGET_DOWNLOAD=y
  47 +CONFIG_USB_HOST_ETHER=y
  48 +CONFIG_USB_ETHER_ASIX=y
  49 +CONFIG_USB_GADGET_MANUFACTURER="FSL"
  50 +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
  51 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
  52 +
  53 +# CONFIG_VIDEO_SW_CURSOR is not set
  54 +# CONFIG_OF_LIBFDT=y
  55 +
  56 +CONFIG_DEFAULT_DEVICE_TREE="imx6qp-sabreauto"
  57 +CONFIG_OF_CONTROL=y
  58 +CONFIG_DM_GPIO=y
  59 +CONFIG_DM_PCA953X=y
  60 +CONFIG_DM_I2C=y
  61 +CONFIG_DM_MMC=y
  62 +CONFIG_FSL_USDHC=y
  63 +CONFIG_PINCTRL=y
  64 +CONFIG_PINCTRL_IMX6=y
  65 +CONFIG_DM_PMIC=y
  66 +CONFIG_DM_PMIC_PFUZE100=y
  67 +CONFIG_DM_REGULATOR=y
  68 +CONFIG_DM_REGULATOR_PFUZE100=y
  69 +CONFIG_DM_REGULATOR_FIXED=y
  70 +CONFIG_DM_REGULATOR_GPIO=y
  71 +CONFIG_DM_ETH=y
  72 +CONFIG_PHYLIB=y
  73 +CONFIG_MII=y
configs/mx6qsabreauto_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6QSABREAUTO=y
  4 +CONFIG_NR_DRAM_BANKS=1
  5 +CONFIG_ENV_SIZE=0x2000
  6 +CONFIG_ENV_OFFSET=0xE0000
  7 +CONFIG_DM_VIDEO=y
  8 +# CONFIG_VIDEO_BPP8 is not set
  9 +# CONFIG_VIDEO_BPP32 is not set
  10 +CONFIG_SYS_WHITE_ON_BLACK=y
  11 +CONFIG_VIDEO_IPUV3=y
  12 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/imximage.cfg"
  13 +CONFIG_IMX_OPTEE=y
  14 +CONFIG_ENV_IS_IN_MMC=y
  15 +CONFIG_BOOTDELAY=3
  16 +# CONFIG_CONSOLE_MUX is not set
  17 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  18 +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
  19 +CONFIG_SUPPORT_RAW_INITRD=y
  20 +CONFIG_BOUNCE_BUFFER=y
  21 +CONFIG_HUSH_PARSER=y
  22 +CONFIG_CMD_BOOTZ=y
  23 +# CONFIG_CMD_IMLS is not set
  24 +# CONFIG_CMD_FLASH is not set
  25 +CONFIG_CMD_MEMTEST=y
  26 +CONFIG_CMD_MMC=y
  27 +CONFIG_CMD_PART=y
  28 +CONFIG_CMD_I2C=y
  29 +CONFIG_CMD_USB=y
  30 +CONFIG_CMD_USB_MASS_STORAGE=y
  31 +CONFIG_CMD_GPIO=y
  32 +CONFIG_CMD_DHCP=y
  33 +CONFIG_CMD_MII=y
  34 +CONFIG_CMD_PING=y
  35 +CONFIG_CMD_CACHE=y
  36 +CONFIG_CMD_EXT2=y
  37 +CONFIG_CMD_EXT4=y
  38 +CONFIG_CMD_EXT4_WRITE=y
  39 +CONFIG_CMD_FAT=y
  40 +CONFIG_CMD_FS_GENERIC=y
  41 +CONFIG_USB=y
  42 +CONFIG_DM_USB=y
  43 +CONFIG_USB_STORAGE=y
  44 +CONFIG_USB_GADGET=y
  45 +CONFIG_CI_UDC=y
  46 +CONFIG_USB_GADGET_DOWNLOAD=y
  47 +CONFIG_USB_HOST_ETHER=y
  48 +CONFIG_USB_ETHER_ASIX=y
  49 +CONFIG_USB_GADGET_MANUFACTURER="FSL"
  50 +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
  51 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
  52 +
  53 +# CONFIG_VIDEO_SW_CURSOR is not set
  54 +# CONFIG_OF_LIBFDT=y
  55 +
  56 +CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabreauto"
  57 +CONFIG_OF_CONTROL=y
  58 +CONFIG_DM_GPIO=y
  59 +CONFIG_DM_PCA953X=y
  60 +CONFIG_DM_I2C=y
  61 +CONFIG_DM_MMC=y
  62 +CONFIG_FSL_USDHC=y
  63 +CONFIG_PINCTRL=y
  64 +CONFIG_PINCTRL_IMX6=y
  65 +CONFIG_DM_PMIC=y
  66 +CONFIG_DM_PMIC_PFUZE100=y
  67 +CONFIG_DM_REGULATOR=y
  68 +CONFIG_DM_REGULATOR_PFUZE100=y
  69 +CONFIG_DM_REGULATOR_FIXED=y
  70 +CONFIG_DM_REGULATOR_GPIO=y
  71 +CONFIG_DM_ETH=y
  72 +CONFIG_PHYLIB=y
  73 +CONFIG_MII=y
configs/mx6solosabreauto_optee_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_MX6=y
  3 +CONFIG_TARGET_MX6SOLOSABREAUTO=y
  4 +CONFIG_NR_DRAM_BANKS=1
  5 +CONFIG_ENV_SIZE=0x2000
  6 +CONFIG_ENV_OFFSET=0xE0000
  7 +CONFIG_DM_VIDEO=y
  8 +# CONFIG_VIDEO_BPP8 is not set
  9 +# CONFIG_VIDEO_BPP32 is not set
  10 +CONFIG_SYS_WHITE_ON_BLACK=y
  11 +CONFIG_VIDEO_IPUV3=y
  12 +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6solo.cfg"
  13 +CONFIG_IMX_OPTEE=y
  14 +CONFIG_ENV_IS_IN_MMC=y
  15 +CONFIG_BOOTDELAY=3
  16 +# CONFIG_CONSOLE_MUX is not set
  17 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
  18 +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
  19 +CONFIG_SUPPORT_RAW_INITRD=y
  20 +CONFIG_BOUNCE_BUFFER=y
  21 +CONFIG_HUSH_PARSER=y
  22 +CONFIG_CMD_BOOTZ=y
  23 +# CONFIG_CMD_IMLS is not set
  24 +# CONFIG_CMD_FLASH is not set
  25 +CONFIG_CMD_MEMTEST=y
  26 +CONFIG_CMD_MMC=y
  27 +CONFIG_CMD_PART=y
  28 +CONFIG_CMD_I2C=y
  29 +CONFIG_CMD_USB=y
  30 +CONFIG_CMD_USB_MASS_STORAGE=y
  31 +CONFIG_CMD_GPIO=y
  32 +CONFIG_CMD_DHCP=y
  33 +CONFIG_CMD_MII=y
  34 +CONFIG_CMD_PING=y
  35 +CONFIG_CMD_CACHE=y
  36 +CONFIG_CMD_EXT2=y
  37 +CONFIG_CMD_EXT4=y
  38 +CONFIG_CMD_EXT4_WRITE=y
  39 +CONFIG_CMD_FAT=y
  40 +CONFIG_CMD_FS_GENERIC=y
  41 +CONFIG_USB=y
  42 +CONFIG_DM_USB=y
  43 +CONFIG_USB_STORAGE=y
  44 +CONFIG_USB_GADGET=y
  45 +CONFIG_CI_UDC=y
  46 +CONFIG_USB_GADGET_DOWNLOAD=y
  47 +CONFIG_USB_HOST_ETHER=y
  48 +CONFIG_USB_ETHER_ASIX=y
  49 +CONFIG_USB_GADGET_MANUFACTURER="FSL"
  50 +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
  51 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
  52 +
  53 +# CONFIG_VIDEO_SW_CURSOR is not set
  54 +# CONFIG_OF_LIBFDT=y
  55 +
  56 +CONFIG_DEFAULT_DEVICE_TREE="imx6dl-sabreauto"
  57 +CONFIG_OF_CONTROL=y
  58 +CONFIG_DM_GPIO=y
  59 +CONFIG_DM_PCA953X=y
  60 +CONFIG_DM_I2C=y
  61 +CONFIG_DM_MMC=y
  62 +CONFIG_FSL_USDHC=y
  63 +CONFIG_PINCTRL=y
  64 +CONFIG_PINCTRL_IMX6=y
  65 +CONFIG_DM_PMIC=y
  66 +CONFIG_DM_PMIC_PFUZE100=y
  67 +CONFIG_DM_REGULATOR=y
  68 +CONFIG_DM_REGULATOR_PFUZE100=y
  69 +CONFIG_DM_REGULATOR_FIXED=y
  70 +CONFIG_DM_REGULATOR_GPIO=y
  71 +CONFIG_DM_ETH=y
  72 +CONFIG_PHYLIB=y
  73 +CONFIG_MII=y
include/configs/mx6sabre_common.h
... ... @@ -51,9 +51,13 @@
51 51 "\0" \
52 52 "initrd_addr=0x12C00000\0" \
53 53 "initrd_high=0xffffffff\0" \
54   - "bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
  54 + "bootcmd_mfg=run mfgtool_args; " \
  55 + "if test ${tee} = yes; then " \
  56 + "bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; " \
  57 + "else " \
  58 + "bootz ${loadaddr} ${initrd_addr} ${fdt_addr}; " \
  59 + "fi;\0"
55 60  
56   -
57 61 #ifdef CONFIG_SUPPORT_EMMC_BOOT
58 62 #define EMMC_ENV \
59 63 "emmcdev=2\0" \
60 64  
... ... @@ -87,7 +91,9 @@
87 91 */
88 92 #define CONFIG_EXTRA_ENV_SETTINGS \
89 93 CONFIG_MFG_ENV_SETTINGS \
  94 + TEE_ENV \
90 95 "fdt_addr=0x18000000\0" \
  96 + "tee_addr=0x20000000\0" \
91 97 "fdt_high=0xffffffff\0" \
92 98 "console=" CONSOLE_DEV "\0" \
93 99 "bootargs=console=" CONSOLE_DEV ",115200 ubi.mtd=6 " \
94 100  
95 101  
... ... @@ -96,16 +102,24 @@
96 102 "\0" \
97 103 "bootcmd=nand read ${loadaddr} 0x4000000 0xc00000;"\
98 104 "nand read ${fdt_addr} 0x5000000 0x100000;"\
99   - "bootz ${loadaddr} - ${fdt_addr}\0"
  105 + "if test ${tee} = yes; then " \
  106 + "nand read ${tee_addr} 0x4000000 0x400000;"\
  107 + "bootm ${tee_addr} - ${fdt_addr};" \
  108 + "else " \
  109 + "bootz ${loadaddr} - ${fdt_addr};" \
  110 + "fi\0"
100 111  
101 112 #elif defined(CONFIG_SATA_BOOT)
102 113  
103 114 #define CONFIG_EXTRA_ENV_SETTINGS \
104 115 CONFIG_MFG_ENV_SETTINGS \
  116 + TEE_ENV \
105 117 "image=zImage\0" \
106 118 "fdt_file=undefined\0" \
107 119 "fdt_addr=0x18000000\0" \
108 120 "fdt_high=0xffffffff\0" \
  121 + "tee_addr=0x20000000\0" \
  122 + "tee_file=undefined\0" \
109 123 "findfdt="\
110 124 "if test $fdt_file = undefined; then " \
111 125 "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \
112 126  
113 127  
114 128  
115 129  
... ... @@ -125,25 +139,49 @@
125 139 "fi; " \
126 140 "fi;\0" \
127 141 "findtee="\
  142 + "if test $tee_file = undefined; then " \
  143 + "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \
  144 + "setenv tee_file uTee-6qpauto; fi; " \
  145 + "if test $board_name = SABREAUTO && test $board_rev = MX6Q; then " \
  146 + "setenv tee_file uTee-6qauto; fi; " \
  147 + "if test $board_name = SABREAUTO && test $board_rev = MX6DL; then " \
  148 + "setenv tee_file uTee-6dlauto; fi; " \
  149 + "if test $board_name = SABRESD && test $board_rev = MX6QP; then " \
  150 + "setenv tee_file uTee-6qpsdb; fi; " \
  151 + "if test $board_name = SABRESD && test $board_rev = MX6Q; then " \
  152 + "setenv tee_file uTee-6qsdb; fi; " \
  153 + "if test $board_name = SABRESD && test $board_rev = MX6DL; then " \
  154 + "setenv tee_file uTee-6dlsdb; fi; " \
  155 + "if test $tee_file = undefined; then " \
  156 + "echo WARNING: Could not determine tee to use; fi; " \
  157 + "fi;\0" \
128 158 "bootargs=console=" CONSOLE_DEV ",115200 \0"\
129 159 "bootargs_sata=setenv bootargs ${bootargs} " \
130 160 "root=/dev/sda2 rootwait rw \0" \
131 161 "bootcmd_sata=run bootargs_sata; sata init; " \
132   - "run findfdt;" \
  162 + "run findfdt; run findtee;" \
133 163 "fatload sata 0:1 ${loadaddr} ${image}; " \
134 164 "fatload sata 0:1 ${fdt_addr} ${fdt_file}; " \
135   - "bootz ${loadaddr} - ${fdt_addr} \0" \
  165 + "if test ${tee} = yes; then " \
  166 + "fatload sata 0:1 ${tee_addr} ${tee_file}; " \
  167 + "bootm ${tee_addr} - ${fdt_addr}; " \
  168 + "else " \
  169 + "bootz ${loadaddr} - ${fdt_addr}; " \
  170 + "fi \0"\
136 171 "bootcmd=run bootcmd_sata \0"
137 172  
138 173 #else
139 174  
140 175 #define CONFIG_EXTRA_ENV_SETTINGS \
141 176 CONFIG_MFG_ENV_SETTINGS \
  177 + TEE_ENV \
142 178 "epdc_waveform=epdc_splash.bin\0" \
143 179 "script=boot.scr\0" \
144 180 "image=zImage\0" \
145 181 "fdt_file=undefined\0" \
146 182 "fdt_addr=0x18000000\0" \
  183 + "tee_addr=0x20000000\0" \
  184 + "tee_file=undefined\0" \
147 185 "boot_fdt=try\0" \
148 186 "ip_dyn=yes\0" \
149 187 "console=" CONSOLE_DEV "\0" \
150 188  
151 189  
152 190  
... ... @@ -182,20 +220,25 @@
182 220 "source\0" \
183 221 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
184 222 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
  223 + "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \
185 224 "mmcboot=echo Booting from mmc ...; " \
186 225 "run mmcargs; " \
187   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
188   - "if run loadfdt; then " \
189   - "bootz ${loadaddr} - ${fdt_addr}; " \
190   - "else " \
191   - "if test ${boot_fdt} = try; then " \
192   - "bootz; " \
  226 + "if test ${tee} = yes; then " \
  227 + "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \
  228 + "else " \
  229 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  230 + "if run loadfdt; then " \
  231 + "bootz ${loadaddr} - ${fdt_addr}; " \
193 232 "else " \
194   - "echo WARN: Cannot load the DT; " \
  233 + "if test ${boot_fdt} = try; then " \
  234 + "bootz; " \
  235 + "else " \
  236 + "echo WARN: Cannot load the DT; " \
  237 + "fi; " \
195 238 "fi; " \
196   - "fi; " \
197   - "else " \
198   - "bootz; " \
  239 + "else " \
  240 + "bootz; " \
  241 + "fi;" \
199 242 "fi;\0" \
200 243 "netargs=setenv bootargs console=${console},${baudrate} ${smp} " \
201 244 "root=/dev/nfs " \
202 245  
203 246  
204 247  
... ... @@ -208,18 +251,24 @@
208 251 "setenv get_cmd tftp; " \
209 252 "fi; " \
210 253 "${get_cmd} ${image}; " \
211   - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
212   - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
213   - "bootz ${loadaddr} - ${fdt_addr}; " \
214   - "else " \
215   - "if test ${boot_fdt} = try; then " \
216   - "bootz; " \
  254 + "if test ${tee} = yes; then " \
  255 + "${get_cmd} ${tee_addr} ${tee_file}; " \
  256 + "${get_cmd} ${fdt_addr} ${fdt_file}; " \
  257 + "bootm ${tee_addr} - ${fdt_addr}; " \
  258 + "else " \
  259 + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
  260 + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
  261 + "bootz ${loadaddr} - ${fdt_addr}; " \
217 262 "else " \
218   - "echo WARN: Cannot load the DT; " \
  263 + "if test ${boot_fdt} = try; then " \
  264 + "bootz; " \
  265 + "else " \
  266 + "echo WARN: Cannot load the DT; " \
  267 + "fi; " \
219 268 "fi; " \
  269 + "else " \
  270 + "bootz; " \
220 271 "fi; " \
221   - "else " \
222   - "bootz; " \
223 272 "fi;\0" \
224 273 "findfdt="\
225 274 "if test $fdt_file = undefined; then " \
226 275  
... ... @@ -238,9 +287,27 @@
238 287 "if test $fdt_file = undefined; then " \
239 288 "echo WARNING: Could not determine dtb to use; fi; " \
240 289 "fi;\0" \
  290 + "findtee="\
  291 + "if test $tee_file = undefined; then " \
  292 + "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \
  293 + "setenv tee_file uTee-6qpauto; fi; " \
  294 + "if test $board_name = SABREAUTO && test $board_rev = MX6Q; then " \
  295 + "setenv tee_file uTee-6qauto; fi; " \
  296 + "if test $board_name = SABREAUTO && test $board_rev = MX6DL; then " \
  297 + "setenv tee_file uTee-6dlauto; fi; " \
  298 + "if test $board_name = SABRESD && test $board_rev = MX6QP; then " \
  299 + "setenv tee_file uTee-6qpsdb; fi; " \
  300 + "if test $board_name = SABRESD && test $board_rev = MX6Q; then " \
  301 + "setenv tee_file uTee-6qsdb; fi; " \
  302 + "if test $board_name = SABRESD && test $board_rev = MX6DL; then " \
  303 + "setenv tee_file uTee-6dlsdb; fi; " \
  304 + "if test $tee_file = undefined; then " \
  305 + "echo WARNING: Could not determine tee to use; fi; " \
  306 + "fi;\0" \
241 307  
242 308 #define CONFIG_BOOTCOMMAND \
243 309 "run findfdt;" \
  310 + "run findtee;" \
244 311 "mmc dev ${mmcdev};" \
245 312 "if mmc rescan; then " \
246 313 "if run loadbootscript; then " \