因为工作需要,需要在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
3
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、第二要注意外围器件不同

  1. xinna2440没有Norflash,所有无法从NORFlash启动
  2. smdk2410和xinna2440用的Nandflash芯片不同,xinna2440用的是K9F2G08U0A
  3. smdk2410用的是CS8900网卡芯片,xinna2440用了DM9000

查找入口点

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

转载于:https://www.cnblogs.com/spinsoft/archive/2013/05/31/3110620.html

U-Boot-2009-03移植笔记(移植准备)相关推荐

  1. AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17

    AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17 手上板子原来自带的是2.4.19的内核, 打算移植新的2.6的内核,从网上下了2.6.17的kernel,下载 ...

  2. Linux学习笔记---移植官方linux步骤(一)

    使用的开发板是正点原子IMX6U-MINI  EMMC512M的开发板,这个板子也是移植的NXP官方linux,所以这里就直接从NXP官方的linux移植. 这里所说的移植,其实不是自己编写驱动文件等 ...

  3. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

  4. 【TINY4412】U-BOOT移植笔记:(9)SD卡启动U-BOOT

    [TINY4412]U-BOOT移植笔记:(9)SD卡启动U-BOOT 宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64 目标板[底板]: Tiny4412SDK - 1506 目标板 ...

  5. 瑞芯微 | 摄像头ov13850移植笔记

    <1.瑞芯微rk356x板子快速上手> <2.Linux驱动|瑞芯微rtc-hym8563移植笔记> <3.Linux驱动 | Linux内核 RTC时间架构-基于瑞芯微 ...

  6. Linux学习笔记---移植官方linux步骤(二)

    目录 修改网络驱动 修改 LAN8720 的复位 以及网络时钟 引脚驱动 修改fec1和fec2节点pinctrl-0属性 修改LAN8720A的PHY地址 修改 fec_main.c 文件 配置 L ...

  7. Linux学习笔记---移植官方uboot步骤(二)

    在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...

  8. 以太网芯片W3100A到W3150A+的移植笔记(一)

    最近很多用户咨询 W3100A,由于W3100A已经停产.在此希望给大家介绍一下,W3100A可移植到其他芯片的方式及途径,供大家更好的拓展您项目的沿用性,期待能对您有所帮助.今天先为大家介绍第一部分 ...

  9. micropython STM32移植笔记(一)

    micropython STM32移植笔记(一) 首先,我是一个搞硬件的,说白了是做电路的,呵呵... 一直想学一些软件,只会搞硬件的工程师是没有灵魂的,画了7年的PCB板卡了,但是每次调试硬件都要求 ...

  10. AWTK 在腾讯 TOS 上的移植笔记

    AWTK 在腾讯 TOS 上的移植笔记 本文以 STM32f103ze 为例,介绍了 AWTK 在 RTOS 上移植的经验.与其说移植,倒不如说是集成.因为 RTOS 通常没有提供标准的 LCD 驱动 ...

最新文章

  1. Nginx —— configure文件详解
  2. 2009年全球最佳IT十大认证
  3. 串口服务器端口配置及调试的6大技巧
  4. angular 注入器配置_注入器和发布库–AngularJS学习笔记(三)
  5. 第 91 章 SMS
  6. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——A题 切蛋糕
  7. 解决PowerPoint英语课件配音难同步的问题
  8. Win10+Python+Django+Nginx+MySQL开发教程及实例(2)——Python连通操作MySQL
  9. 时空旅行+内付费“植物大战僵尸2”下月18日全球同步发行!
  10. 你所需要的只是注意力
  11. GULP案例1:计算声子色散曲线和态密度
  12. EGO Swarm翻译
  13. iOS开发者账户注册/添加调试设备
  14. Sentinel-【控制台介绍及规则配置】
  15. ssms 导出mysql_怎样使用SSMS管理器导出数据表 用SSMS管理器导出数据表的方法
  16. Camera Resolution vs Screen Resolution
  17. DelphiXE7操作sqlite数据库
  18. flex 底部固定_div 底部固定方法(不用position定位)
  19. P1719 最大加权矩形(二维前缀和Java)
  20. 邯郸计算机学校排名2015,邯郸初中排名2021最新排名,邯郸初中排名前十的学校有哪些...

热门文章

  1. protocol buffers使用说明
  2. C语言笔记(关键字)
  3. Qtum量子链漏洞赏金计划正式开启
  4. Selenium UI 举例 getCssValue
  5. 1.KafKa-介绍
  6. 【Java学习】JDBC可以再深一点理解
  7. Fedex Ship Manager Software安装
  8. 轻操作动作休闲单机游戏《狂斩三国2》评测
  9. 安装SQL2005只有配置工具或 错误码是29506 解决方案
  10. 服务器响应HTTP的类型ContentType大全