diff mbox series

[U-Boot,07/11] mx6cuboxi: Add Windows boot support for mx6cuboxi

Message ID 20180714001117.14584-8-hebeberm@microsoft.com
State Changes Requested
Delegated to: Stefano Babic
Headers show
Series Enable Windows 10 IoT Core on i.MX6 and i.MX7 | expand

Commit Message

Henry Beberman July 14, 2018, 12:11 a.m. UTC
From: Henry Beberman <henry.beberman@microsoft.com>

This patch adds a new bootable configuration for Windows 10 IoT Core on
the i.MX6 Quad HummingBoard.

It also adds a new device tree sources file for imx6qdl-mx6cuboxi.dts.
This is not required by Windows or UEFI but the build system requires a
device tree when building SPL with flat image tree support.

Signed-off-by: Henry Beberman <henry.beberman@microsoft.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Jon Nettleton <jon@solid-run.com>
---
 arch/arm/dts/Makefile                |  1 +
 arch/arm/dts/imx6qdl-mx6cuboxi.dts   |  8 +++++
 board/solidrun/mx6cuboxi/MAINTAINERS |  2 ++
 board/solidrun/mx6cuboxi/mx6cuboxi.c |  7 ++++
 configs/mx6cuboxi_nt_defconfig       | 62 ++++++++++++++++++++++++++++++++++++
 include/configs/mx6cuboxi.h          |  8 +++++
 6 files changed, 88 insertions(+)
 create mode 100644 arch/arm/dts/imx6qdl-mx6cuboxi.dts
 create mode 100644 configs/mx6cuboxi_nt_defconfig
diff mbox series

Patch

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 7d90bd39f3..109a00219d 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -411,6 +411,7 @@  dtb-$(CONFIG_MX6QDL) += \
 	imx6dl-icore-rqs.dtb \
 	imx6dl-mamoj.dtb \
 	imx6qdl-sdb.dtb \
+	imx6qdl-mx6cuboxi.dtb \
 	imx6q-cm-fx6.dtb \
 	imx6q-icore.dtb \
 	imx6q-icore-mipi.dtb \
diff --git a/arch/arm/dts/imx6qdl-mx6cuboxi.dts b/arch/arm/dts/imx6qdl-mx6cuboxi.dts
new file mode 100644
index 0000000000..907f44859f
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-mx6cuboxi.dts
@@ -0,0 +1,8 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Microsoft Corporation
+ */
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
diff --git a/board/solidrun/mx6cuboxi/MAINTAINERS b/board/solidrun/mx6cuboxi/MAINTAINERS
index 81f82bc9b5..1e4ed35d36 100644
--- a/board/solidrun/mx6cuboxi/MAINTAINERS
+++ b/board/solidrun/mx6cuboxi/MAINTAINERS
@@ -4,3 +4,5 @@  S:	Maintained
 F:	board/solidrun/mx6cuboxi/
 F:	include/configs/mx6cuboxi.h
 F:	configs/mx6cuboxi_defconfig
+F:	configs/mx6cuboxi_nt_defconfig
+F:	arch/arm/dts/imx6qdl-mx6cuboxi.dts
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 38d89f0130..bc423c3a86 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -143,6 +143,13 @@  static iomux_v3_cfg_t const usb_pads[] = {
 	IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL)),
 };
 
+#if defined(CONFIG_MULTI_DTB_FIT) || defined(CONFIG_SPL_LOAD_FIT)
+int board_fit_config_name_match(const char *name)
+{
+	return 0;
+}
+#endif
+
 static void setup_iomux_uart(void)
 {
 	SETUP_IOMUX_PADS(uart1_pads);
diff --git a/configs/mx6cuboxi_nt_defconfig b/configs/mx6cuboxi_nt_defconfig
new file mode 100644
index 0000000000..087569d2e9
--- /dev/null
+++ b/configs/mx6cuboxi_nt_defconfig
@@ -0,0 +1,62 @@ 
+CONFIG_ARCH_MX6=y
+CONFIG_ARM=y
+CONFIG_SYS_TEXT_BASE=0x17800000
+CONFIG_TARGET_MX6CUBOXI=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6qdl-mx6cuboxi"
+CONFIG_OF_CONTROL=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_OPTEE_BOOT=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_BOOTDELAY=-2
+CONFIG_UEFI_BOOT=y
+CONFIG_UEFI_LOAD_ADDR=0x10820000
+CONFIG_EFI_LOADER=n
+CONFIG_CMD_BOOTD=n
+CONFIG_CMD_BOOTM=n
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_HDMIDETECT=y
+CONFIG_CMD_I2C=n
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_SPL=n
+CONFIG_CMD_USB=y
+CONFIG_DISTRO_DEFAULTS=n
+CONFIG_DM=y
+CONFIG_DM_THERMAL=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CONS_INDEX=1
+CONFIG_PCI=n
+CONFIG_FSL_ESDHC=y
+CONFIG_PHYLIB=y
+CONFIG_SECURE_BOOT=y
+CONFIG_SPL=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_LEGACY_IMAGE_SUPPORT=n
+CONFIG_SPL_OF_LIBFDT=y
+CONFIG_SPL_DM=n
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_CRYPTO_SUPPORT=y
+CONFIG_SPL_EXT_SUPPORT=n
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_I2C_SUPPORT=n
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBDISK_SUPPORT=n
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_SPI_SUPPORT=n
+CONFIG_SPL_USE_ARCH_MEMCPY=n
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_LDSCRIPT="arch/arm/mach-imx/u-boot-spl-sram.lds"
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
+CONFIG_SYS_L2CACHE_OFF=y
+CONFIG_SYS_MALLOC_F_LEN=0x800
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB=y
+CONFIG_USE_TINY_PRINTF=y
+CONFIG_VIDEO=y
+CONFIG_OF_LIBFDT=y
\ No newline at end of file
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
index 803661cfa8..34fad495b1 100644
--- a/include/configs/mx6cuboxi.h
+++ b/include/configs/mx6cuboxi.h
@@ -71,6 +71,13 @@ 
 #define CONFIG_SYS_MMC_ENV_DEV		0	/* SDHC2 */
 
 #ifndef CONFIG_SPL_BUILD
+#ifdef CONFIG_UEFI_BOOT
+#include <config_uefi_bootcmd.h>
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"mmcdev=0\0" \
+	BOOTENV
+#else
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"fdtfile=undefined\0" \
 	"fdt_addr_r=0x18000000\0" \
@@ -125,6 +132,7 @@ 
 	func(DHCP, dhcp, na)
 
 #include <config_distro_bootcmd.h>
+#endif /* CONFIG_UEFI_BOOT */
 
 #else
 #define CONFIG_EXTRA_ENV_SETTINGS