diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 87332b6..cd506c2 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -762,6 +762,7 @@ dtb-$(CONFIG_ARCH_IMX8) += \ fsl-imx8qm-mek.dtb \ fsl-imx8qm-ddr4-val.dtb \ fsl-imx8qm-lpddr4-val.dtb \ + fsl-imx8qm-mek-xen.dtb \ fsl-imx8qm-mek-auto.dtb \ fsl-imx8qm-mek-auto2.dtb \ imx8qm-rom7720-a1.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 0000000..7c9703b --- /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 694ff93..f3ba77c 100644 --- a/board/freescale/imx8qm_mek/imx8qm_mek.c +++ b/board/freescale/imx8qm_mek/imx8qm_mek.c @@ -367,6 +367,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(); @@ -417,6 +420,24 @@ int ft_board_setup(void *blob, bd_t *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; +} + extern uint32_t _end_ofs; int board_late_init(void) { diff --git a/configs/imx8qm_mek_androidauto_xen_defconfig b/configs/imx8qm_mek_androidauto_xen_defconfig new file mode 100644 index 0000000..41d567b --- /dev/null +++ b/configs/imx8qm_mek_androidauto_xen_defconfig @@ -0,0 +1,108 @@ +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_ENABLE_ARM_SOC_BOOT0_HOOK=y +CONFIG_XEN_DEBUG_SERIAL=y diff --git a/include/configs/imx8qm_mek_android_auto.h b/include/configs/imx8qm_mek_android_auto.h index 0a89469..669d238 100644 --- a/include/configs/imx8qm_mek_android_auto.h +++ b/include/configs/imx8qm_mek_android_auto.h @@ -86,4 +86,8 @@ #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 0000000..0cf548f --- /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 */