由于硬件设计把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限制只有两个挂载点