From d0602d2ee64c9ad2bf38a38bfb84f8ff9ac9b68d Mon Sep 17 00:00:00 2001 From: Ye Li Date: Fri, 27 Jul 2018 08:33:00 -0700 Subject: [PATCH] Add iMX8DX DDR3 arm2 board support When rewoked eMMC to MMC socket, change MMC driver can recognize the card Enable the fastboot to test usb gadget Signed-off-by: Ye Li --- arch/arm/dts/fsl-imx8qxp-lpddr4-arm2.dts | 4 ++-- configs/imx8qxp_ddr3_arm2_defconfig | 24 ++++++++++++++++++------ drivers/mmc/mmc.c | 7 +++++-- include/configs/imx8qxp_arm2.h | 6 ++++++ include/mmc.h | 2 +- 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/arch/arm/dts/fsl-imx8qxp-lpddr4-arm2.dts b/arch/arm/dts/fsl-imx8qxp-lpddr4-arm2.dts index 5518abe111..39811c470b 100644 --- a/arch/arm/dts/fsl-imx8qxp-lpddr4-arm2.dts +++ b/arch/arm/dts/fsl-imx8qxp-lpddr4-arm2.dts @@ -398,7 +398,7 @@ pinctrl-0 = <&pinctrl_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_100mhz>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>; - bus-width = <8>; + bus-width = <4>; non-removable; status = "okay"; }; @@ -424,5 +424,5 @@ }; &usb2 { - status = "okay"; + status = "disabled"; }; diff --git a/configs/imx8qxp_ddr3_arm2_defconfig b/configs/imx8qxp_ddr3_arm2_defconfig index b61601ac15..6274b6094c 100644 --- a/configs/imx8qxp_ddr3_arm2_defconfig +++ b/configs/imx8qxp_ddr3_arm2_defconfig @@ -16,6 +16,17 @@ CONFIG_DM_I2C=y CONFIG_SYS_I2C_IMX_LPI2C=y CONFIG_CMD_I2C=y +CONFIG_FASTBOOT=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_CMD_FASTBOOT=y +CONFIG_ANDROID_BOOT_IMAGE=y +CONFIG_FSL_FASTBOOT=y +CONFIG_BCB_SUPPORT=y +CONFIG_FASTBOOT_BUF_ADDR=0x82800000 +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_FASTBOOT_USB_DEV=0 CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_IMX8=y @@ -28,15 +39,15 @@ CONFIG_USB_STORAGE=y CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_USB_GADGET=y -# CONFIG_CI_UDC=y +CONFIG_CI_UDC=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_USB_GADGET_MANUFACTURER="FSL" -CONFIG_USB_GADGET_VENDOR_NUM=0x0525 -CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 +CONFIG_USB_GADGET_VENDOR_NUM=0x18d1 +CONFIG_USB_GADGET_PRODUCT_NUM=0x0d02 -CONFIG_USB_CDNS3=y -CONFIG_USB_CDNS3_GADGET=y -CONFIG_USB_GADGET_DUALSPEED=y +#CONFIG_USB_CDNS3=y +#CONFIG_USB_CDNS3_GADGET=y +#CONFIG_USB_GADGET_DUALSPEED=y CONFIG_CMD_GPIO=y CONFIG_DM_GPIO=y @@ -47,6 +58,7 @@ CONFIG_FS_FAT=y CONFIG_CMD_FAT=y CONFIG_CMD_MMC=y CONFIG_DM_MMC=y +CONFIG_EFI_PARTITION=y CONFIG_MMC_IO_VOLTAGE=y CONFIG_MMC_UHS_SUPPORT=y CONFIG_MMC_HS400_ES_SUPPORT=y diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 4a80f556a0..529b817875 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -647,11 +647,14 @@ static int mmc_send_op_cond_iter(struct mmc *mmc, int use_arg) cmd.resp_type = MMC_RSP_R3; cmd.cmdarg = 0; if (use_arg && !mmc_host_is_spi(mmc)) + #if 0 cmd.cmdarg = OCR_HCS | (mmc->cfg->voltages & (mmc->ocr & OCR_VOLTAGE_MASK)) | (mmc->ocr & OCR_ACCESS_MODE); + #endif + cmd.cmdarg = 0x40FF8000; err = mmc_send_cmd(mmc, &cmd, NULL); if (err) return err; @@ -667,8 +670,8 @@ static int mmc_send_op_cond(struct mmc *mmc) mmc_go_idle(mmc); /* Asking to the card its capabilities */ - for (i = 0; i < 2; i++) { - err = mmc_send_op_cond_iter(mmc, i != 0); + for (i = 0; i < 10; i++) { + err = mmc_send_op_cond_iter(mmc, 1); if (err) return err; diff --git a/include/configs/imx8qxp_arm2.h b/include/configs/imx8qxp_arm2.h index 564f265354..7a43b2dd8b 100644 --- a/include/configs/imx8qxp_arm2.h +++ b/include/configs/imx8qxp_arm2.h @@ -15,6 +15,10 @@ #define CONFIG_BOARD_EARLY_INIT_F #define CONFIG_ARCH_MISC_INIT +#define CONFIG_MMC_TRACE + +#define CONFIG_CMD_READ + /* Flat Device Tree Definitions */ #define CONFIG_OF_BOARD_SETUP @@ -343,6 +347,8 @@ #define CONFIG_APBH_DMA_BURST8 #endif +#define CONFIG_SERIAL_TAG + /* USB Config */ #ifdef CONFIG_CMD_USB #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 diff --git a/include/mmc.h b/include/mmc.h index 1b3b380ea8..83913ee87e 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -154,7 +154,7 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx) #define OCR_BUSY 0x80000000 #define OCR_HCS 0x40000000 #define OCR_S18R 0x1000000 -#define OCR_VOLTAGE_MASK 0x007FFF80 +#define OCR_VOLTAGE_MASK 0x00FFFF80 #define OCR_ACCESS_MODE 0x60000000 #define MMC_ERASE_ARG 0x00000000