Commit de4f81cd40b6516f14f46d97d38681b290538c93

Authored by Peng Fan
1 parent cc4ca48308

MLK-18577-7 imx8qm: mek: support uboot in vm

We are targeting let uboot loading images from emmc to boot android.
Currently only emmc1 is enabled, so other devices are disabled.

Also change memory layout according to VM layout. The memory layout
needs to be samesize as what you configured in as "memory = "3584"".

Add a new dts dedicated for this kind uboot, add a new defconfig
to select CONFIG_XEN/CONFIG_XEN_DEBUG_SERIAL, deselect CONFIG_DM_SERIAL,
select CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK, and disable some devices
compared with imx8qm_mek_androidauto_defconfig.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit a4e932cae433b9d2e1cff6a94b12e4abcac45543)
(cherry picked from commit a26de6e05563d3e3e6734e0d99e464437aa89db5)
(cherry picked from commit 74ac579ee195c4a2f6651ccc0f86efb0eebd889e)
(cherry picked from commit 7efc2eca10c9d48da6e01ba6a5df63b6f619d7ab)

Showing 6 changed files with 245 additions and 0 deletions Side-by-side Diff

arch/arm/dts/Makefile
... ... @@ -762,6 +762,7 @@
762 762 fsl-imx8qm-mek.dtb \
763 763 fsl-imx8qm-ddr4-val.dtb \
764 764 fsl-imx8qm-lpddr4-val.dtb \
  765 + fsl-imx8qm-mek-xen.dtb \
765 766 fsl-imx8qm-mek-auto.dtb \
766 767 fsl-imx8qm-mek-auto2.dtb \
767 768 imx8qm-rom7720-a1.dtb \
arch/arm/dts/fsl-imx8qm-mek-xen.dts
  1 +/*
  2 + * Copyright 2018 NXP
  3 + *
  4 + * This program is free software; you can redistribute it and/or
  5 + * modify it under the terms of the GNU General Public License
  6 + * as published by the Free Software Foundation; either version 2
  7 + * of the License, or (at your option) any later version.
  8 + *
  9 + * This program is distributed in the hope that it will be useful,
  10 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12 + * GNU General Public License for more details.
  13 + */
  14 +
  15 +/dts-v1/;
  16 +
  17 +#include "fsl-imx8qm-mek.dts"
  18 +
  19 +&usdhc1 {
  20 + /* Need to be same as iomem for sdhc1 in domu.cfg */
  21 + reg = <0x1 0x5b010000 0x0 0x10000>;
  22 +};
  23 +
  24 +&usdhc2 {
  25 + /* Need to be same as iomem for sdhc2 in domu.cfg */
  26 + reg = <0x1 0x5b020000 0x0 0x10000>;
  27 + status = "disabled";
  28 +};
  29 +
  30 +&gpio2 {
  31 + status = "disabled";
  32 +};
  33 +
  34 +&gpio4 {
  35 + status = "disabled";
  36 +};
  37 +
  38 +&gpio5 {
  39 + status = "disabled";
  40 +};
  41 +
  42 +&usbotg3 {
  43 + status = "disabled";
  44 +};
  45 +
  46 +&fec1 {
  47 + status = "disabled";
  48 +};
  49 +
  50 +&fec2 {
  51 + status = "disabled";
  52 +};
  53 +
  54 +&flexspi0 {
  55 + status = "disabled";
  56 +};
  57 +
  58 +&i2c0 {
  59 + status = "disabled";
  60 +};
  61 +
  62 +&i2c1_lvds0 {
  63 + status = "disabled";
  64 +};
  65 +
  66 +&i2c1_lvds1 {
  67 + status = "disabled";
  68 +};
  69 +
  70 +&lpspi0 {
  71 + status = "disabled";
  72 +};
  73 +
  74 +&lpuart0 {
  75 + status = "disabled";
  76 +};
