完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
上传到csdn上了
http://download.csdn.net/source/3408882 好久没有更新这里的东东了。2440也很久没有玩了。公司的事情是在太多,太繁琐。 目前刚买好房子,希望能空下来好好的研究研究。和大家共同进步。 在此,非常高兴能和大家一起交流。将U-Boot 1.3.4基本功能port到utu2440demo板的过程做一个总结(板子是utu2440-F-v4.1)。 手头的UTU2440-demo板,但是没有U-Boot的源代码,做软件的没有源代码,这怎么行。出于以下两个原因,开始了第一次的U-Boot的port,偶称之为菜鸟“飞飞”。 1) 为了获得一份U-boot源代码(提供的demo板只给了个bin文件,为啥不给源代码,不说了L。) 2) 为了体验一下U-boot的port过程J,希望能对U-Boot有更深的了解和认识。 注意:我说的是port,自己压根就不用写什么代码,因为很多高人都已经做过了。个人认为这个port关键就是对Boot过程和硬件spec有比较深的理解,能够很好的让SDRAM,Serial,Net chip工作起来。 本来打算这周能够给出一个文档,交流一下port的关键点。但是结果,我还是没能够完成任务,希望大家理解。 我再整理一下,稍后发出来,这里先给出几个标题和bin,patch。因为有一些图,所以整篇发出来将会以pdf的方式给出,争取下周能把第一稿出来,让大家来板砖一下。:) 第零点:借鉴SMDK2410 其实有个条条框框可以遵循,按部就班,Step by Step,可以事半功倍。这一点好像也不需要很多的工作,很简单,但也是最为关键的一点,这里暂且叫第零点。接下来开始“偷懒”的方法了。。。。。(待续) 第一点:SDRAM设置(我认为是最重要的) 首先,根据demo板上的RAM型号找到相应的芯片spec,(注意,我的板子上是HYNIX_HY57V561620FTP-H)。通过HYNIX_HY57V561620FTP-H的芯片spec可以知道,该芯片是32MB SDRAM(通常我们的板子都是SDRAM),板子上装了2颗,那么就是64MB SDRAM,但是从2440spec上的定义,也可以外接SRAM。。。。(待续) 第二点:堆栈设置 朋友们到这里,板子上的SDRAM初始化已经完成。有了内存,我们这里就需要开始为软件环境进行设置堆栈了。见Start.S中的代码。。。。(待续) 第三点:代码搬运:(Nand-Flash) 由于demo板上是没有Nor-Flash,所以在此将会主要关注在Nand-Flash中的代码搬运。从给出的patch代码上来看,应该也是支持Nor-Flash的,但是我没有做过测试,非常欢迎大家反馈结果给我。。。。。(待续) 第四点:时钟设置,串口设置 哦,My God!总算到这里了。我们打起精神,来看看初始化串口、时钟设置。为啥吧串口放在时钟前面,因为程序调试串口非常重要,但要是串口设置的不对,那不是看到乱码的问题,而是看不到的问题。能看到乱码,那已经蛮走运了J。 如果你不幸看不到串口输出的乱码,兄弟,你的boot代码真冤啊。只好慢慢摸索了,如果实在不行,只能在线调试或者点灯,当然比较痛苦的。我点过了,但是在这里不谈了。。。。。(待续) 先给出一些bin和patch, patch-0.2 =============== U-boot 启动 ================== U-Boot 1.3.4 (Oct 21 2008 - 23:01:15) DRAM: 64 MB NAND: NAND 64MiB 3,3V 8-bit, ManufactureID=0xec,DeviceID=0x76 64 MiB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 utu2440 # pri bootdelay=6 baudrate=115200 ethaddr=08:00:3e:26:0a:5b ipaddr=192.168.58.7 serverip=192.168.58.103 netmask=255.255.255.0 install-bootloader=tftp 30000000 u-boot.bin;nand erase 0 40000;nand write 30000000 0 40000 install-kernel=tftp 30000000 uImage;nand erase 60000 200000;nand write.i 30000000 60000 0 erase-env=nand erase 40000 20000 bootargs=root=/dev/mtdblock2 rw console=ttySAC0,115200 bootcmd=nand read.i 0x32000000 0x60000 0x200000; bootm 0x32000000 stdin=serial stdout=serial stderr=serial Environment size: 496/65532 bytes utu2440 # |
|
相关推荐
100个回答
|
|
楼主啊:求助
关于#define Tchr 0x2 /* 3clk */ 这个参数没看明白,它上面的每个参数不是写到寄存器里面的吗? REFRESH CONTROL REGISTER没有该项啊?它是做什么用的? |
|
|
|
看得很仔细嘛,我查了2410和2440,里面都是reserved和NOT used。那证明芯片不用这里面的数据(理想状态)。从spec上讲,这2位的值没有任何影响。
你可以实验一下,用不同的值启动看看,是什么结果。下次把这个地方改掉。谢谢!:D 是在lowlevel_init.S里面用的。如果你删除它,记得把下面的也要去掉。 |
|
|
|
删除是不行的,虽然能够编译成功但是不能够使用.估计更改也是不行的,期待强人的说明.................
|
|
|
|
踏破铁蹄无觅处,我和版主也是yc的开发板,感谢啊,继续努力
|
|
|
|
|
|
|
|
编译成功,不能够使用,是指U-Boot不能起来吗?我还没有试过,你的实验结果是不能起来吗?
|
|
|
|
等几天我再试试吧,好象我的开发板自带的U-BOOT有问题,它没修改好.
|
|
|
|
要不就是不支持NAND启动
|
|
|
|
楼主你好
我用DM9000做网口 板子也是utu2440 的 看过他们内核源码发现他们DM9000也是挂在BANK3上 不过插上网线pc上连接还是红叉叉 debug了一下 好像没有执行eth_init() 自己添加了一下 执行到DM9000_iow()就死机了 是不是么有把DM9000初始化好 ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我想问一下,你是如何判断DM9000没有初始化的?
|
|
|
|
|
|
|
|
没有找到,不等于DM9000没有起来呀:-| ,偶被你搞糊涂了。还是先看看书吧。
|
|
|
|
|
|
|
|
网线没有问题
因为我也是utu2440的板子 用他们的bootloader 可以通过网口下载内核的 但是用lida2003兄的bootloader 接上网线连windows上的网络连接都是红叉叉 所以应该是DM9000没起来 至于是不是因为没初始化好DM9000 这只是我个人推测 我是新手 请多见谅:Z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2166 浏览 6 评论
1975 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4530 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:37 , Processed in 1.637128 second(s), Total 114, Slave 95 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号