DM368开发 -- uboot 使用

来源:互联网 发布:永恒之塔 5.0捏脸数据 编辑:程序博客网 时间:2024/06/05 16:26

一、uboot指令

hisilicon # help
?       - alias for 'help'
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
ddr     - ddr training function
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
getinfo - print hardware information
Go      - start application at address 'addr'
help    - print command description/usage
loadb   - load binary file over serial line (kermit mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mtest   - simple RAM read/write test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sf      - SPI flash sub-system
tftp    - tftp  - download or upload image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version
hisilicon # 

详细查看各个指令用法可使用 help+指令名 来查看。举个栗子:
x210 # help eraseerase start end    - erase FLASH from addr 'start' to addr 'end'erase start +len    - erase FLASH from addr 'start' to the end of sect w/addr 'start'+'len'-1erase N:SF[-SL]    - erase sectors SF-SL in FLASH bank # Nerase bank N    - erase FLASH bank # Nerase all

二、uboot 环境变量

参看:U-Boot Usage
参看:uboot环境变量实现分析
bootdelay    执行自动启动的等候秒数
baudrate     串口控制台的波特率
netmask     以太网接口的掩码
ethaddr       以太网卡的网卡物理地址
bootfile        缺省的下载文件
bootargs     传递给内核的启动参数
bootcmd     自动启动时执行的命令
serverip       服务器端的ip地址
ipaddr         本地ip 地址
stdin           标准输入设备
stdout        标准输出设备
stderr         标准出错设备

三、uboot 传参机制

参看:uboot向kernel的传参机制——bootm与tags

四、bootargs 

参看:U-Boot Usage
参看:GSG: DM365 DVEVM Additional Procedures
例如:
setenv bootargs 'console=ttyS0,115200n8 ip=dhcp root=/dev/mtdblock3 rw rootfstype=yaffs2 mem=76M  video=davincifb:vid0=OFF:vid1=OFF:osd0=720x576x16,4050K dm365_imp.oper_mode=0 davinci_capture.device_type=4'setenv bootcmd 'nand read 0x80700000 0x400000 0x400000;bootm 0x80700000';

root=

它告诉内核使用什么设备作为根文件系统。例如,要通过NFS引导,请设置
    root=/dev/nfs
要通过MMC / SD启动,请执行类似操作
    root=/dev/mmcblk0p2

rw

这告诉内核将根文件系统挂载为读/写。

rootstype=

指明文件系统的类型

nfsroot=

它告诉内核哪个机器和目录用于NFS挂载,以及根文件系统的选项。 更多细节可以在 linux/Documentation/ nfsroot.txt 文件中找到。 这也必须与 root = /dev/nfs 参数一起使用。例如:
    nfsroot=192.168.1.100:/home/workdir/filesystem,nolock 
(192.168.1.100 为虚拟机 IP)

ip=

通过 NFS 安装时,内核必须直接配置网络接口。 这个的典型用法是:
    ip=dhcp

例如:ip=192.168.32.128:192.168.32.122:192.168.32.1:255.255.255.0 
“ip=”后面: 
    第一项(192.168.32.128)是开发板的临时IP(注意不要和局域网内其他 IP 冲突); 
    第二项(192.168.32.122)是我的 PC 的 IP; 
    第三项(192.168.32.1)是开发板上网关(GW)的设置; 
    第四项(255.255.255.0)是子网掩码

noinitrd 

当指定时,这将允许通过 /dev /initrd 访问初始 RAM 磁盘。否则使用 initrd

init

init指定的是内核启起来后,进入系统中运行的第一个脚本,一般init=/linuxrc, 或者init=/etc/preinit,preinit的内容一般是创建console,null设备节点,运行init程序,挂载一些文件系统等等操作。请注意,很多初学者以为init=/linuxrc 是固定写法,其实不然,/linuxrc指的是/目录下面的linuxrc脚本,一般是一个连接罢了。

mem=

这指定了可用于Linux的内存量。

console=

这告诉内核在哪里发送引导消息。 典型用法是使用第一个串行端口,115200波特,8位数据,无奇偶校验。 例如:
    console=ttyS0,115200n8

mtdparts

Flash分区描述,格式为 mtdparts=hi_sfc:256K(boot),3M(kernel),1M(rootfs),5M(data) 
表示有4个分区,分区0大小为256用于bootloader启动,分区1大小为3M用于内核启动,分区2大小为1M用于根文件系统启动,5M为用户数据。

video=

这将告诉内核有关如何配置视频设备的信息。 这里给出了与TI EVM具体相关的一些常见值。

    davincifb | omap24xxfb

这具体说明要使用的framebuffer驱动程序的名称。 (对于DaVinci零件选择davincifb和OMAP3零件的omap24xxfb)。

    vid[0-1]=[width x height x bpp,mem]

这指定了对应于vid0或vid1的帧缓冲区的大小,每像素的位数和内存量。 如果使用v4l2驱动程序(而不是davincifb),请将其指定为vid0 = OFF:vid1 = OFF。 如果使用davincifb驱动程序,您可以分配一个720x480 vid0窗口,每个像素16位,内存2500KB
    vid0=720x480x16,2500K

    osd[0-1][width x height x bpp,mem]

这指定了对应于osd0或osd1的帧缓冲区的大小,每像素的位数和分配的内存量。 例如,您可以分配一个720x480的osd0窗口,每个像素16位,内存2500KB
    osd0=720x480x16,2500K

    rotation=n (for use with omap24xxfb only)

这指定了帧缓冲区的旋转量。 n的有效值为{0,90,180,270}。
video =参数的所有值部分应该用逗号分隔。 例如,在达芬奇设备上,要使用v4l2驱动程序进行视频窗口并设置OSD窗口,请使用:
    video=davincifb:vid0=OFF:vid1=OFF:osd0=720x480x16,2500K

dm365_imp.oper_mode=

这将设置IPIPE调整器的模式。 连续模式为0,单拍模式为1。

davinci_capture.device_type=

这定义要使用哪个驱动程序。 使用以下设置:
    davinci_capture.device_type=0 for MT9T001
    davinci_capture.device_type=1 for TVP5146
    davinci_capture.device_type=2 for MT9T031
    davinci_capture.device_type=3 for MT9P031
    davinci_capture.device_type=4 for TVP7002
    davinci_enc_mngr.ch0_output=

有效值为:
   COMPOSITE
   COMPOSITE1
   SVIDEO
   SVIDEO1
   COMPONENT
   COMPONENT1
   LCD
   LCD1

davinci_enc_mngr.ch0_mode=

达芬奇的有效值为:
   NTSC
   ntsc
   NTSC-RGB
   PAL
   pal
   PAL-RGB
   720P-24
   720P-25
   720P-30
   720P-50
   720P-60
   1080I-25
   1080I-30
   1080P-25
   1080P-30
   1080P-50
   1080P-60
   480P-60
   576P-50
   640x480
   640x400
   640x350
   800x480

DaVinciHD(DM6467)的有效值为:
   NTSC
   NTSC-RGB
   PAL
   PAL-RGB
   720P-25
   720P-30
   720P-50
   720P-60
   1080I-25
   1080I-30
   1080P-24
   1080P-25
   1080P-30
   1080P-50
   1080P-60
   480P-60
   576P-50
   640x480
   640x400
   640x350

五、nand flash/nor flash烧写指令

1、nand flash

例如:烧写内核mw.b 82000000 ff 400000tftp 82000000 uImagenand erase 800000 400000nand write 82000000 800000 400000

nand info :  查看nandflash芯片信息包括数据线位宽一般8或者是16等

nand erase:  nandflash使用之前必须先擦除,遇到坏块会标记以下是使用实例

    nand erase 0x00280000 0x300000
    作用:擦除nandflash上起始地址为0x00280000,长度为0x300000的flash空间

nand scrub: 作用和nand erase差不多,但是会将坏块信息也擦除掉

    nand scrub 400000 1000000 表示从 0x400000 开始清理 64M。
    如果最后一个参数不传,则表示从此地址开始清理至 nand flash 结束,比如:
    nand scrub 400000 表示清理从 0x400000 开始的所有 flash 空间。

nand write:  将数据从ddr上的某个地址写入flash中间比如

    nand write 0x81000000 0x00280000 0x300000
    作用:将DDR地址为0x81000000上的数据写入到nandflash 地址0x00280000上,写入长度为0x30000

nandecc  : 在读写flash之前需要先设置好该flash的ecc校验方法,否则可能导致很严重的错误,

    以下是设置ecc校验的命令:
    nandecc hw 2设置nandflash的ecc校验是硬件校验具体为BCH8(4位校验码)
    nandecc hw 0设置nandflash的校验方法是硬件校验具体是汉明码(1位校验码)
    nandecc sw 设置nandflash的校验方法是软件校验

2、nor flash

例如:烧写 ubootsf probe 0mw.b 82000000 ff 100000tftp 0x82000000 u-boot.binsf probe 0sf erase 0 100000sf write 82000000 0 100000

【mw.b】

mw.b表示按字节显示,内存初始化,填充内存。把内存 0x82000000 开始的 0x10000 字节设为 0xFF。

【sf probe 0】 

探测并初始化SPI FLASH;

【0x82000000】

内存地址

【erase】 

表示从地址0擦除了1M的文件

【write】 

表示从内存地址0x82000000写入1M文件