board/freescale/imx8qm_mek/imx8qm_mek.c
... ... @@ -367,6 +367,9 @@
367 367  
368 368 int board_init(void)
369 369 {
  370 + if (IS_ENABLED(CONFIG_XEN))
  371 + return 0;
  372 +
370 373 board_gpio_init();
371 374  
372 375  
... ... @@ -416,6 +419,24 @@
416 419 return 0;
417 420 }
418 421 #endif
  422 +
  423 +int board_mmc_get_env_dev(int devno)
  424 +{
  425 + /* Use EMMC */
  426 + if (IS_ENABLED(CONFIG_XEN))
  427 + return 0;
  428 +
  429 + return devno;
  430 +}
  431 +
  432 +int mmc_map_to_kernel_blk(int dev_no)
  433 +{
  434 + /* Use EMMC */
  435 + if (IS_ENABLED(CONFIG_XEN))
  436 + return 0;
  437 +
  438 + return dev_no;
  439 +}
419 440  
420 441 extern uint32_t _end_ofs;
421 442 int board_late_init(void)
configs/imx8qm_mek_androidauto_xen_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_IMX8=y
  3 +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek-xen"
  4 +CONFIG_SYS_EXTRA_OPTIONS="ANDROID_AUTO_SUPPORT"
  5 +CONFIG_TARGET_IMX8QM_MEK=y
  6 +CONFIG_SYS_TEXT_BASE=0x40080000
  7 +CONFIG_EFI_PARTITION=y
  8 +CONFIG_SYS_MALLOC_F_LEN=0x2000
  9 +CONFIG_DM=y
  10 +CONFIG_DM_WARN=n
  11 +CONFIG_DM_DEVICE_REMOVE=n
  12 +
  13 +CONFIG_DM_SERIAL=n
  14 +CONFIG_FSL_LPUART=n
  15 +CONFIG_OF_CONTROL=y
  16 +CONFIG_DM_I2C=n
  17 +# CONFIG_DM_I2C_COMPAT is not set
  18 +CONFIG_SYS_I2C_IMX_LPI2C=n
  19 +CONFIG_CMD_I2C=n
  20 +
  21 +CONFIG_USB_XHCI_HCD=n
  22 +CONFIG_USB_XHCI_IMX8=n
  23 +
  24 +CONFIG_DM_USB=n
  25 +CONFIG_USB_EHCI_HCD=y
  26 +CONFIG_CMD_USB=y
  27 +CONFIG_USB=y
  28 +CONFIG_USB_TCPC=n
  29 +
  30 +CONFIG_USB_GADGET=y
  31 +CONFIG_CI_UDC=y
  32 +CONFIG_USB_GADGET_DOWNLOAD=y
  33 +CONFIG_USB_GADGET_MANUFACTURER="FSL"
  34 +CONFIG_USB_GADGET_VENDOR_NUM=0x18d1
  35 +CONFIG_USB_GADGET_PRODUCT_NUM=0x0d02
  36 +
  37 +CONFIG_USB_CDNS3=n
  38 +CONFIG_USB_CDNS3_GADGET=n
  39 +CONFIG_USB_GADGET_DUALSPEED=y
  40 +
  41 +CONFIG_DM_GPIO=n
  42 +CONFIG_DM_PCA953X=n
  43 +CONFIG_BOOTDELAY=1
  44 +CONFIG_CMD_MMC=y
  45 +CONFIG_DM_MMC=y
  46 +CONFIG_MMC_IO_VOLTAGE=y
  47 +CONFIG_MMC_UHS_SUPPORT=y
  48 +CONFIG_MMC_HS400_SUPPORT=y
  49 +CONFIG_FSL_FSPI=n
  50 +CONFIG_DM_SPI=n
  51 +CONFIG_DM_SPI_FLASH=n
  52 +CONFIG_SPI_FLASH=n
  53 +CONFIG_SPI_FLASH_4BYTES_ADDR=n
  54 +CONFIG_SPI_FLASH_STMICRO=n
  55 +
  56 +CONFIG_DM_REGULATOR=y
  57 +CONFIG_DM_REGULATOR_FIXED=n
  58 +CONFIG_DM_REGULATOR_GPIO=n
  59 +
  60 +CONFIG_PINCTRL=y
  61 +CONFIG_PINCTRL_IMX8=y
  62 +
  63 +CONFIG_CMD_NET=n
  64 +CONFIG_CMD_NFS=n
  65 +CONFIG_CMD_BDI=n
  66 +CONFIG_CMD_CONSOLE=n
  67 +CONFIG_CMD_BOOTD=n
  68 +CONFIG_CMD_BOOTEFI=n
  69 +CONFIG_CMD_BOOTEFI_HELLO_COMPILE=n
  70 +CONFIG_CMD_ELF=n
  71 +CONFIG_CMD_GO=n
  72 +CONFIG_CMD_RUN=n
  73 +CONFIG_CMD_IMI=n
  74 +CONFIG_CMD_IMLS=n
  75 +CONFIG_CMD_XIMG=n
  76 +CONFIG_CMD_EXPORTENV=n
  77 +CONFIG_CMD_IMPORTENV=n
  78 +CONFIG_CMD_EDITENV=n
  79 +CONFIG_CMD_ENV_EXISTS=n
  80 +CONFIG_CMD_MEMORY=n
  81 +CONFIG_CMD_CRC32=n
  82 +CONFIG_CMD_DM=n
  83 +CONFIG_CMD_LOADB=n
  84 +CONFIG_CMD_LOADS=n
  85 +CONFIG_CMD_FLASH=n
  86 +CONFIG_CMD_GPT=n
  87 +CONFIG_CMD_FPGA=n
  88 +CONFIG_CMD_ECHO=n
  89 +CONFIG_CMD_ITEST=n
  90 +CONFIG_CMD_SOURCE=n
  91 +CONFIG_CMD_SETEXPR=n
  92 +CONFIG_CMD_MISC=n
  93 +
  94 +CONFIG_DISPLAY_CPUINFO=n
  95 +CONFIG_DISPLAY_BOARDINFO=n
  96 +CONFIG_EFI_LOADER=n
  97 +
  98 +CONFIG_POWER_DOMAIN=y
  99 +CONFIG_IMX8_POWER_DOMAIN=y
  100 +
  101 +CONFIG_DM_THERMAL=n
  102 +CONFIG_IMX_SC_THERMAL=n
  103 +
  104 +CONFIG_ENV_IS_IN_MMC=y
  105 +CONFIG_LZ4=y
  106 +CONFIG_XEN=y
  107 +CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y
  108 +CONFIG_XEN_DEBUG_SERIAL=y
