U-Boot-2009-03移植笔记(移植准备)

发布者:JoyousJourney最新更新时间:2024-09-04 来源: cnblogs关键字:U-Boo  移植笔记  移植准备 手机看文章 扫描二维码
随时随地手机看文章

因为工作需要,需要在S3C2440板子上移植U-boot和Linux,虽然关于S3c2440移植的文章比较多,但是毕竟全面的不多,而且都是别人的,这次自己动手,以此系列记录全过程。


U-boot1.1.6中有支持smdk2410的代码,而2440和2410还是比较相近的,于是在2410的基础上来移植。


建立xinna2440代码

我们把自己移植的u-boot叫xinna2440-u-boot,首先要建立xinna2440代码


修改顶层Makefile


直接在vim中查找smdk2410_config,然后在下面增加xinna2440_config的定义


1 smdk2410_config    :    unconfig

2     @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

4 xinna2440_config    :    unconfig

5     @$(MKCONFIG) $(@:_config=) arm arm920t xinna2440 NULL s3c24x0


然后拷贝代码


cp  include/configs/smdk2410.h include/configs/s3c2440.h

cp board/samsung/smdk2410/ board/xinna2440 -r 


测试xinna2440代码


make xinna2440_config

Configuring for xinna2440 board...

make


只要你安装好了交叉编译链(这里推荐3.4.5,其他版本有可能在移植Nandflash驱动的时候出现链接错误),编译不应该出错,在根目录下会生成u-boot.bin文件。  


搞清楚要移植的内容

U-Boot分为两部分,第一部分是汇编部分的启动,我们在这个阶段至少要设置CPU工作模式、关闭看门狗、初始化内存(SDRAM)关闭MMU,禁中断,设置PLL,代码拷贝,为C语言准备运行环境(设置堆栈指针)等一些列工作。移植是个细活, 不熟悉的没法快起来,需要很有耐心。


因为我们基于smdk2410来移植xinna2440,那么我们要搞清楚哪些地方是我们需要移植的.


SOC的区别

smdk2410用的是s3c2410的芯片,xinna2440用的是s3c2440的芯片,因此我们只要弄清楚这两款芯片的区别,就知道针对cpu的不同而要移植哪些地方了.


1、两款芯片的主频不同,所以我们要修改PLL驱动


2、中断控制器不同,我们需要禁止所有中断


3、两款芯片的NandFlash控制器不同。


smdk2410是带有NORFlash的,可以从NORFlash启动,而xinna2440是不带NORFlash,我们只能从NandFlash启动,所以我们必须移植好NandFlash驱动。


BOARD区别

1、第一个就是要注意GPIO的链接不同,这里不详说。


2、第二要注意外围器件不同


xinna2440没有Norflash,所有无法从NORFlash启动

smdk2410和xinna2440用的Nandflash芯片不同,xinna2440用的是K9F2G08U0A

smdk2410用的是CS8900网卡芯片,xinna2440用了DM9000

查找入口点


用vim打开cpu/arm920t/u-boot.lds,可以看到,U-boot的起始代码位于cpu/arm920t/start.S中,我们可以从这里作为入手点,展开移植工作。

关键字:U-Boo  移植笔记  移植准备 引用地址:U-Boot-2009-03移植笔记(移植准备)

上一篇:U-Boot-2009-03移植笔记(从Nandflash启动一)
下一篇:U-Boot-2009-03移植笔记(点亮第一展灯)

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved