一、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
参看: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 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文件