From: Henry Beberman <henry.beber...@microsoft.com> This patch series is a collaboration between Microsoft and NXP to enable Windows 10 IoT Core on NXP's iMX6 and iMX7 platforms.
The series contains reference configurations to enable Windows boot on the following platforms: mx6sabresd, mx7dsabresd, mx6cuboxi, udoo_neo, and cl-som-imx7 These patches enable the following Windows boot flow: 1) U-Boot SPL loads from the MMC into on-chip RAM. 2) SPL loads a Flat Image Tree containing the OP-TEE runtime and U-Boot Proper. 3) SPL disables caches/interrupts and jumps into OP-TEE. 4) OP-TEE initializes then returns to the entry point of U-Boot Proper in normal mode. OP-TEE is later used as a runtime for Trusted Applications from within Windows. 5) U-Boot Proper initializes the platform bypassing several actions that would require secure world access. 6) The U-Boot Proper bootcmd loads a UEFI firmware binary from the first FAT partition of the MMC into memory. 7) An overridden go command will stash the platform MAC address from the U-Boot env into a page of memory that is preserved for UEFI. 8) The overridden go command will disable caches and interrupts then jump into UEFI. 9) UEFI initializes the platform further and boots Windows from MMC. Henry Beberman (11): imx: Add bootcmd to load and run UEFI from mmc arm: Allow U-Boot Proper to run in normal world spl: Add FIT boot into OP-TEE then U-Boot proper spl: imx: Add optional lds to keep SPL entirely in on-chip RAM mx6sabresd: nt: Add Windows boot support for iMX6 Sabre mx7dsabresd: Add Windows boot support for iMX7 Sabre mx6cuboxi: Add Windows boot support for mx6cuboxi udoo_neo: Add Windows boot support for UDOO Neo cl-som-imx7: Add Windows boot support for cl-som-imx7 imx: Reserve a global page in memory to pass configuration to UEFI imx: Add MAC addresses to global page to pass MAC into UEFI Cc: Stefano Babic <sba...@denx.de> Cc: Fabio Estevam <fabio.este...@nxp.com> Cc: Tom Rini <tr...@konsulko.com> Cc: Robert Solomon <rob...@exchange.microsoft.com> Cc: Chirag Shah <ch...@microsoft.com> Cc: Robert Oshana <robert.osh...@nxp.com> Cc: Patrick Stilwell <patrick.stilw...@nxp.com> arch/arm/cpu/armv7/Kconfig | 7 ++ arch/arm/cpu/armv7/Makefile | 1 + arch/arm/cpu/armv7/optee_jump.S | 31 +++++++++ arch/arm/cpu/armv7/start.S | 11 ++-- arch/arm/dts/Makefile | 4 ++ arch/arm/dts/imx6qdl-mx6cuboxi.dts | 8 +++ arch/arm/dts/imx6qdl-sdb.dts | 8 +++ arch/arm/dts/imx6sx-udoo-neo.dts | 8 +++ arch/arm/dts/imx7d-cl-som-imx7.dts | 8 +++ arch/arm/lib/spl.c | 16 +++++ arch/arm/mach-imx/Kconfig | 23 +++++++ arch/arm/mach-imx/Makefile | 2 + arch/arm/mach-imx/boot.c | 25 ++++++++ arch/arm/mach-imx/global_page.c | 52 +++++++++++++++ arch/arm/mach-imx/mx7/Kconfig | 1 + arch/arm/mach-imx/mx7/soc.c | 7 +- arch/arm/mach-imx/syscounter.c | 2 + arch/arm/mach-imx/u-boot-spl-sram.lds | 59 +++++++++++++++++ board/compulab/cl-som-imx7/MAINTAINERS | 2 + board/compulab/cl-som-imx7/cl-som-imx7.c | 47 +++++++++++++- board/compulab/cl-som-imx7/spl.c | 7 ++ board/freescale/mx6sabresd/MAINTAINERS | 2 + board/freescale/mx6sabresd/mx6sabresd.c | 9 ++- board/freescale/mx7dsabresd/MAINTAINERS | 1 + board/freescale/mx7dsabresd/mx7dsabresd.c | 79 +++++++++++++++++++++++ board/solidrun/mx6cuboxi/MAINTAINERS | 2 + board/solidrun/mx6cuboxi/mx6cuboxi.c | 7 ++ board/udoo/neo/MAINTAINERS | 2 + board/udoo/neo/neo.c | 7 ++ common/Kconfig | 17 +++++ common/spl/Kconfig | 9 +++ common/spl/spl.c | 6 ++ configs/cl-som-imx7_nt_defconfig | 82 ++++++++++++++++++++++++ configs/mx6cuboxi_nt_defconfig | 64 +++++++++++++++++++ configs/mx6sabresd_nt_defconfig | 60 ++++++++++++++++++ configs/mx7dsabresd_nt_defconfig | 102 ++++++++++++++++++++++++++++++ configs/udoo_neo_nt_defconfig | 57 +++++++++++++++++ drivers/gpio/Makefile | 3 + drivers/pinctrl/nxp/pinctrl-imx7.c | 4 +- include/config_uefi_bootcmd.h | 29 +++++++++ include/configs/cl-som-imx7.h | 18 +++++- include/configs/imx6_spl.h | 2 + include/configs/imx7_spl.h | 2 + include/configs/mx6_common.h | 16 +++++ include/configs/mx6cuboxi.h | 8 +++ include/configs/mx6sabre_common.h | 10 +++ include/configs/mx7_common.h | 10 +++ include/configs/mx7dsabresd.h | 10 +++ include/configs/udoo_neo.h | 8 +++ include/global_page.h | 32 ++++++++++ include/spl.h | 21 ++++++ 51 files changed, 995 insertions(+), 13 deletions(-) create mode 100644 arch/arm/cpu/armv7/optee_jump.S create mode 100644 arch/arm/dts/imx6qdl-mx6cuboxi.dts create mode 100644 arch/arm/dts/imx6qdl-sdb.dts create mode 100644 arch/arm/dts/imx6sx-udoo-neo.dts create mode 100644 arch/arm/dts/imx7d-cl-som-imx7.dts create mode 100644 arch/arm/mach-imx/boot.c create mode 100644 arch/arm/mach-imx/global_page.c create mode 100644 arch/arm/mach-imx/u-boot-spl-sram.lds create mode 100644 configs/cl-som-imx7_nt_defconfig create mode 100644 configs/mx6cuboxi_nt_defconfig create mode 100644 configs/mx6sabresd_nt_defconfig create mode 100644 configs/mx7dsabresd_nt_defconfig create mode 100644 configs/udoo_neo_nt_defconfig create mode 100644 include/config_uefi_bootcmd.h create mode 100644 include/global_page.h -- 2.16.2.gvfs.1.33.gf5370f1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot