TI中文支持网
TI专业的中文技术问题搜集分享网站

如何在am335x uboot中使能MMC2挂载SD卡

由于硬件设计把MMC0接了wifi,USB0没有引出,引出MMC2接了SD卡,当时硬件考虑可以通过Jlink烧写文件系统,导致了现在的麻烦。

我的思路是先从串口启动加载uboot,uboot中初始化MMC2来挂载SD卡上的文件系统,不知到有没有高手做过相应的改动,我需要初始化MMC2并挂载SD卡

Jian Zhou:

你的Linux内核放在哪里?也是SD卡上么?

user4729174:

回复 Jian Zhou:

内核从串口加载

Jian Zhou:

回复 user4729174:

内核比较大,不建议从串口加载,最好放在SD卡上。

user4729174:

回复 Jian Zhou:

这个没什么问题,之前用开发板,内核损坏了,也是从串口把内核加载上去的,系统启动完成再更新内核文件

user4729174:

回复 Jian Zhou:

目的就是烧写emmc

Steven Liu1:

印象中,我们的各个版本的SDK中都没有做MMC2的driver初始化,所以要先做这块的初始化操作工作。使能pinmux,使能相关的module。

具体的操作没做过,因为目前没有什么EVM板这么接过,所以没啥平台可以实际操作的。

你目前是基于哪个Linux SDK版本做的?有做过初始化的操作,然后fail了吗?有没有相关操作的log?

user4729174:

回复 Steven Liu1:

uboot版本:2015.07

在board/ti/am335x/mux.c中增加

static struct module_pin_mux mmc2_pin_mux[] = {    {OFFSET(gpmc_ad15), (MODE(3) | RXACTIVE | PULLUP_EN)},    /* MMC2_DAT3 */    {OFFSET(gpmc_ad14), (MODE(3) | RXACTIVE | PULLUP_EN)},    /* MMC2_DAT2 */    {OFFSET(gpmc_ad13), (MODE(3) | RXACTIVE | PULLUP_EN)},    /* MMC2_DAT1 */    {OFFSET(gpmc_ad12), (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(gpmc_wpn), (MODE(4) | RXACTIVE | PULLUP_EN)},    /* MMC2_CD */    {-1},};

相同文件下void enable_board_pin_mux(void)函数增加configure_module_pin_mux(mmc2_pin_mux);

在arch/arm/include/asm/arch-am335x/mmc_host_def.h增加#define OMAP_HSMMC3_BASE 0x47810100

U-Boot# md.w 0x4781010047810100: 0000 0000 0000 0000 0000 0000 0000 0000    …………….47810110: 2015 0000 0001 0000 0000 0000 0000 0000    . …………..47810120: 0000 0000 0000 0000 0000 0000 0600 0000    …………….47810130: 0000 0000 0000 0000 0000 0000 0000 0000    …………….47810140: 0000 0000 0000 0000 0000 0000 0000 0000    …………….47810150: 0000 0000 0000 0000 0000 0000 0000 0000    …………….47810160: 0000 0000 0000 0000 0000 0000 0000 0000    …………….47810170: 0000 0000 0000 0000 0000 0000 0000 0000    …………….U-Boot# mmc listOMAP SD/MMC: 0OMAP SD/MMC: 1 (eMMC)

user4729174:

回复 Steven Liu1:

U-Boot# bootMMC Device 2 not foundno mmc device at slot 2SD/MMC found on device 2MMC Device 2 not foundno mmc device at slot 2SD/MMC found on device 2MMC Device 2 not found** Bad device mmc 2 **MMC Device 2 not found** Bad device mmc 2 **** No partition table – mmc 1 **switch to partitions #0, OKmmc1(part 0) is current deviceSD/MMC found on device 1switch to partitions #0, OKmmc1(part 0) is current deviceSD/MMC found on device 1Failed to mount ext2 filesystem…** Unrecognized filesystem type **** Unrecognized filesystem type **** No partition table – mmc 1 **Booting from nand …no devices availableno devices availableBad Linux ARM zImage magic!

Jian Zhou:

回复 user4729174:

怎么感觉是把MMC2识别成MMC0了

user4729174:

回复 Jian Zhou:

不是的 并没有挂载上去,查询这个设备号是没有设备的,是不是mmc限制只有两个挂载点

赞(0)
未经允许不得转载:TI中文支持网 » 如何在am335x uboot中使能MMC2挂载SD卡
分享到: 更多 (0)