工具与软件:
我在使用 TI SDK 9.01在定制电路板上启用 eMMC 的器件树中遇到一些问题。 uBoot 设法找到 eMMC 存储器、而基于 Open Embedded 的旧操作系统则会工作并检测 eMMC。 以下是日志和设备树。 如果有人有任何想法,我可以进一步检查,请告诉我。
UBoot:
=> mmc list OMAP SD/MMC: 0 (SD) OMAP SD/MMC: 1 => mmc dev 1 switch to partitions #0, OK mmc1(part 0) is current device => mmc list OMAP SD/MMC: 0 (SD) OMAP SD/MMC: 1 (eMMC) => mmc info Device: OMAP SD/MMC Manufacturer ID: 13 OEM: 4e Name: Q2J54A Bus Speed: 48000000 Mode: MMC High Speed (52MHz) Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 3.6 GiB Bus Width: 8-bit Erase Group Size: 512 KiB User Capacity: 3.6 GiB WRREL Boot Capacity: 2 MiB ENH RPMB Capacity: 512 KiB ENH Boot area 0 is not write protected Boot area 1 is not write protected
Linux:
root@am335x-evm:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 14.9G 0 disk |-mmcblk0p1 179:1 0 64M 0 part /run/media/mmcblk0p1 `-mmcblk0p2 179:2 0 7.3G 0 part /
[ 2.364780] sdhci-omap 481d8000.mmc: supply pbias not found, using dummy regulator [ 2.372638] sdhci-omap 48060000.mmc: Got CD GPIO [ 2.377412] sdhci-omap 48060000.mmc: supply pbias not found, using dummy regulator [ 2.390178] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator [ 2.410668] sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator [ 2.455557] mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA [ 2.465720] mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA [ 2.514518] mmc0: new high speed SDHC card at address 0001 [ 2.520983] mmcblk0: mmc0:0001 USD 14.9 GiB [ 2.528064] mmcblk0: p1 p2 [ 2.666781] EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended [ 2.679385] EXT4-fs (mmcblk0p2): recovery complete [ 2.685520] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled. [ 6.299876] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled.
器件树:
emmc_pins_default: emmc-default-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
AM33XX_IOPAD(0x884, PIN_INPUT | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE1) /* (U7) gpmc_ad0.mmc1_dat0 */
AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE1) /* (V7) gpmc_ad1.mmc1_dat1 */
AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE1) /* (R8) gpmc_ad2.mmc1_dat2 */
AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE1) /* (T8) gpmc_ad3.mmc1_dat3 */
AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
>;
};
&mmc2 {
vmmc-supply = <&vmmc_reg>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_pins_default>;
bus-width = <8>;
non-removable;
status = "okay";
};