include/configs/imx8qm_mek_android_auto.h
... ... @@ -86,5 +86,9 @@
86 86  
87 87 #define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
88 88  
  89 +#if defined(CONFIG_XEN)
  90 +#include "imx8qm_mek_android_auto_xen.h"
  91 +#endif
  92 +
89 93 #endif /* IMX8QM_MEK_ANDROID_AUTO_H */
include/configs/imx8qm_mek_android_auto_xen.h
  1 +/*
  2 + * Copyright 2018 NXP
  3 + *
  4 + * SPDX-License-Identifier: GPL-2.0+
  5 + */
  6 +
  7 +#ifndef IMX8QM_MEK_ANDROID_AUTO_XEN_H
  8 +#define IMX8QM_MEK_ANDROID_AUTO_XEN_H
  9 +
  10 +#undef CONFIG_SYS_SDRAM_BASE
  11 +#undef CONFIG_NR_DRAM_BANKS
  12 +#undef PHYS_SDRAM_1
  13 +#undef PHYS_SDRAM_2
  14 +#undef PHYS_SDRAM_1_SIZE
  15 +#undef PHYS_SDRAM_2_SIZE
  16 +
  17 +#define CONFIG_SYS_SDRAM_BASE 0x40000000
  18 +#define CONFIG_NR_DRAM_BANKS 2
  19 +#define PHYS_SDRAM_1 0x40000000
  20 +#define PHYS_SDRAM_2 0x200000000
  21 +#define PHYS_SDRAM_1_SIZE 0xC0000000 /* 3 GB */
  22 +#define PHYS_SDRAM_2_SIZE 0x20000000 /* 512 MB */
  23 +
  24 +#undef CONFIG_LOADADDR
  25 +#define CONFIG_LOADADDR 0x40280000
  26 +#undef CONFIG_SYS_INIT_SP_ADDR
  27 +#define CONFIG_SYS_INIT_SP_ADDR 0x40200000
  28 +
  29 +#undef CONFIG_REQUIRE_SERIAL_CONSOLE
  30 +#undef CONFIG_IMX_SMMU
  31 +
  32 +/* This needs to be stay same in iomem in domu.cfg */
  33 +#define SC_IPC_CH 0x15d1d0000
  34 +
  35 +#endif /* IMX8QM_MEK_ANDROID_AUTO_XEN_H */