From d883fcc6bbb2fcc3df90857fee99c2f543a0289c Mon Sep 17 00:00:00 2001 From: Tim Harvey Date: Mon, 13 Mar 2017 08:51:09 -0700 Subject: [PATCH] imx: ventana: add EMMC configuration Prepare for boards with EMMC instead of NAND flash Signed-off-by: Tim Harvey --- board/gateworks/gw_ventana/README | 17 +++-- configs/gwventana_emmc_defconfig | 63 +++++++++++++++++++ ...ana_defconfig => gwventana_nand_defconfig} | 6 +- include/configs/gw_ventana.h | 8 ++- 4 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 configs/gwventana_emmc_defconfig rename configs/{gwventana_defconfig => gwventana_nand_defconfig} (100%) diff --git a/board/gateworks/gw_ventana/README b/board/gateworks/gw_ventana/README index f3f8998aae..57c64a1b2a 100644 --- a/board/gateworks/gw_ventana/README +++ b/board/gateworks/gw_ventana/README @@ -30,7 +30,12 @@ will build the following artifacts from U-Boot source: To build U-Boot for the Gateworks Ventana product family: - make gwventana_config +For NAND FLASH based boards: + make gwventana_nand_config + make + +For EMMC FLASH based boards: + make gwventana_emmc_config make @@ -99,11 +104,11 @@ This information is taken from: More details about the i.MX6 BOOT ROM can be found in the IMX6 reference manual. -3.1. boot from micro-SD ------------------------ +3.1. boot from MMC (eMMC/microSD) +--------------------------------- When the IMX6 eFUSE settings have been factory programmed to boot from -micro-SD the SPL will be loaded from offset 0x400 (1KB). Once the SPL is +MMC the SPL will be loaded from offset 0x400 (1KB). Once the SPL is booted, it will load and execute U-Boot (u-boot.img) from offset 69KB on the micro-SD (defined by CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR). @@ -111,11 +116,11 @@ While it is technically possible to enable the SPL to be able to load U-Boot from a file on a FAT/EXT filesystem on the micro-SD, we chose to use raw micro-SD access to keep the code-size and boot time of the SPL down. -For these reasons a micro-SD that will be used as an IMX6 primary boot +For these reasons an MMC device that will be used as an IMX6 primary boot device must be carefully partitioned and prepared. The following shell commands are executed on a Linux host (adjust DEV to the -block storage device of your micro-SD): +block storage device of your MMC, ie /dev/mmcblk0): DEV=/dev/sdc # zero out 1MB of device diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig new file mode 100644 index 0000000000..96d76e4516 --- /dev/null +++ b/configs/gwventana_emmc_defconfig @@ -0,0 +1,63 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_SPL_GPIO_SUPPORT=y +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_TARGET_GW_VENTANA=y +CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_MMC_SUPPORT=y +CONFIG_SPL_POWER_SUPPORT=y +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SPL_WATCHDOG_SUPPORT=y +CONFIG_VIDEO=y +CONFIG_SPL_STACK_R_ADDR=0x18000000 +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_OF_BOARD_SETUP=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,MX6QDL" +CONFIG_BOOTDELAY=3 +# CONFIG_SYS_STDIO_DEREGISTER is not set +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_BOARD_EARLY_INIT_F=y +CONFIG_SPL=y +CONFIG_SPL_STACK_R=y +CONFIG_SPL_DMA_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="Ventana > " +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_I2C=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_TIME=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_UBI=y +CONFIG_DM=y +CONFIG_NETDEVICES=y +CONFIG_E1000=y +CONFIG_PCI=y +CONFIG_DM_SERIAL=y +CONFIG_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_GADGET=y +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_G_DNL_MANUFACTURER="Gateworks" +CONFIG_G_DNL_VENDOR_NUM=0x0525 +CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 +# CONFIG_VIDEO_SW_CURSOR is not set +CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/gwventana_defconfig b/configs/gwventana_nand_defconfig similarity index 100% rename from configs/gwventana_defconfig rename to configs/gwventana_nand_defconfig index adc7ec8449..6cc58970cd 100644 --- a/configs/gwventana_defconfig +++ b/configs/gwventana_nand_defconfig @@ -4,11 +4,12 @@ CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_TARGET_GW_VENTANA=y +CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y -CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_NAND_SUPPORT=y -CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_VIDEO=y CONFIG_SPL_STACK_R_ADDR=0x18000000 CONFIG_FIT=y @@ -22,7 +23,6 @@ CONFIG_BOARD_EARLY_INIT_F=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_DMA_SUPPORT=y -CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Ventana > " diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h index d51bcc9e24..1606f204ce 100644 --- a/include/configs/gw_ventana.h +++ b/include/configs/gw_ventana.h @@ -68,7 +68,7 @@ #define CONFIG_SF_DEFAULT_MODE (SPI_MODE_0) #endif -#else +#elif defined(CONFIG_SPL_NAND_SUPPORT) /* Enable NAND support */ #define CONFIG_CMD_NAND #define CONFIG_CMD_NAND_TRIMFFS @@ -227,9 +227,11 @@ /* Persistent Environment Config */ #ifdef CONFIG_SPI_FLASH -#define CONFIG_ENV_IS_IN_SPI_FLASH + #define CONFIG_ENV_IS_IN_SPI_FLASH +#elif defined(CONFIG_SPL_NAND_SUPPORT) + #define CONFIG_ENV_IS_IN_NAND #else -#define CONFIG_ENV_IS_IN_NAND + #define CONFIG_ENV_IS_IN_MMC #endif #if defined(CONFIG_ENV_IS_IN_MMC) #define CONFIG_SYS_MMC_ENV_DEV 0