我们的板子上使用mmc0做系统boot使用,同时想使用mmc2做文件存储。但是目前mmc2功能在Uboot中无法使用。
我在mux.c中添加了引脚初始化
static struct module_pin_mux mmc2_pin_mux_sk_evm[] = {
{OFFSET(gpmc_be1n), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_DAT3 */
{OFFSET(gpmc_a3), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_DAT2 */
{OFFSET(gpmc_a2), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_DAT1 */
{OFFSET(gpmc_a1), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_DAT0 */
{OFFSET(gpmc_clk), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_CLK */
{OFFSET(gpmc_csn3), (MODE(3) | RXACTIVE | PULLUP_EN)}, /* MMC2_CMD */
{OFFSET(mcasp0_axr0), (MODE(4) | RXACTIVE | PULLUP_EN)}, /* MMC2_CD */
{-1},
};
同时在。omap_hsmmc.c
#define OMAP_HSMMC1_BASE 0x48060100
#define OMAP_HSMMC2_BASE 0x481D8100
#define OMAP_HSMMC3_BASE 0x47810100
也在代码初始化中调用了omap_mmc_init(2)。但是在Uboot中还是无法读取MMC2的信息。
经过代码追踪,发现在mmc模块复位时读取寄存器异常。只要读取sd_sysconfig就引起死机。
后来在uboot中直接读取内存地址,也是直接死机。
U-Boot# md.w 48060110
48060110: 2015 0000 0001 0000 0000 0000 0000 0000 . ..............
48060120: 0000 0000 0000 0000 0000 0000 0600 0000 ................
48060130: 0000 0000 0000 0000 0000 0000 0000 0000 ................
48060140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
48060150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
48060160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
48060170: 0000 0000 0000 0000 0000 0000 0000 0000 ................
48060180: 0000 0000 0000 0000 0000 0000 0000 0000 ................
U-Boot# md.w 47810110
47810110:
无论是读取mmc1(未使用),mmc2均直接死机。
请问,如果要使用MMC2还需要特别设置什么东西吗?我使用的是sdk 6.0。