第五章:基于九鼎X210开发板移植2014.10版U-boot之初始化内存

 走到现在,停下来想一下,uboot的bl1阶段最大的使命就是初始化ddr,好让后面的大部队有充足的内存可以挥霍,所以下一步就需要好好看看和ddr相关的东西。

 接着定位到lowlevel_init,看完之后发现里面有一个internal_ram_init,这个是DDR初始化?往下看发现,代码就那么几行,心里就大概清楚肯定不是DDR初始化了。

 (ps:嵌入式开发中,内存的硬件设计和软件设计应该是最难的了,软件这里要和硬件一起搞,才能配置好很多寄存器,我们公司DDR寄存器配置的参数都是硬件设的)。DDR初始化不是我现在这种水平能搞定的,所以决定移植开发板配套的DDR。

 拷贝samsung-uboot/cpu/s5pc11x/s5pc110目录下的cpu_init.S到我们现在修改的uboot的板级目录下u-boot-2014.10/board/Samsung/X210/。由于内存初始化也要放在BL1前面,所以我们要对cpu_init.S进行裁剪,把没用的部分删除掉,减少下空间(当然不裁剪也可以,理论上应该是够用的)

 Review一下cpu_init.S,发现需要用到好多宏,然后就需要包含开发板配套的uboot的头文件,这里拷贝samsung-uboot/include目录下的s5pc110.hu-boot-2014.10/include目录下即可,由于s5pc110.h又调用到了一些头文件,这里我嫌麻烦,就直接将需要的头文件的内容直接包含进了s5pc110.h。编译后发现还缺了一些DDR配置参数,从三星版本的smdkv210single.h中复制到include/configs/目录下的X210.h中。

   

 接着修改DDR的板级信息,将CONFIG_NR_DRAM_BANKS更改为2,然后删除PHYS_SDRAM_3PHYS_SDRAM_3_SIZE,并将1和2的大小设置为256M。

  

 之后在板级目录下出x210.c文件中修改,将dram_init中的PHYS_SDRAM_S_SIZE删除,将dram_init_banksize里面的bi_dram[2]删除。  

  

 然后在lowlevel_init.s中追加DDR初始化,初始化完成后打印一个-。

      

 修改完后,在主makefileuboot.lds文件中修改需要链接的cpu_init.o,具体修改方法上面说过了,和lowlevel_init如出一辙。编译后拷贝到sd卡再启动,打印出-,说明成功了。

         






   








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值