6410上移植uboot

发布者:温暖的微风最新更新时间:2024-11-06 来源: cnblogs关键字:移植  uboot 手机看文章 扫描二维码
随时随地手机看文章

由于Uboot2011.06对S3C6410有了很好的支持,所以采用Uboot2011.06版本。
一、             移植环境
主 机:VMWare-ubuntu
开发板:ok6410—512M nandflash,Kernel:2.6.30.4
u-boot:u-boot-2011.06

二、       源码获得
              Uboot源码到:ftp://ftp.denx.de/pub/u-boot/下载
三、     本次移植的功能实现
· 支持Nand Flash读写
· 支持从Nand Flash/SD启动(SD卡启动只在uboot1.1.6中完成)
· 支持CS8900或者DM9000网卡
· 支持Yaffs文件系统
· 支持USB下载
四、     移植步骤
              1. 建立自己的开发板项目并测试编译
目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM处理器的支持,有smdk2400、smdk2410和smdk6400,但没有6410,所以我们就在这里建立自己的开发板项目。
1)因6410和6400的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫smdk6410
#tar -jxvf u-boot-2011.06.tar.bz2    //解压源码
#cd u-boot-2011.06/board/samsung/    //进入目录
#mkdir smdk6410                        //创建smkd6410文件夹
2)因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
#cp -ar smdk6400/* smdk6410/   //将6400下所有的代码复制到6410下
#cd smdk6410                   //进入smdk6410目录
#mv smdk6400.c my6410.c      //将smdk6410下的smdk6400.c改名为smdk6410.c
#cd ../../../                //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/smdk6410.h //建立6410配置头文件

注:把新建smdk6410下smdk6400_nand_spl.c更名位smdk6410_nand_spl.c,并且把smdk6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。


3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立smdk6410_config的编译选项,另外还要指定交叉编译器

#vim Makefile


CROSS_COMPILE ?= arm-linux-        //指定交叉编译器为arm-linux-gcc
smdk6410_noUSB_config
smdk6410_config      :      unconfig
      @mkdir -p $(obj)include $(obj)board/samsung/smdk6410       // 注意@前不是空格,是Tab键
      @mkdir -p $(obj)nand_spl/board/samsung/smdk6410
      @echo '#define CONFIG_NAND_U_BOOT' > $(obj)include/config.h
      @if [ -z '$(findstring smdk6410_noUSB_config,$@)' ]; then                  
             echo 'RAM_TEXT = 0x57e00000' >> $(obj)board/samsung/smdk6410/config.tmp;           //前面两个Tab键
             $(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;            
      else                                                               
             echo 'RAM_TEXT = 0xc7e00000' >> $(obj)board/samsung/smdk6410/config.tmp;
             $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;      
      fi
      @echo 'CONFIG_NAND_U_BOOT = y' >> $(obj)include/config.mk

*说明:arm    :CPU的架构(ARCH)

       arm1176:CPU的类型

       smdk6410 :对应在board目录下建立新的开发板项目的目录

       samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL

       s3c64xx:CPU型号

*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错



4)进入顶层目录nand_spl/board/samsung目录新建目录smdk6410,并将smdk6400下的文件复制到刚刚新建的smdk6410下

#cd nand_spl/board/samsung //

#cp –ar smdk6400/* smdk6410/

注:修改目此6410目录下的makefile文件,把里面的6400改为6410


5)测试编译新建的smdk6410开发板项目

#make smdk6410_config //如果出现Configuring for smdk6410 board...则表示设置正确

#make //编译后在根目录下会出现u-boot.bin和u-boot-nand.bin文件,则u-boot移植的第一步就算完成了



由于此版本的u-boot对于串口和时钟在开始配置文件中就已经初始化,对于ARM1176有很好的支持,利用从SD卡启动的uboot将u-boot-nand.bin下载到nand flash中,同时将开发板上SW2设置到从Nand flash启动位置。利用SecureCRT.exe软件观察串口打印信息如下:


可以看到移植在tq6410上移植uboot已经成功。可是Nor flash是2M可是信息上显示为0,是因为没有添加Nor flash的驱动引起的,而且开发板上自带的是DM9000AE的100M网卡,而uboot默认支持CS8900所以开始添加uboot的相关功能。

移植是采用SD烧写nand flash的uboot,为了方便烧写和调试首先移植网卡实现tftp下载。


关键字:移植  uboot 引用地址:6410上移植uboot

上一篇:Centos 上搭建nfs且可挂载到6410开发板
下一篇:编译可加载触摸屏驱动的uImage内核

推荐阅读最新更新时间:2026-03-24 11:02

