mssthtf@163.com 发表于 2016-5-19 09:09:30

u-boot启动卡死

       现在问题定位到在路径u-boot-2009.08/drivers/mmc/imx_esdhc.c这个文件中,u-boot卡死在while(!(readl(&regs->irqstat)&IRQSTAT_BRR));这里。
       在与官方板子对比中发现在u-boot-2009.08/drivers/mmc/imx_esdhc.c路径中函数下static int esdhc_send_cmd()中(第231行中)irqstat = readl(&regs->irqstat);的函数后面添加打印信息,printf("\r\n %u",irqstat);得出官网的打印结果为33,自己做的板子的打印结果为1。在此函数之前添加打印信息printf("\r\n 0x%08x\n",regs->irqstat);得出官网和自己做的板子的打印信息都为0x00000001。
       结论:因为readl()为从内存映射的 I/O 空间读取数据,readl 从 I/O 读取 32 位数据 ( 4 字节 )。readl(为地址位)即在读取地址位0x00000001的数据的时候出了问题。即硬件地址位0x00000001的GPIO口出了问题

mssthtf@163.com 发表于 2016-5-19 15:18:55

遇到同样问题的朋友来回复一下
页: [1]
查看完整版本: u-boot启动卡死