U-boot 移植

2019-07-30 16:20发布

Davinci U-Boot:U-Boot在SEED-DVS6446平台上的应用
SEED-DVS6446平台采用U-Boot-1.2.0版本,针对NAND Flash、Net、DDR驱动修改,并提供更多的U-Boot命令支持。下面以SEED-DVS6446平台为例,说明U-Boot在该平台上的常用配置使用。
一、U-Boot启动
1.软件配置
    打开串口超级终端(PC超级终端、Hyperterminal、Teraterm),配置相关参数如下:
>波特率:115200
>数据位:8
>奇偶较验:None
>停止位:1
>数据流控制:None
2.硬件配置
>DB9串口线一端连接DAVINCI平台串口,另一端连接PC机串口;
>DAVINCI平台的视频采集口连接摄像头或者DVD作为视频输入;
>DAVINCI平台的视频输出口连接显示设备;
>DAVINCI平台的网络接口通过网线连接至路由器等网络接口,或者通过直通线与
PC机网口连接;
>DAVINCI平台采用5V-5A电源供电,启动系统。
      此时可以在串口超级终端看到DVS6446平台的一些相关信息,比如ARM,DDR时钟频率,U-Boot版本等等。
二、U-Boot通过TFTP下载内核启动并挂载网络文件系统
    TFTP下载内核启动挂载网络文件系统方式,即通过TFTP服务器下载内核启动,文件系统挂载到Linux服务器下的已经搭建好的/opt/nfs文件系统目录下。过程如下:
1.SEED-DVS6446上电启动,显示上述启动信息,当显示"hit any key to stop autoboot: 3"时按下回车键,中断系统自动启动,进行启动参数配置,此时显示如下提示符:SEED-DVS6446_v1.2#: ;
2.配置启动参数,在提示符下输入以下配置参数:setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs ip=/opt/nfs video=dm64xxfbutput=pal
3.设置tftp服务器的IP地址和DVS6446的IP地址,在提示符下分别输入如下配置(tftp服务器的IP地址和DVS6446的IP地址,根据实际应用配置):
setenv serverip   _._._._
setenv ipaddr     _._._._
4.下载内核并启动(默认用户已经将内核文件uImage复制到tftp服务的根目录下),在提示符下配置下载启动:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系统启动,并自动挂载网络文件系统,启动完毕显示等待登录信息。
三、通过U-Boot配置参数实现VGA视频输出与复合视频输出的配置
      SEED-DVS6446支持复合视频与VGA视频输出显示,默认采用复合视频输出,用户可以通过U-Boot中的参数配置实现VGA输出。以TFTP下载内核启动挂载网络文件系统方式为例,详细步骤如下:
1.SEED-DVS6446 U-Boot启动,显示启动信息,当显示"hit any key to stop autoboot: 3"时按下回车键,中断系统自动启动,进行启动参数配置,此时显示如下提示符:SEED-DVS6446_v1.2#: ;
2.配置启动参数,在提示符下输入以下配置参数:setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs ip=/opt/nfs video=dm64xxfb format=vgautput=pal
3.设置tftp服务器的IP地址和DVS6446的IP地址,在提示符下分别输入如下配置:
setenv serverip   _._._._
setenv ipaddr     _._._._
4.下载内核并启动,在提示符下配置下载启动:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系统启动,并自动挂载网络文件系统,将VGA接口同SEED-DVS6446平台的VGA输出口连接,启动完毕即显示等待登录信息,VGA显示器左上角显示Monta Vista Linux的图标。
四、从CCS直接烧录到DDR情况下,不需要U-Boot,此时cmd的通用脚本文件如下:
-lrts32e.lib
-l....cslarmlibDebugcsl_davinciArm9.lib
-l....libdavincievmbsl.lib
-stack          0x00000800      
-heap           0x00000800      
MEMORY
{
    IRAM:         o = 0x00000000 l = 0x00004000
    DRAM:       o = 0x00008000 l = 0x00004000
    AEMIF:      o = 0x02000000 l = 0x02000000
    DDR2:       o = 0x80000000 l = 0x08000000
}
SECTIONS
{
    .bss          >   DDR2
    .cinit         >   DDR2
    .cio            >   DDR2
    .const       >   DDR2
    .stack       >   DDR2
    .sysmem   >   DDR2
    .text        >   DDR2
    .ddr2       >   DDR2
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
小木欧尼
1楼-- · 2019-07-30 19:40
支持一下
edishen
2楼-- · 2019-07-30 23:01
 精彩回答 2  元偷偷看……
zhangmangui
3楼-- · 2019-07-31 02:27
这方面资料真心很缺    还望楼主多多分享
huangfeng33
4楼-- · 2019-07-31 04:22
zhangmangui 发表于 2014-10-8 22:47
这方面资料真心很缺    还望楼主多多分享

网上看到的,收藏作为以后参考之用,也希望能够帮到其他需要的朋友。

一周热门 更多>