Hi :
我自己定制的板子am335x,打印no support for card's volts。在uboot下已经可以正常读写emmc。我用的是spiflash启动,在内核下面用fdisk -l看不到任何东西。我的内核版本是4.4,emmc是MTFC4GACAJCN-4MIT,8bit的,遵循emmc 5.0规范。我参考的BBB板子的设备树,另外335x的emmc的控制器是am33xx-hsmmc,即使我改成这个,也是一样的问题。我用的是mmc1,设备树文件如下:
&mmc1 {
vmmc-supply = <&vmmcsd_fixed>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_pins>;
bus-width = <8>;
status = "okay";
};
emmc_pins: pinmux_emmc_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.mmc1_clk */
AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_csn1.mmc1_cmd */
AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.mmc1_dat0 */
AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.mmc1_dat1 */
AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.mmc1_dat2 */
AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.mmc1_dat3 */
AM33XX_IOPAD(0x938, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad4.mmc1_dat4 */
AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad5.mmc1_dat5 */
AM33XX_IOPAD(0x930, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad6.mmc1_dat6 */
AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad7.mmc1_dat7 */
>;
};
检查了硬件管脚,是OK的
内核打印如下,报错的原因是ocr_avail的值为0
[ 3.255113] mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 3.264045] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 3.280042] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 3.287504] omap_hsmmc 48060000.mmc: @@@@@@@@@@@@ocr:16744576, ocr_avail:0
[ 3.294572] omap_hsmmc 48060000.mmc: no support for card's volts
[ 3.300705] mmc0: error -22 whilst initialising MMC card
附件是内核打印以及设备树文件。4062.am335x.rar