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.

[参考译文] PROCESSOR-SDK-AM335X:eMMC 卡电压问题

Guru**** 2931100 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/668781/processor-sdk-am335x-emmc-card-voltage-issue

器件型号:PROCESSOR-SDK-AM335X

尊敬的 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 引脚定义。

如需任何帮助、请访问 appricaitede2e.ti.com/.../am335x.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、user5264099、

    我在日志中看到您使用的内核4.4.3.113、它不是来自 AM335x TI PSDK 的。 TI PSDK 4.4内核为4.4.12 (PSDK3.00)、4.4.19 (PSDK3.01)、4.32 (PSDK3.02)和4.41 (PSDK3.03)。

    我将检查您的特定问题并返回给您、但请注意、如果您可以重现 TI PSDK 随附内核的问题、我们可以提供更好的帮助。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="user5264099"[3.287504] omap_hmc 48060000.mmc:@@@@@@@@@@@@ OCR:16744576、OCR_AVAIL:0
    [3.294572] omap_hsmmc 48060000.mmc:不支持卡的电压

    在 BBB 上、MMC0/0x48060000用于 SD 卡、而 MMC1/0x481D8000用于 eMMC。

    您能否确认将 eMMC 连接到 AM335x 定制板的 MMC0/0x48060000?

    [引用 user="user5264099"]

     mmc1{(&M)

    VMMC-SUPPLY =<&vmmcsd_fixed>;
    pinctrl-names ="default";
    pinctrl-0 =<&eMMC_PINs>;
    总线宽度=<8>;
    状态="正常";
    };

    [/报价]

    我在随附的 AM335x-bone-common.dtsi 文件中看到以下 mmc1条目:

    mmc1{(&M)
       状态="正常";
       总线宽度=<0x4>;
       pinctrl-names ="default";
       pinctrl-0 =<&mmc1_PINs>;
       CD-GPIO =<&GPIO0 6 GPIO_ACTIVE_LOW>;
    };

    请仔细检查 AM335x-bone-common.dtsi 文件。

    [引用 user="user5264099"]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 *
    >;
    };[/报价]

    某些 MMC0引脚(在 DTSI 文件中命名为 mmc1)似乎被覆盖、例如:

    eMMC_Pins:pinmux_eMMC_Pins{

    AM33XX_IOPAD (0x938、PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_AD4.mmc1_dat4 *

     

    cpsw_default:cpsw_default{

    AM33XX_IOPAD (0x938、PIN_INPUT_PULLUP | MUX_MODE0)   /* mii1_rxd2.mii1_rxd2 *

     

    我建议您验证控制模块中的 MMC0 pinmux 寄存器在用户空间中是否具有正确的值、请使用 devmem2工具或 omapconf 工具检查这些值。

    此致、
    帕维尔