主机:vmware ubuntu16.04
SDK:ti-sdk-am335x-evm-08.00.00.00-Linux-x86-Install
am335x,自己根据EVM和EVM-SK做的板子,用SD卡启动后加载kernel,无法识别到SD卡。sdio,sd,mmc都检测失败。
2.333925] [huzz]check sdio
[ 2.339035] [huzz]check sd
[ 2.342583] [huzz]mmc_attach_sd
[ 2.347366] [huzz]check mmc
[ 2.351012] [huzz]mmc_attach_mmc
[ 2.355239] [huzz]mmc_send_op_cond+++++++++++++
[ 2.361380] [huzz]mmc_send_op_cond----------
[ 2.366982] [huzz]mmc_attach_mmc:mmc_send_op_cond failed
dts中的配置如下
&mmc1 {
status = "okay";
vmmc-supply = <&vmmc_reg>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc0_pins_default>;
pinctrl-1 = <&mmc0_pins_sleep>;
cd-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
};
mmc0_pins_default: mmc0_pins_default {
pinctrl-single,pins = <
0x100 ( PIN_INPUT | MUX_MODE0 ) /* (G17) mmc0_clk.mmc0_clk */
0x104 ( PIN_OUTPUT | MUX_MODE0 ) /* (G18) mmc0_cmd.mmc0_cmd */
0xfc ( PIN_INPUT | MUX_MODE0 ) /* (G16) mmc0_dat0.mmc0_dat0 */
0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (G15) mmc0_dat1.mmc0_dat1 */
0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (F18) mmc0_dat2.mmc0_dat2 */
0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (F17) mmc0_dat3.mmc0_dat3 */
0x15c ( PIN_INPUT | MUX_MODE7 ) /* (A16) spi0_cs0.gpio0[5] */
>;
};
/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
mmc0_pins_sleep: mmc0_pins_sleep {
pinctrl-single,pins = <
0x100 ( PIN_INPUT | MUX_MODE0 ) /* (G17) mmc0_clk.mmc0_clk */
0x104 ( PIN_OUTPUT | MUX_MODE0 ) /* (G18) mmc0_cmd.mmc0_cmd */
0xfc ( PIN_INPUT | MUX_MODE0 ) /* (G16) mmc0_dat0.mmc0_dat0 */
0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (G15) mmc0_dat1.mmc0_dat1 */
0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (F18) mmc0_dat2.mmc0_dat2 */
0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (F17) mmc0_dat3.mmc0_dat3 */
>;
};
am33xx.dtsi中
添加了mmc1 = &mmc1;,本来是没有的,启动的时候没有检测到SD卡,添加了之后才有上面的log。
aliases {
i2c0 = &i2c0;
i2c2 = &i2c2;
serial0 = &uart0;
serial1 = &uart1;
serial3 = &uart3;
d_can0 = &dcan0;
d_can1 = &dcan1;
usb0 = &usb0;
usb1 = &usb1;
phy0 = &usb0_phy;
phy1 = &usb1_phy;
ethernet0 = &cpsw_emac0;
ethernet1 = &cpsw_emac1;
mmc1 = &mmc1;
};
下面的未修改
mmc1: mmc@48060000 {
compatible = "ti,omap4-hsmmc";
ti,hwmods = "mmc1";
ti,dual-volt;
ti,needs-special-reset;
ti,needs-special-hs-handling;
dmas = <&edma 24
&edma 25>;
dma-names = "tx", "rx";
interrupts = <64>;
interrupt-parent = <&intc>;
reg = <0x48060000 0x1000>;
status = "disabled";
};