u-boot
mutemob
安静
展开
-
Tiny210移植u-boot报/usr/local/include/asm/io.h文件中未知的类型名错误
前几天开始学BootLoader,开始在自己的友善之臂Tiny210SDK2的版本子移植u-boot,确碰到一个非常奇怪的错误,在编译u-boot时,老是报/usr/local/include/asm/io.h文件中有未知类型错误,如下:/usr/local/include/asm/io.h:111:1: 错误: 未知的类型名‘phys_addr_t’/usr/local/include/原创 2013-03-20 11:40:12 · 2496 阅读 · 1 评论 -
Tiny210(S5PV210) U-BOOT(七)----SDRAM工作时序与原理
DDR出身自SDRAM,严格的说应该叫DDR SDRAM,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思,所以,有很大一部分,两者是一样的,理解SDRAM,然后再来理解DDR在SDRAM上的改进,效果应该更好一些,这里要感谢Chinaunix.net的大神--Tekkaman Ninja,我的内存的学习资料都是Tekkaman N原创 2013-10-19 15:49:47 · 3022 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(九)----DDR2工作时序与原理
前面将DDR的工作原理大致的理了一遍,上述资料大多来源于网上现成资料的再加工和整理,DDR2和DDR相比较除了预取变成成4bit以外,其余的和软件相关的不是很多,待以后有时间再来细细整理,现在开始关注一下芯片手册上关于DDR2的初始化流程,P598页:1.查看芯片手册DDR2的初始化顺序Initialization sequence for DDR2 memory type1.原创 2013-10-23 01:37:12 · 4050 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(三)----配置时钟频率源码分析
1.设置APLL/MPLL/EPLL/EPLL锁相环时间翻看手册,P371页,找到PLL CONTROL REGISTERS。 • (APLL_LOCK, R/W, Address = 0xE010_0000) • (MPLL_LOCK, R/W, Address = 0xE010_0008) • (EPLL_LOCK, R/W, Address = 0xE010_00原创 2013-07-21 16:52:39 · 2513 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(二)----配置时钟频率基本原理
U-BOOT在启动的过程中,需要配置系统时钟。1.基本原理首先输出一个高电平,然后,通过三个晶振,输出一个频率,然后,通过倍频器(锁相环),将频率升高,然后,再通过分频,把分出来的不同的频率,提供给不同的器件,比如ARM Cotrex内核、各种设备控制器等等。Tiny210(S5PV210)上蓝色的框标注的就是晶振的位置,最上面的是27MHz,中间和下面两颗是24MHz,顺便讲一下另外原创 2013-07-21 15:44:15 · 3344 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(一)----启动过程
CPU上电后,此时SP指针指向0x0000_0000,从这个地址取第一条指令。但此时:PLL没有启动,CPU工作频率为外部输入晶振频率,非常低(S5PV210中晶振在CPU旁边,两颗24MHz,一颗27MHz);CPU的工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没有驱动,内存不能使用。在这种情况下必须在第一条指令处做一些初始化工作,这段初始化程序与操作系统独立分开,称之为Bo原创 2013-03-22 22:40:12 · 5013 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(十)----DDR2初始化顺序
现在网上的S5PV210的u-boot源码中关于内存的初始化过程,基本上我没有找到任何资料有过分析DDR2的内存初始化代码的。在看u-boot的这段代码时,也徘徊了很久,不知道如下手,很多文章或资料都将这一段分析过程有意无意的隐藏掉了,最多也只是提一下说参考裸板的代码,在找不到任何资料的情况下,我只能依靠芯片手册上,三星在内存控制器这一章,写的关于DDR2的初始化顺序的28个步骤来一条一条去读去看原创 2013-10-23 11:09:12 · 3238 阅读 · 2 评论 -
Tiny210(S5PV210) U-BOOT(八)----DDR工作时序与原理
DDR SDRAM 全称为 Double Data Rate SDRAM,中文名为“双倍数据流 SDRAM”。DDR SDRAM 在原有的 SDRAM的基础上改进而来。下图是DDR和SDRAM的数据传输对比图图上可以清楚的看到,DDR SDRAM可在一个时钟周期内传送两次数据,上升沿传一次,下降沿传一次。1.DDR的基本原理先来看一张DDR读操作时序图从中可以发原创 2013-10-23 00:57:39 · 3590 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(五)----Nand Flash源码分析
1.u-boot参考源码 Nand Flash的初始化代码在board/samsung/tiny210/lowlevel_init.S 2.初始化Nand Flash在u-boot中,Nand的低级初始化在lowlevel_init.S中的nand_asm_init函数中。打开原理图,配置各个功能引脚----状态引脚R/nB, 读使能引用脚nRE, 片选信号nCE, 命令使能引脚C原创 2013-10-17 20:34:30 · 2980 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(四)----Nand Flash原理(1)
1.查看芯片型号我在上次讲系统时钟的时候,提过一下,在S5PV210下面的那一片就是Nand Flash,旁边的那4片是DDR,我的型号是K9F2G08UOB查找三星芯片的命名手册,这个网上有,PDF名称叫----三星_Nand_Flash_芯片型号命名规则.pdf,打开,查找K9F2G08UOB所代表的具体参数如下:芯片类型:Nand FlashSmall Classif原创 2013-10-17 18:33:08 · 3461 阅读 · 3 评论 -
Tiny210(S5PV210) U-BOOT(六)----DDR内存配置
上次讲完了Nand Flash的低级初始化,然后Nand Flash的操作主要是在board_init_f_nand(),中,涉及到将代码从Nand Flash中copy到DDR中,这个放到后面实际移植的过程中再结合源码流程来分析,正常来说,DDR应该是放在Nand Flash前面开始讲,因为DDR相对于Nand Flash来说,更加复杂一些,所以,将DDR拖后来讲,OK,接着开始讲DDR。原创 2013-10-18 10:25:30 · 4787 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(四)----Nand Flash原理(2)
下面以一个实际的读操作,来讲一下Nand Flash的时序:在开始解释前,多罗嗦一下”使能”这个词,使能(Enable),是指使其(某个信号)有效,使其生效的意思......比如,上面图中的CLE线号,是高电平有效,如果此时将其设为高电平,我们就叫做,将CLE使能,也就是使其生效的意思。使能,这个中文翻译有点怪怪的,有点像WDT(Watch Dog Timer),中文翻译叫看门狗,原创 2013-10-17 20:21:19 · 2381 阅读 · 0 评论 -
Tiny210(S5PV210) U-BOOT(十二)----编译出u-boot.bin
经过前面十一篇帖子的基础知识的梳理准备,现在我们可以正式开始移植了,所谓磨刀不误砍柴工,如果前面的一些知识没有准备好,后面你照着步骤来做这些事,毫无意义,试问在工作中,有人会写一个步骤与手册来教给你,让你照着做就OK了吗,那如果有这样的工作,而且薪水可观的话,请联系我,不甚感激!,言归正传,开始正式移植的第一天的任务。第一天任务:配置板文件,编译出u-boot.bin1.cp原创 2013-11-20 11:50:08 · 2471 阅读 · 4 评论 -
Tiny210(S5PV210) U-BOOT(十一)----DDR2初始化源码分析
1.u-boot关于DDR的源码分析在mem_setup.S中,一点一点来,先看第一段 /* DMC0 Drive Strength (Setting 2X) */ ldr r0, =ELFIN_GPIO_BASE ldr r1, =0x0000AAAA str r1, [r0, #MP1_0DRV_SR_OFFSET] ldr原创 2013-10-23 17:09:01 · 3702 阅读 · 0 评论