DM368开发 -- uboot 使用

一、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 erase
erase 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'-1
erase N:SF[-SL]
    - erase sectors SF-SL in FLASH bank # N
erase bank N
    - erase FLASH bank # N
erase all

二、uboot 环境变量

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

三、uboot 传参机制

四、bootargs 

参看:U-Boot Usage
例如:
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 400000
tftp 82000000 uImage
nand erase 800000 400000
nand 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

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

【mw.b】

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

【sf probe 0】 

探测并初始化SPI FLASH;

【0x82000000】

内存地址

【erase】 

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

【write】 

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚优致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值