查看: 1751|回复: 2

[已解决] imx6 solo从EIM NOR启动

[复制链接]

该用户从未签到

1

主题

3

帖子

1

新手上路

Rank: 1

积分
18
最后登录
2018-10-12
发表于 2018-10-8 11:57:10 | 显示全部楼层 |阅读模式
大家好:
       手上有一块自己参考mx6dlsabresd开发板设计的板卡,在EIM总线的CS0片选上接了一块SPANSION的并口NOR FLASH。目前板卡从SD卡可以正常启动,希望修改成从EIM并口NOR FLASH启动,折腾了好几天都不成功,希望论坛上有搞过这块的高手可以指点一下。

       目前的情况如下:
1 将u-boot.imx使用dd命令烧写到SD卡,启动模式设置为从SD启动,可以正常启动;
2 修改u-boot源码目录board\freescale\mx6sabresd下的配置文件mx6dlsabresd.cfg,将BOOT_FROM        sd修改为BOOT_FROM         nor,重新编译生成u-boot.imx。板卡从SD卡启动,进入linux系统后,先格式化NOR FLASH,然后通过dd命令将u-boot.imx烧写到FLASH偏移地址0x1000处(根据CPU手册,0x1000是IVT的偏移地址),通过将NOR FLASH中的数据回读回来发现数据确实写进去了。然后修改启动模式设置为从EIM并口NOR启动,重新上电,无法启动,串口没有任何输出。
3 在NXP官方网站下载的Mfgtools中找到一个编译好的u-boot-mx6dl-sabreauto-weimnor.bin文件,因为我发现这个bin文件中已经有4KB的头部填充数据,所以使用同样的方式通过dd命令将该bin文件烧写到FLASH偏移地址0处,然后修改启动模式设置为从EIM并口NOR启动,重新上电发现U-BOOT可以启动,串口有输出。说明我的启动模式设置没有问题。

       请问一下我第2步中修改的地方有问题吗?还需要修改其它地方吗?为啥重新编译后烧写到NOR FLASH的U-BOOT无法启动呢?
我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

1

主题

3

帖子

1

新手上路

Rank: 1

积分
18
最后登录
2018-10-12
 楼主| 发表于 2018-10-11 10:16:45 | 显示全部楼层
已解决。原来是配置文件中EIM总线的时钟没有使能。需要修改board/freescale/mx6sabresd下的配置文件mx6dlsabresd.cfg:/* set the default clock gate to save power */
DATA 4 0x020c4068 0x00C03F3F
DATA 4 0x020c406c 0x0030FC03
DATA 4 0x020c4070 0x0FFFC000
DATA 4 0x020c4074 0x3FF00000
DATA 4 0x020c4078 0x00FFF300
DATA 4 0x020c407c 0x0F0000C3
DATA 4 0x020c4080 0x000003FF
将最后一行DATA 4 0x020c4080 0x000003FF改为DATA 4 0x020c4080 0x00000FFF,根据数据手册寄存器CCM_CCGR6(地址0x020c4080)的bit10-11是eim_slow clocks (eim_slow_clk_enable),需要使能,否则EIM总线没有工作,接在EIM总线片选CS0上的并口NOR FLASH自然无法访问,应该是这个原因了。按上述修改后,重新编译生成的u-boot.imx烧录到并口NOR FLASH的0x1000偏移处,u-boot就可以启动了。
谢谢大家关注。


点评

自问自答,很好啊  发表于 2018-10-15 09:34

评分

参与人数 1 +1 收起 理由
NXP管管 + 1 结帖奖励

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-20 22:08 , Processed in 0.108350 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表