S3C6410uboot回炉再造(2)地址无关性
这一篇写得有点慢,期间为了弄清楚一些细节的问题耽搁了,不过写得也会更详细。 1 /* 2 ************************************************************************* 3 * 4 * CPU_init_critical registers 5 * 6 * setup important registers 7 * setup memory timing 8 * 9 ************************************************************************* 10 */ 11 /* 12 * we
[单片机]
OK6410光盘里的uboot不能用TFTP下载文件?
无论用ping命令还是tftp命令,都显示 CS8900 Ethernet chip not found?! 看了uboot1.1.6/include/configs/smdk6410.h,里面确实是配置为网卡使用CS8900,什么时候发布个配置为DM9000的uboot源码啊?或者发个补丁也行 此问题已解决 方法很简单,给用飞凌S3C6410的朋友一个参考。   a.用\u-boot-1.1.6-TQ6410\drivers\目录下的dm9000x.c和dm9000x.h替换OK6410的u-boot里的同名文件   b.用\u-boot-1.1.6-TQ6410\include\configs\tq6410.h里配置网卡的几行
[单片机]
uboot在s3c2440上的移植(1)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand,Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2009.08.tar.bz2 二、移植步骤 本次移植的功能特点包括: 支持Nand Flash读写 支持从Nor/Nand Flash启动 支持CS8900或者DM9000网卡 支持Yaffs文件系统 支持USB下载(还未实现) 1. 了解u-boot主要的目录结构和启动流程,如下图。 u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成
[单片机]
<font color='red'>uboot</font>在s3c2440上的<font color='red'>移植</font>(1)
mini2440 uboot移植
(一)在顶层makefile中为开发板添加新的配置选项(红色部分为需要添加代码,下同) smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0 mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0 以上在makfile文件中添加以上代码时需要注意 mini2440_config : (此处是一个tab键)unconfig (此处是一个tab键)@$(MKCONFIG)
[单片机]
基于mini2440的uboot移植(一)
一.移植环境 虚拟机:ubuntu12.04 uboot源码:u-boot-2008.10.tar.bz2 交叉编译:arm-linux-gcc-4.4.3 简单的记录下编译uboot的过程,要想具体了解uboot的工作原理,可以查看韦东山对uboot这部分的讲解,红色部分为修改部分 二.移植步骤 1.将uboot源码复制到ubuntu下的自己定义的文件夹,并解压tar jxvf u-boot-2008.10.tar.bz2 2.选择要移植的开发板,我们要准备将uboot移植到mini2440上,s3c2440开发板的cpu为arm920t,smdk2410开发板的cpu也为arm920t,所以我们选择
[单片机]
基于mini2440的<font color='red'>uboot</font><font color='red'>移植</font>(一)
uboot-2011.12移植到S3C2440(序二)—— binutils二进制工具集与u-boot
概述 binutils是一组二进制工具集,它包括addr2line、ar、gprof、nm、objcopy、objdumpr、ranlib、size、strings、strip等。 ar软件 ar用于建立、修改、提取库文件。ar至少需要两个参数才能运行,比如: $ ar rv libtest.a add.o minus.o 是指将add.o、minus.o做成库文件libtest.a。其中r是指将文件列表插入归档文件,v是指得到操作版本号。 这样我们引用库文件的时候就可以使用: $ gcc -o test test.c -ltest nm软件 nm软件的作用是现实目标文件的信息和属性,比如: $ nm test.o
[单片机]
移植u-boot-2010.09到S3C2440(四)——通过BSS段和_start判断uboot大小
BSS(百度百科) 是“Block Started by Symbol”的缩写,意为“以符号开始的块”。 BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用,包括PE。“以符号开始的块”指的是编译器处理未初始化数据的地方。BSS节不包含任何数据,只是简单的维护开始和结束的地址,以便内存区能在运行时被有效地清零。BSS节在应用程序的二进制映象文件中并不存在。 uboot代码块占用存储空间大小 查看u-boot.lds,其将BSS放在所有代码段的最后,又从上述得知BSS不占用存储空间,这样,将
[单片机]
3.移植uboot-使板卡支持nor、nand
在上一章,我们添加了nor,nand启动后,uboot启动出如下图所示: 上面的Flash: *** failed *** 是属于uboot第二阶段函数board_init_r()里的代码, 代码如下所示(位于arch/arm/lib/board.c): /*第二阶段*/ void board_init_r(gd_t *id, ulong dest_addr) //gd uboot重定位地址 { ... ...   puts( Flash: );            //打印flash:   flash_size = flash_init(); //初始化nor_flash  
[单片机]
3.<font color='red'>移植</font><font color='red'>uboot</font>-使板卡支持nor、nand
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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