diff options
-rw-r--r-- | arch/arm/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/dts/fsl-imx8qm-mek-xen.dts | 76 | ||||
-rw-r--r-- | board/freescale/imx8qm_mek/imx8qm_mek.c | 21 | ||||
-rw-r--r-- | configs/imx8qm_mek_androidauto_xen_defconfig | 109 | ||||
-rw-r--r-- | include/configs/imx8qm_mek_android_auto.h | 93 | ||||
-rw-r--r-- | include/configs/imx8qm_mek_android_auto_xen.h | 35 |
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 */ |