打印
[i.MX]

imx6dl系列uboot启动时uboo卡死问题请教?

[复制链接]
1246|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
msc185|  楼主 | 2018-11-7 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件连接:
eMMC是连接到USDHC3上。
软件及工具:
参考的是飞凌imx6q/dl开发板设计的自己的板子,软件使用的飞凌imx6q/dl开发板相应的软件。
目前状况:
1、因之前eMMC烧写进去后(能确定东西已经烧写成功了),调整到eMMC启动时无任何输出,故采用如下方法继续调试软件
1)修改了uboot中的COMMAD参数,设置uImage文件大小和rootfs的地址及格式
2)修改了mfgtools中ucl2.xml中的地址,使uImage的大小可随意
3)上面2项修改后编译,将uxl2.xml中的烧写语句在修改成如下内容,可使系统直接在内存中跑起来
<LIST name="IMX6DL-NET-Test" desc="Choose Nand as media">
        <CMD state="BootStrap" type="find" body="Recovery" timeout="180"/>
        <CMD state="BootStrap" type="boot" body="Recovery" file ="firmware/net/u-boot.bin" >Loading uboot MTFC32GJWEF.</CMD>
        <CMD state="BootStrap" type="load" file="firmware/net/uImage" address="0x10800000"
                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>
        <CMD state="BootStrap" type="load" file="firmware/6q/initramfs.cpio.gz.uboot" address="0x10D00000"
                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>
        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
  </LIST>



说明:系统运行起来说明我eMMC烧写肯定是烧写成功了的,因为rootfs用的是eMMC中烧写的东西,并且我创建文件后掉电,再重新按照上面的配置烧写,创建的文件依旧存在。
2、硬件调整后eMMC启动时有uboot的输出,但是输出到下面内容后就卡死
U-Boot 2009.08 (Oct 30 2018 - 16:09:33)

CPU: Freescale i.MX6 family TO1.3 at 792 MHz
Temperature:   57 C, calibration data 0x59b4fc7d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock     : 396000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61013 [POR ]
Boot Device: MMC
I2C:   ready
DRAM:   1 GB
MMC:   fsl_esdhc_initialize 621 regs=0x2190000.....
DEBUG_INFO: mmc_register 1544......
DEBUG_INFO: usdhc_gpio_init index=1
fsl_esdhc_initialize 621 regs=0x2194000.....
DEBUG_INFO: mmc_register 1544......
DEBUG_INFO: usdhc_gpio_init index=2
fsl_esdhc_initialize 621 regs=0x2198000.....
DEBUG_INFO: mmc_register 1544......
DEBUG_INFO: usdhc_gpio_init index=3
fsl_esdhc_initialize 621 regs=0x219c000.....
DEBUG_INFO: mmc_register 1544......
FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3

查找发现其在uboot程序的uboot-2009/drivers/mmc/imx_esdhc.c 中
函数esdhc_send_cmd的“while (!(readl(&regs->irqstat) & IRQSTAT_BRR))”卡住了,读取到regs->irqstat的值为0,regs->irqstaten为0x157f513f,故想请教下esdhc_send_cmd其作用是什么?针对此问题有何建议?谢谢!

相关帖子

沙发
msc185|  楼主 | 2018-11-7 15:12 | 只看该作者
尝试输出了USDHC对应的地址为02198000,查看手册,跟USDHC3一致。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