This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x custom board 无法初始化MMC1

您好,我们自己做的板子把一个4G emmc挂在MMC1上,没有用MMC0。

现在初始化里pinmux已设置为如下:

static struct module_pin_mux mmc1_pin_mux[] = {
{OFFSET(gpmc_ad8), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT0 */
{OFFSET(gpmc_ad9), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT1 */
{OFFSET(gpmc_ad10), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT2 */
{OFFSET(gpmc_ad11), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT3 */
{OFFSET(gpmc_ad12), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT4 */
{OFFSET(gpmc_ad13), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT5 */
{OFFSET(gpmc_ad14), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT6 */
{OFFSET(gpmc_ad15), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT7 */
{OFFSET(gpmc_csn1), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_CLK */
{OFFSET(gpmc_csn2), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_CMD */
{-1},
};

有个概念不知道是否理解正确,uboot代码里mmc 默认index从0开始,所以上面设置的mmc1,然后设备树里mmc index是从1开始,所以dts里添加如下配置mmc2,并把mmc0(设备树里的MMC1)给disable了:

mmc2_pins: pinmux_mmc2_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x80, PIN_INPUT_PULLUP | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
AM33XX_IOPAD(0x84, PIN_INPUT_PULLUP | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
AM33XX_IOPAD(0x20, PIN_INPUT_PULLUP | MUX_MODE1) /* (U7) gpmc_ad8.mmc1_dat0 */
AM33XX_IOPAD(0x24, PIN_INPUT_PULLUP | MUX_MODE1) /* (V7) gpmc_ad9.mmc1_dat1 */
AM33XX_IOPAD(0x28, PIN_INPUT_PULLUP | MUX_MODE1) /* (R8) gpmc_ad10.mmc1_dat2 */
AM33XX_IOPAD(0x2c, PIN_INPUT_PULLUP | MUX_MODE1) /* (T8) gpmc_ad11.mmc1_dat3 */
AM33XX_IOPAD(0x30, PIN_INPUT_PULLUP | MUX_MODE1) /* (U8) gpmc_ad12.mmc1_dat4 */
AM33XX_IOPAD(0x34, PIN_INPUT_PULLUP | MUX_MODE1) /* (V8) gpmc_ad13.mmc1_dat5 */
AM33XX_IOPAD(0x38, PIN_INPUT_PULLUP | MUX_MODE1) /* (R9) gpmc_ad14.mmc1_dat6 */
AM33XX_IOPAD(0x3c, PIN_INPUT_PULLUP | MUX_MODE1) /* (T9) gpmc_ad15.mmc1_dat7 */
>;
};

&mmc2 {
pinctrl-names = "default";
vmmc-supply = <&vmmc_reg>;
pinctrl-0 = <&mmc2_pins>;
bus-width = <0x4>;
status = "okay";
};

UBOOT发现一个设备,是从0开始标记的,所以LOG里打印的初始化设备0应该就是我配置的MMC1,但是一直出现超时,我试过改MMC_TIMEOUT_MS超时时间到40,但是没有效果。

主要有几个问题:

1.硬件IO接GPMC_AD8-15是否支持,我看有资料说这个口不支持boot,但是挂载应该没问题。

2.软件配置请问是否有什么问题。

在线等,随时可以提供更多信息,谢谢支持!

x 出现错误。请重试或与管理员联系。