尊敬的 TI 团队:
我的定制板 AM335x、Linux 内核中的 eMMC、不 支持卡的电压。 我可以在 uboot 中读取和写入 eMMC、但在 Linux 中、fdisk -l 没有任何内容 我已经配置了 CONFIG_OMAP_HSMMC。我的 Linux 内核版本是4.4。 我将 spiflash 用于 uboot、我只想在 Linux 中访问 eMMC。 我的 eMMC 为8位宽。 在 am33xx.dtsi 中、即使我将 OMAP4-hsmmc 更改为 am33xx-hsmmc,、我也得到了相同的结果。
我将 AM335x-bone-common.dtsi 作为一个参考、我的 DTS 如下所示。 我使用 mmc1、
mmc1{(&M)
VMMC-SUPPLY =<&vmmcsd_fixed>;
pinctrl-names ="default";
pinctrl-0 =<&eMMC_PINs>;
总线宽度=<8>;
状态="正常";
};
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_data0 *
AM33XX_IOPAD (0x8f8、PIN_INPUT_PULLUP | MUX_MODE0)/* GPMC_AD1.mmc1_DAT1 *
AM33XX_IOPAD (0x8f4、PIN_INPUT_PULLUP | MUX_MODE0)/* GPMC_ad2.mmc1_data2 *
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 *
>;
};
我已经检查了引脚并确保没有错误。
内核打印如下:
[3.255113] mmc0:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[3.264045] OMAP-AES 53500000。AES:OMAP AES 硬件加速器版本:3.2
[3.280042] OMAP-SHIM 53100000.SHIM:OMAP 版本4.3上的硬件加速器
[3.287504] OMAP_hsmmc 48060000.MMC:@@@@@@@@@@@@ OCR:16744576、OCR_AVAIL:0
[3.294572] omap_hsmmc 48060000.mmc:不支持卡的电压
[3.300705] mmc0:初始化 MMC 卡时出现错误-22
我发现 OCR_AVAIL 为0、因此发生错误。
我的 eMMC 是 MTFC4GACAJCN-4MIT、它是5.0、我通过 Google 搜索、AM335x 可以支持 eMMC 5.0。
附件是内核打印日志和 MMC 引脚定义。