summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/dts/Makefile1
-rw-r--r--arch/arm/dts/fsl-imx8qm-mek-xen.dts76
-rw-r--r--board/freescale/imx8qm_mek/imx8qm_mek.c21
-rw-r--r--configs/imx8qm_mek_androidauto_xen_defconfig109
-rw-r--r--include/configs/imx8qm_mek_android_auto.h93
-rw-r--r--include/configs/imx8qm_mek_android_auto_xen.h35
6 files changed, 335 insertions, 0 deletions
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index dcba180698..e6c3ca6742 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -935,6 +935,7 @@ dtb-$(CONFIG_ARCH_IMX8) += \
fsl-imx8qm-lpddr4-val.dtb \
fsl-imx8qm-mek-cockpit-a53.dtb \
fsl-imx8qm-mek-cockpit-a72.dtb \
+ fsl-imx8qm-mek-xen.dtb \
imx8qm-cgtqmx8.dtb \
imx8qm-rom7720-a1.dtb \
fsl-imx8qxp-ai_ml.dtb \
diff --git a/arch/arm/dts/fsl-imx8qm-mek-xen.dts b/arch/arm/dts/fsl-imx8qm-mek-xen.dts
new file mode 100644
index 0000000000..7c9703b92f
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qm-mek-xen.dts
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "fsl-imx8qm-mek.dts"
+
+&usdhc1 {
+ /* Need to be same as iomem for sdhc1 in domu.cfg */
+ reg = <0x1 0x5b010000 0x0 0x10000>;
+};
+
+&usdhc2 {
+ /* Need to be same as iomem for sdhc2 in domu.cfg */
+ reg = <0x1 0x5b020000 0x0 0x10000>;
+ status = "disabled";
+};
+
+&gpio2 {
+ status = "disabled";
+};
+
+&gpio4 {
+ status = "disabled";
+};
+
+&gpio5 {
+ status = "disabled";
+};
+
+&usbotg3 {
+ status = "disabled";
+};
+
+&fec1 {
+ status = "disabled";
+};
+
+&fec2 {
+ status = "disabled";
+};
+
+&flexspi0 {
+ status = "disabled";
+};
+
+&i2c0 {
+ status = "disabled";
+};
+
+&i2c1_lvds0 {
+ status = "disabled";
+};
+
+&i2c1_lvds1 {
+ status = "disabled";
+};
+
+&lpspi0 {
+ status = "disabled";
+};
+
+&lpuart0 {
+ status = "disabled";
+};
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c
index 848c758121..22ad803bbe 100644
--- a/board/freescale/imx8qm_mek/imx8qm_mek.c
+++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
@@ -383,6 +383,9 @@ int board_usb_cleanup(int index, enum usb_init_type init)
int board_init(void)
{
+ if (IS_ENABLED(CONFIG_XEN))
+ return 0;
+
board_gpio_init();
@@ -438,6 +441,24 @@ int ft_board_setup(void *blob, struct bd_info *bd)
}
#endif
+int board_mmc_get_env_dev(int devno)
+{
+ /* Use EMMC */
+ if (IS_ENABLED(CONFIG_XEN))
+ return 0;
+
+ return devno;
+}
+
+int mmc_map_to_kernel_blk(int dev_no)
+{
+ /* Use EMMC */
+ if (IS_ENABLED(CONFIG_XEN))
+ return 0;
+
+ return dev_no;
+}
+
int board_late_init(void)
{
char *fdt_file;
diff --git a/configs/imx8qm_mek_androidauto_xen_defconfig b/configs/imx8qm_mek_androidauto_xen_defconfig
new file mode 100644
index 0000000000..880c263419
--- /dev/null
+++ b/configs/imx8qm_mek_androidauto_xen_defconfig
@@ -0,0 +1,109 @@
+CONFIG_ARM=y
+CONFIG_ARCH_IMX8=y
+CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek-xen"
+CONFIG_SYS_EXTRA_OPTIONS="ANDROID_AUTO_SUPPORT"
+CONFIG_TARGET_IMX8QM_MEK=y
+CONFIG_SYS_TEXT_BASE=0x40080000
+CONFIG_EFI_PARTITION=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_DM=y
+CONFIG_DM_WARN=n
+CONFIG_DM_DEVICE_REMOVE=n
+
+CONFIG_DM_SERIAL=n
+CONFIG_FSL_LPUART=n
+CONFIG_OF_CONTROL=y
+CONFIG_DM_I2C=n
+# CONFIG_DM_I2C_COMPAT is not set
+CONFIG_SYS_I2C_IMX_LPI2C=n
+CONFIG_CMD_I2C=n
+
+CONFIG_USB_XHCI_HCD=n
+CONFIG_USB_XHCI_IMX8=n
+
+CONFIG_DM_USB=n
+CONFIG_USB_EHCI_HCD=y
+CONFIG_CMD_USB=y
+CONFIG_USB=y
+CONFIG_USB_TCPC=n
+
+CONFIG_USB_GADGET=y
+CONFIG_CI_UDC=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_GADGET_MANUFACTURER="FSL"
+CONFIG_USB_GADGET_VENDOR_NUM=0x18d1
+CONFIG_USB_GADGET_PRODUCT_NUM=0x0d02
+
+CONFIG_USB_CDNS3=n
+CONFIG_USB_CDNS3_GADGET=n
+CONFIG_USB_GADGET_DUALSPEED=y
+
+CONFIG_DM_GPIO=n
+CONFIG_DM_PCA953X=n
+CONFIG_BOOTDELAY=1
+CONFIG_CMD_MMC=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_MMC_UHS_SUPPORT=y
+CONFIG_MMC_HS400_SUPPORT=y
+CONFIG_FSL_FSPI=n
+CONFIG_DM_SPI=n
+CONFIG_DM_SPI_FLASH=n
+CONFIG_SPI_FLASH=n
+CONFIG_SPI_FLASH_4BYTES_ADDR=n
+CONFIG_SPI_FLASH_STMICRO=n
+
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=n
+CONFIG_DM_REGULATOR_GPIO=n
+
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX8=y
+
+CONFIG_CMD_NET=n
+CONFIG_CMD_NFS=n
+CONFIG_CMD_BDI=n
+CONFIG_CMD_CONSOLE=n
+CONFIG_CMD_BOOTD=n
+CONFIG_CMD_BOOTEFI=n
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=n
+CONFIG_CMD_ELF=n
+CONFIG_CMD_GO=n
+CONFIG_CMD_RUN=n
+CONFIG_CMD_IMI=n
+CONFIG_CMD_IMLS=n
+CONFIG_CMD_XIMG=n
+CONFIG_CMD_EXPORTENV=n
+CONFIG_CMD_IMPORTENV=n
+CONFIG_CMD_EDITENV=n
+CONFIG_CMD_ENV_EXISTS=n
+CONFIG_CMD_MEMORY=n
+CONFIG_CMD_CRC32=n
+CONFIG_CMD_DM=n
+CONFIG_CMD_LOADB=n
+CONFIG_CMD_LOADS=n
+CONFIG_CMD_FLASH=n
+CONFIG_CMD_GPT=n
+CONFIG_CMD_FPGA=n
+CONFIG_CMD_ECHO=n
+CONFIG_CMD_ITEST=n
+CONFIG_CMD_SOURCE=n
+CONFIG_CMD_SETEXPR=n
+CONFIG_CMD_MISC=n
+
+CONFIG_DISPLAY_CPUINFO=n
+CONFIG_DISPLAY_BOARDINFO=n
+CONFIG_EFI_LOADER=n
+
+CONFIG_POWER_DOMAIN=y
+CONFIG_IMX8_POWER_DOMAIN=y
+
+CONFIG_DM_THERMAL=n
+CONFIG_IMX_SC_THERMAL=n
+
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_LZ4=y
+CONFIG_XEN=y
+CONFIG_XEN_DEBUG_SERIAL=y
+CONFIG_LINUX_KERNEL_IMAGE_HEADER=y
+
diff --git a/include/configs/imx8qm_mek_android_auto.h b/include/configs/imx8qm_mek_android_auto.h
new file mode 100644
index 0000000000..669d2387e1
--- /dev/null
+++ b/include/configs/imx8qm_mek_android_auto.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2020 NXP
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef IMX8QM_MEK_ANDROID_AUTO_H
+#define IMX8QM_MEK_ANDROID_AUTO_H
+
+#define CONFIG_USB_GADGET_VBUS_DRAW 2
+#define CONFIG_SKIP_RESOURCE_CHECKING
+
+/* USB OTG controller configs */
+#ifdef CONFIG_USB_EHCI_HCD
+#ifndef CONFIG_MXC_USB_PORTSC
+#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
+#endif
+#endif
+
+#define CONFIG_ANDROID_AB_SUPPORT
+#ifdef CONFIG_ANDROID_AB_SUPPORT
+#define CONFIG_SYSTEM_RAMDISK_SUPPORT
+#endif
+#define FSL_FASTBOOT_FB_DEV "mmc"
+
+#define IMX_HDMI_FIRMWARE_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_64M)
+#define IMX_HDMITX_FIRMWARE_SIZE 0x20000
+#define IMX_HDMIRX_FIRMWARE_SIZE 0x20000
+
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#undef CONFIG_BOOTCOMMAND
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "splashpos=m,m\0" \
+ "fdt_high=0xffffffffffffffff\0" \
+ "initrd_high=0xffffffffffffffff\0" \
+
+/* Undefine some macros to save boot time */
+#undef CONFIG_FEC_MXC
+#undef CONFIG_USB_HOST_ETHER
+#undef CONFIG_ARCH_MISC_INIT
+#undef CONFIG_SCSI
+#undef CONFIG_SCSI_AHCI
+#undef CONFIG_SCSI_AHCI_PLAT
+#undef CONFIG_CMD_SCSI
+#undef CONFIG_LIBATA
+#undef CONFIG_SATA_IMX
+#undef CONFIG_FSL_HSIO
+#undef CONFIG_PCIE_IMX8X
+#undef CONFIG_CMD_PCI
+#undef CONFIG_PCI
+#undef CONFIG_SYS_LONGHELP
+#undef CONFIG_HUSH_PARSER
+#undef CONFIG_AUTO_COMPLETE
+#undef CONFIG_MII
+#undef CONFIG_PHYLIB
+#undef CONFIG_PHY_ATHEROS
+#undef CONFIG_CMD_FUSE
+#undef CONFIG_USB_FUNCTION_MASS_STORAGE
+#undef CONFIG_CMD_USB_MASS_STORAGE
+#undef CONFIG_FAT_WRITE
+
+#ifdef CONFIG_IMX_TRUSTY_OS
+#define AVB_RPMB
+#define NS_ARCH_ARM64 1
+#define KEYSLOT_HWPARTITION_ID 2
+#define KEYSLOT_BLKS 0x3FFF
+
+#ifdef CONFIG_DUAL_BOOTLOADER
+#define BOOTLOADER_RBIDX_OFFSET 0x3FE000
+#define BOOTLOADER_RBIDX_START 0x3FF000
+#define BOOTLOADER_RBIDX_LEN 0x08
+#define BOOTLOADER_RBIDX_INITVAL 0
+#define CONFIG_SYS_SPL_PTE_RAM_BASE 0x801F8000
+#endif
+
+#endif
+
+
+#ifdef CONFIG_SPL_BUILD
+#undef CONFIG_BLK
+#define CONFIG_FSL_CAAM_KB
+#define CONFIG_SPL_CRYPTO_SUPPORT
+#define CONFIG_SYS_FSL_SEC_LE
+#endif
+
+#define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
+
+#if defined(CONFIG_XEN)
+#include "imx8qm_mek_android_auto_xen.h"
+#endif
+
+#endif /* IMX8QM_MEK_ANDROID_AUTO_H */
diff --git a/include/configs/imx8qm_mek_android_auto_xen.h b/include/configs/imx8qm_mek_android_auto_xen.h
new file mode 100644
index 0000000000..0cf548f2fd
--- /dev/null
+++ b/include/configs/imx8qm_mek_android_auto_xen.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef IMX8QM_MEK_ANDROID_AUTO_XEN_H
+#define IMX8QM_MEK_ANDROID_AUTO_XEN_H
+
+#undef CONFIG_SYS_SDRAM_BASE
+#undef CONFIG_NR_DRAM_BANKS
+#undef PHYS_SDRAM_1
+#undef PHYS_SDRAM_2
+#undef PHYS_SDRAM_1_SIZE
+#undef PHYS_SDRAM_2_SIZE
+
+#define CONFIG_SYS_SDRAM_BASE 0x40000000
+#define CONFIG_NR_DRAM_BANKS 2
+#define PHYS_SDRAM_1 0x40000000
+#define PHYS_SDRAM_2 0x200000000
+#define PHYS_SDRAM_1_SIZE 0xC0000000 /* 3 GB */
+#define PHYS_SDRAM_2_SIZE 0x20000000 /* 512 MB */
+
+#undef CONFIG_LOADADDR
+#define CONFIG_LOADADDR 0x40280000
+#undef CONFIG_SYS_INIT_SP_ADDR
+#define CONFIG_SYS_INIT_SP_ADDR 0x40200000
+
+#undef CONFIG_REQUIRE_SERIAL_CONSOLE
+#undef CONFIG_IMX_SMMU
+
+/* This needs to be stay same in iomem in domu.cfg */
+#define SC_IPC_CH 0x15d1d0000
+
+#endif /* IMX8QM_MEK_ANDROID_AUTO_XEN_H */