From 44242fe2c59c99936552cefd42b576feb51a25d7 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Thu, 9 Nov 2017 09:04:01 +0800 Subject: [PATCH] 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 (cherry picked from commit 62277d7e521894b079911fd8e8b26507ff03c018) (cherry picked from commit b7be942860a15feb0bd660b1922d4ed9306f1184) (cherry picked from commit 56d2100c6b3c483d063ce70ad7ce9d6da378ada6) --- board/freescale/mx6sabreauto/imximage.cfg | 5 + board/freescale/mx6sabreauto/mx6dl.cfg | 5 + board/freescale/mx6sabreauto/mx6sabreauto.c | 5 + board/freescale/mx6sabreauto/mx6solo.cfg | 5 + board/freescale/mx6sabreauto/plugin.S | 8 ++ configs/mx6dlsabreauto_optee_defconfig | 67 ++++++++++++ configs/mx6qpsabreauto_optee_defconfig | 67 ++++++++++++ configs/mx6qsabreauto_optee_defconfig | 67 ++++++++++++ configs/mx6solosabreauto_optee_defconfig | 67 ++++++++++++ include/configs/mx6sabre_common.h | 114 +++++++++++++++----- 10 files changed, 386 insertions(+), 24 deletions(-) create mode 100644 configs/mx6dlsabreauto_optee_defconfig create mode 100644 configs/mx6qpsabreauto_optee_defconfig create mode 100644 configs/mx6qsabreauto_optee_defconfig create mode 100644 configs/mx6solosabreauto_optee_defconfig diff --git a/board/freescale/mx6sabreauto/imximage.cfg b/board/freescale/mx6sabreauto/imximage.cfg index a7756ece26..4c97e8ff6a 100644 --- a/board/freescale/mx6sabreauto/imximage.cfg +++ b/board/freescale/mx6sabreauto/imximage.cfg @@ -51,6 +51,11 @@ CSF CONFIG_CSF_SIZE * Address absolute address of the register * value value to be stored in the register */ +#ifdef CONFIG_IMX_OPTEE +SET_BIT 4 0x20c4070 0x3c00000 +DATA 4 0x20e0024 0x00000003 +CHECK_BITS_SET 4 0x20e0024 0x3 +#endif DATA 4 0x020e0798 0x000C0000 DATA 4 0x020e0758 0x00000000 DATA 4 0x020e0588 0x00000030 diff --git a/board/freescale/mx6sabreauto/mx6dl.cfg b/board/freescale/mx6sabreauto/mx6dl.cfg index d8ae4ef9c5..8d01d4b879 100644 --- a/board/freescale/mx6sabreauto/mx6dl.cfg +++ b/board/freescale/mx6sabreauto/mx6dl.cfg @@ -52,6 +52,11 @@ CSF CONFIG_CSF_SIZE * Address absolute address of the register * value value to be stored in the register */ +#ifdef CONFIG_IMX_OPTEE +SET_BIT 4 0x20c4070 0x3c00000 +DATA 4 0x20e0024 0x00000003 +CHECK_BITS_SET 4 0x20e0024 0x3 +#endif DATA 4 0x020e0774 0x000C0000 DATA 4 0x020e0754 0x00000000 DATA 4 0x020e04ac 0x00000030 diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c index 5412e42d02..c4c1a981a1 100644 --- a/board/freescale/mx6sabreauto/mx6sabreauto.c +++ b/board/freescale/mx6sabreauto/mx6sabreauto.c @@ -899,6 +899,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", "SABREAUTO"); diff --git a/board/freescale/mx6sabreauto/mx6solo.cfg b/board/freescale/mx6sabreauto/mx6solo.cfg index f9ff4fe1ee..abce4f9ea6 100644 --- a/board/freescale/mx6sabreauto/mx6solo.cfg +++ b/board/freescale/mx6sabreauto/mx6solo.cfg @@ -52,6 +52,11 @@ CSF CONFIG_CSF_SIZE * Address absolute address of the register * value value to be stored in the register */ +#ifdef CONFIG_IMX_OPTEE +SET_BIT 4 0x20c4070 0x3c00000 +DATA 4 0x20e0024 0x00000003 +CHECK_BITS_SET 4 0x20e0024 0x3 +#endif DATA 4, 0x020e0774, 0x000C0000 DATA 4, 0x020e0754, 0x00000000 DATA 4, 0x020e04ac, 0x00000030 diff --git a/board/freescale/mx6sabreauto/plugin.S b/board/freescale/mx6sabreauto/plugin.S index 8e8f410aad..6301ae1990 100644 --- a/board/freescale/mx6sabreauto/plugin.S +++ b/board/freescale/mx6sabreauto/plugin.S @@ -631,6 +631,14 @@ str r1, [r0, #0x07c] ldr r1, =0x00000FFF str r1, [r0, #0x080] + +#ifdef CONFIG_IMX_OPTEE +#ifndef CONFIG_MX6QP + ldr r0, =0x20e0024 + ldr r1, =0x3 + str r1, [r0] +#endif +#endif .endm .macro imx6_qos_setting diff --git a/configs/mx6dlsabreauto_optee_defconfig b/configs/mx6dlsabreauto_optee_defconfig new file mode 100644 index 0000000000..3ea0e81440 --- /dev/null +++ b/configs/mx6dlsabreauto_optee_defconfig @@ -0,0 +1,67 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_TARGET_MX6DLSABREAUTO=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_VIDEO=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6dl.cfg" +CONFIG_IMX_OPTEE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_BOOTDELAY=3 +# CONFIG_CONSOLE_MUX is not set +CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_BOUNCE_BUFFER=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y +CONFIG_CMD_I2C=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 + +# CONFIG_VIDEO_SW_CURSOR is not set +# CONFIG_OF_LIBFDT=y + +CONFIG_DEFAULT_DEVICE_TREE="imx6dl-sabreauto" +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=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_DM_ETH=y +CONFIG_PHYLIB=y +CONFIG_MII=y diff --git a/configs/mx6qpsabreauto_optee_defconfig b/configs/mx6qpsabreauto_optee_defconfig new file mode 100644 index 0000000000..5b50ff63b6 --- /dev/null +++ b/configs/mx6qpsabreauto_optee_defconfig @@ -0,0 +1,67 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_TARGET_MX6QPSABREAUTO=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_VIDEO=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6qp.cfg" +CONFIG_IMX_OPTEE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_BOOTDELAY=3 +# CONFIG_CONSOLE_MUX is not set +CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_BOUNCE_BUFFER=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y +CONFIG_CMD_I2C=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 + +# CONFIG_VIDEO_SW_CURSOR is not set +# CONFIG_OF_LIBFDT=y + +CONFIG_DEFAULT_DEVICE_TREE="imx6qp-sabreauto" +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=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_DM_ETH=y +CONFIG_PHYLIB=y +CONFIG_MII=y diff --git a/configs/mx6qsabreauto_optee_defconfig b/configs/mx6qsabreauto_optee_defconfig new file mode 100644 index 0000000000..07f7c023ce --- /dev/null +++ b/configs/mx6qsabreauto_optee_defconfig @@ -0,0 +1,67 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_TARGET_MX6QSABREAUTO=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_VIDEO=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/imximage.cfg" +CONFIG_IMX_OPTEE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_BOOTDELAY=3 +# CONFIG_CONSOLE_MUX is not set +CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_BOUNCE_BUFFER=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y +CONFIG_CMD_I2C=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 + +# CONFIG_VIDEO_SW_CURSOR is not set +# CONFIG_OF_LIBFDT=y + +CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabreauto" +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=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_DM_ETH=y +CONFIG_PHYLIB=y +CONFIG_MII=y diff --git a/configs/mx6solosabreauto_optee_defconfig b/configs/mx6solosabreauto_optee_defconfig new file mode 100644 index 0000000000..5af79ddc69 --- /dev/null +++ b/configs/mx6solosabreauto_optee_defconfig @@ -0,0 +1,67 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_TARGET_MX6SOLOSABREAUTO=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_VIDEO=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabreauto/mx6solo.cfg" +CONFIG_IMX_OPTEE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_BOOTDELAY=3 +# CONFIG_CONSOLE_MUX is not set +CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_BOUNCE_BUFFER=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y +CONFIG_CMD_I2C=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 + +# CONFIG_VIDEO_SW_CURSOR is not set +# CONFIG_OF_LIBFDT=y + +CONFIG_DEFAULT_DEVICE_TREE="imx6dl-sabreauto" +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=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_DM_ETH=y +CONFIG_PHYLIB=y +CONFIG_MII=y diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h index 889a74e3fc..b8c846eef9 100644 --- a/include/configs/mx6sabre_common.h +++ b/include/configs/mx6sabre_common.h @@ -57,8 +57,12 @@ "\0" \ "initrd_addr=0x12C00000\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" #ifdef CONFIG_SUPPORT_EMMC_BOOT #define EMMC_ENV \ @@ -93,6 +97,7 @@ */ #define CONFIG_EXTRA_ENV_SETTINGS \ CONFIG_MFG_ENV_SETTINGS \ + TEE_ENV \ "fdt_addr=0x18000000\0" \ "fdt_high=0xffffffff\0" \ "console=" CONSOLE_DEV "\0" \ @@ -102,16 +107,24 @@ "\0" \ "bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\ "nand read ${fdt_addr} 0x5000000 0x100000;"\ - "bootz ${loadaddr} - ${fdt_addr}\0" + "if test ${tee} = yes; then " \ + "nand read ${tee_addr} 0x4000000 0x400000;"\ + "bootm ${teeaddr} - ${fdt_addr};" \ + "else " \ + "bootz ${loadaddr} - ${fdt_addr};" \ + "fi\0" #elif defined(CONFIG_SATA_BOOT) #define CONFIG_EXTRA_ENV_SETTINGS \ CONFIG_MFG_ENV_SETTINGS \ + TEE_ENV \ "image=zImage\0" \ "fdt_file=undefined\0" \ "fdt_addr=0x18000000\0" \ "fdt_high=0xffffffff\0" \ + "tee_addr=0x20000000\0" \ + "tee_file=undefined\0" \ "findfdt="\ "if test $fdt_file = undefined; then " \ "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \ @@ -131,25 +144,49 @@ "fi; " \ "fi;\0" \ "findtee="\ + "if test $tee_file = undefined; then " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \ + "setenv tee_file uTee-6qpauto; fi; " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6Q; then " \ + "setenv tee_file uTee-6qauto; fi; " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6DL; then " \ + "setenv tee_file uTee-6dlauto; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6QP; then " \ + "setenv tee_file uTee-6qpsdb; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6Q; then " \ + "setenv tee_file uTee-6qsdb; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6DL; then " \ + "setenv tee_file uTee-6dlsdb; fi; " \ + "if test $tee_file = undefined; then " \ + "echo WARNING: Could not determine tee to use; fi; " \ + "fi;\0" \ "bootargs=console=" CONSOLE_DEV ",115200 \0"\ "bootargs_sata=setenv bootargs ${bootargs} " \ "root=/dev/sda2 rootwait rw \0" \ "bootcmd_sata=run bootargs_sata; sata init; " \ - "run findfdt;" \ + "run findfdt; run findtee;" \ "fatload sata 0:1 ${loadaddr} ${image}; " \ "fatload sata 0:1 ${fdt_addr} ${fdt_file}; " \ - "bootz ${loadaddr} - ${fdt_addr} \0" \ + "if test ${tee} = yes; then " \ + "fatload sata 0:1 ${tee_addr} ${tee_file}; " \ + "bootm ${tee_addr} - ${fdt_addr}; " \ + "else " \ + "bootz ${loadaddr} - ${fdt_addr}; " \ + "fi \0"\ "bootcmd=run bootcmd_sata \0" #else #define CONFIG_EXTRA_ENV_SETTINGS \ CONFIG_MFG_ENV_SETTINGS \ + TEE_ENV \ "epdc_waveform=epdc_splash.bin\0" \ "script=boot.scr\0" \ "image=zImage\0" \ "fdt_file=undefined\0" \ "fdt_addr=0x18000000\0" \ + "tee_addr=0x20000000\0" \ + "tee_file=undefined\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ "console=" CONSOLE_DEV "\0" \ @@ -187,20 +224,25 @@ "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; " \ - "fi; " \ - "else " \ - "bootz; " \ + "else " \ + "bootz; " \ + "fi;" \ "fi;\0" \ "netargs=setenv bootargs console=${console},${baudrate} ${smp} " \ "root=/dev/nfs " \ @@ -213,18 +255,24 @@ "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 " \ @@ -244,9 +292,27 @@ "echo WARNING: Could not determine dtb to use; " \ "fi; " \ "fi;\0" \ + "findtee="\ + "if test $tee_file = undefined; then " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6QP; then " \ + "setenv tee_file uTee-6qpauto; fi; " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6Q; then " \ + "setenv tee_file uTee-6qauto; fi; " \ + "if test $board_name = SABREAUTO && test $board_rev = MX6DL; then " \ + "setenv tee_file uTee-6dlauto; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6QP; then " \ + "setenv tee_file uTee-6qpsdb; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6Q; then " \ + "setenv tee_file uTee-6qsdb; fi; " \ + "if test $board_name = SABRESD && test $board_rev = MX6DL; then " \ + "setenv tee_file uTee-6dlsdb; fi; " \ + "if test $tee_file = undefined; then " \ + "echo WARNING: Could not determine tee to use; fi; " \ + "fi;\0" \ #define CONFIG_BOOTCOMMAND \ "run findfdt;" \ + "run findtee;" \ "mmc dev ${mmcdev};" \ "if mmc rescan; then " \ "if run loadbootscript; then " \ -- 2.17.1