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

uboot启动阶段的SD卡检测问题

大家好!我自己根据BBB画了一块板子,主要做了两处更改:

1 将网口1的模式从MII改成了RMII

2 将SD卡的插入检测管脚从C15(spi0_cs1)改成了J17管脚

板子的启动顺序默认是SD卡启动。

为了适应板子配置,我修改了uboot源码树中的/board/ti/am335x/mux.c对于MMC0的配置部分:

static struct module_pin_mux mmc0_pin_mux[] = {
{OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT3 */
{OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT2 */
{OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT1 */
{OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT0 */
{OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CLK */
{OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CMD */
{OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)}, /* MMC0_WP */
// 原程序 {OFFSET(spi0_cs1), (MODE(7) | RXACTIVE | PULLUP_EN)}, /* GPIO0_6 */
{OFFSET( mii1_rxdv), (MODE(7) | RXACTIVE | PULLUP_EN)}, /* GPIO3_4 ,根据核心板修改为J17脚,2017-11-08*/
{-1},
};

同时,为了防止和网口的管脚冲突,我将网口的配置模式改为了:

 configure_module_pin_mux(rmii1_pin_mux);

然后编译uboot,将MLO和uboot.img放到SD卡中,上电启动后uboot提示:

U-Boot 2017.01-00320-g17c7dbd-dirty (Nov 08 2017 – 16:11:22 +0800)

CPU : AM335X-GP rev 2.1
Model: TI AM335x EVM
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
MMC: no card present
** Bad device mmc 0 **
Using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net: Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Hit any key to stop autoboot: 0MMC: no card present

data abort
pc : [<9ff72188>] lr : [<9ff7108b>]
reloc pc : [<8081f188>] lr : [<8081e08b>]
sp : 9df28710 ip : 9df34798 fp : 00000003
r10: 9df34608 r9 : 9df32ed8 r8 : 9df3cfb0
r7 : 40000000 r6 : 9df34580 r5 : 9df34608 r4 : 47810000
r3 : 9ff71709 r2 : 9ff72179 r1 : 9ff9bd99 r0 : 9df34608
Flags: nZCv IRQs off FIQs on Mode SVC_32
Resetting CPU …

resetting …

然后就不停的重启。如果我将C15管脚置低,则UBOOT可以正常启动,内核也可以顺利加载。这让我很困惑:

难道我对uboot中的MMC0的修改没有起作用?为什么UBOOT仍然通过C15来判断SD卡的状态?

另外就是uboot源码树里的设备树有什么用呢?需要修改吗?

我的SDK是TISDK 04.00.00.04。

先行感谢大家的解答!

tyrael cui:

自己顶一下,希望能得到解答

tyrael cui:

自己搞定了。原来是因为u-boot里也应用了设备树,所以硬编码没有用了。只要修改相应的设备树,就可以识别出SD卡了。

tyrael cui:

回复 Eggsy Pang:

请问除了dts、内核驱动外,还有哪些因素可以导致背光PWM没有输出?我在调试一块板子,用AM3358的PWM来驱动液晶背光,用示波器看没有输出。已经检查了硬件和pin的配置,没有错误。现在卡在这里了,不知道还应该怎么查。谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » uboot启动阶段的SD卡检测问题
分享到: 更多 (0)