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
附件是内核打印以及设备树文件。am335x.rar
yongqing wang:
参考一下这个:www.friendlyarm.net/…/867
wei zhao:
回复 yongqing wang:
你好,emmc是没有SD卡那种检测管脚的。
yongqing wang:
回复 wei zhao:
检查/dev/devices 里面看看有没有相应的驱动
wei zhao:
回复 yongqing wang:
你好,没有/dev/devices这个目录的。devices相关目录如下,要看哪个目录?/sys/bus/mmc/devices目录下是空的
~ # find / -name devices
/sys/bus/cpu/devices
/sys/bus/i2c/devices
/sys/bus/hid/devices
/sys/bus/mmc/devices
/sys/bus/pci/devices
/sys/bus/soc/devices
/sys/bus/spi/devices
/sys/bus/usb/devices
/sys/bus/scsi/devices
/sys/bus/sdio/devices
/sys/bus/clocksource/devices
/sys/bus/nvmem/devices
/sys/bus/serio/devices
/sys/bus/event_source/devices
/sys/bus/workqueue/devices
/sys/bus/container/devices
/sys/bus/platform/devices
/sys/bus/mdio_bus/devices
/sys/bus/clockevents/devices
/sys/devices
/proc/bus/pci/devices
/proc/bus/input/devices
/proc/devices
wei zhao:
回复 yongqing wang:
你好,是需要查看下面的目录吗?
/sys/bus/platform/drivers/omap_hsmmc # ls
48060000.mmcbindueventunbind
yongqing wang:
回复 wei zhao:
这个问题和这个帖子中的类似:e2echina.ti.com/…/137010