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..\..\csl\arm\lib\Debug\csl_davinciArm9.lib 
-l..\..\lib\davincievmbsl.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 
} |   
     
  
 |