[U-Boot] Rockchip RV1108 eMMC support not working
Andy Yan
andyshrk at gmail.com
Tue Oct 9 02:03:12 UTC 2018
Hi Otavio:
Otavio Salvador <otavio.salvador at ossystems.com.br> 于2018年10月9日周二 上午3:29写道:
> Hi,
>
> We have a custom board based on rv1108 evb where we are trying to add
> eMMC support.
>
> Here are the changes we made so far:
>
> arch/arm/dts/rv1108-evb.dts | 45
> +++++++++++++++++++++++++++++++++++++++++
> configs/evb-rv1108_defconfig | 4 ++++
> include/configs/evb_rv1108.h | 14 +------------
> include/configs/rv1108_common.h | 3 +++
> 4 files changed, 53 insertions(+), 13 deletions(-)
>
> diff --git a/arch/arm/dts/rv1108-evb.dts b/arch/arm/dts/rv1108-evb.dts
> index ccb9969..f07f402 100644
> --- a/arch/arm/dts/rv1108-evb.dts
> +++ b/arch/arm/dts/rv1108-evb.dts
> @@ -77,3 +77,48 @@
> &usb_host_ohci {
> status = "okay";
> };
> +
> +&emmc {
> + pinctrl-names = "default";
> + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
> + bus-width = <8>;
> + cap-mmc-highspeed;
> + supports-emmc;
> + disable-wp;
> + non-removable;
> + num-slots = <1>;
> + status = "okay";
> +};
> +
> +&pinctrl {
> + pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> + bias-disable;
> + drive-strength = <8>;
> + };
> +
> + pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
> + bias-pull-up;
> + drive-strength = <8>;
> + };
> +
> + emmc {
> + emmc_clk: emmc-clk {
> + rockchip,pins = <2 RK_PB6 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> + };
> +
> + emmc_cmd: emmc-cmd {
> + rockchip,pins = <2 RK_PB4 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
> + };
> +
> + emmc_bus8: emmc-bus8 {
> + rockchip,pins = <2 RK_PA0 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA1 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA2 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA3 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA4 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA5 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA6 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
> + <2 RK_PA7 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
> + };
> + };
> +};
> diff --git a/configs/evb-rv1108_defconfig b/configs/evb-rv1108_defconfig
> index 2ef041f..6c992c6 100644
> --- a/configs/evb-rv1108_defconfig
> +++ b/configs/evb-rv1108_defconfig
> @@ -14,10 +14,12 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
> CONFIG_RANDOM_UUID=y
> CONFIG_CMD_SF=y
> CONFIG_CMD_USB=y
> +CONFIG_CMD_MMC=y
> # CONFIG_CMD_SETEXPR is not set
> CONFIG_CMD_CACHE=y
> CONFIG_CMD_TIME=y
> CONFIG_DEFAULT_DEVICE_TREE="rv1108-evb"
> +CONFIG_ENV_IS_IN_MMC=y
> CONFIG_NET_RANDOM_ETHADDR=y
> CONFIG_REGMAP=y
> CONFIG_SYSCON=y
> @@ -27,6 +29,8 @@ CONFIG_FASTBOOT_BUF_SIZE=0x08000000
> CONFIG_FASTBOOT_FLASH=y
> CONFIG_FASTBOOT_FLASH_MMC_DEV=1
> CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_MMC_DW=y
> +CONFIG_MMC_DW_ROCKCHIP=y
> CONFIG_SYS_I2C_ROCKCHIP=y
> CONFIG_SPI_FLASH=y
> CONFIG_SPI_FLASH_BAR=y
> diff --git a/include/configs/evb_rv1108.h b/include/configs/evb_rv1108.h
> index 34739c7..aa6c4b0 100644
> --- a/include/configs/evb_rv1108.h
> +++ b/include/configs/evb_rv1108.h
> @@ -8,18 +8,6 @@
>
> #include <configs/rv1108_common.h>
>
> -/*
> - * Default environment settings
> - */
> -#define CONFIG_EXTRA_ENV_SETTINGS \
> - "netdev=eth0\0" \
> - "ipaddr=172.16.12.50\0" \
> - "serverip=172.16.12.69\0" \
> - ""
> -#define CONFIG_BOOTCOMMAND \
> - "sf probe;" \
> - "sf read 0x62000000 0x140800 0x500000;" \
> - "dcache off;" \
> - "go 0x62000000"
> +#define CONFIG_SYS_MMC_ENV_DEV 0
>
> #endif
> diff --git a/include/configs/rv1108_common.h
> b/include/configs/rv1108_common.h
> index 2ab3b85..cc0384e 100644
> --- a/include/configs/rv1108_common.h
> +++ b/include/configs/rv1108_common.h
> @@ -17,6 +17,9 @@
> #define CONFIG_SYS_TIMER_BASE 0x10350020
> #define CONFIG_SYS_TIMER_COUNTER (CONFIG_SYS_TIMER_BASE + 8)
>
> +/* MMC/SD IP block */
> +#define CONFIG_BOUNCE_BUFFER
> +
> #define CONFIG_SYS_SDRAM_BASE 0x60000000
> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0x100000)
> #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x2000000)
> --
> 2.7.4
>
> With this change the eMMC driver is loaded:
>
> U-Boot 2018.11-rc1-00097-ge89d583-dirty (Oct 08 2018 - 16:11:40 -0300)
>
> Model: Rockchip RV1108 Evaluation board
> DRAM: 128 MiB
> APLL: 600000000 DPLL:1200000000 GPLL:384000000
> MMC: dwmmc at 30110000: 0
> Loading Environment from MMC... *** Warning - bad CRC, using default
> environment
>
> In: serial at 10210000
> Out: serial at 10210000
> Err: serial at 10210000
> Model: Rockchip RV1108 Evaluation board
> Net:
> Warning: ethernet at 30200000 (eth0) using random MAC address -
> 5a:d2:06:ad:9e:ee
> eth0: ethernet at 30200000
> =>
>
> and we can also check the 'mmc info' command:
>
> => mmc info
> Device: dwmmc at 30110000
> Manufacturer ID: 70
> OEM: 100
> Name: M6270
> Bus Speed: 52000000
> Mode : MMC High Speed (52MHz)
> Rd Block Len: 512
> MMC version 5.1
> High Capacity: Yes
> Capacity: 3.5 GiB
> Bus Width: 8-bit
> Erase Group Size: 512 KiB
> HC WP Group Size: 8 MiB
> User Capacity: 3.5 GiB WRREL
> Boot Capacity: 2 MiB ENH
> RPMB Capacity: 512 KiB ENH
>
>
I don't have a 1108 board with emmc on my hand.
the mmc info show that the eMMC has been detected. So would try other mmc
commands such as: mmc read/write ?
but we are not able to save the environment to the eMMC card:
>
> => saveenv
> Saving Environment to MMC... Writing to MMC(0)... failed
> Failed (1)
>
Maybe you need a deeper dig to find the point where the error happen
> =>
>
> Any ideas?
>
> --
> Otavio Salvador O.S. Systems
> http://www.ossystems.com.br http://code.ossystems.com.br
> Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>
More information about the U-Boot
mailing list