一、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 #
? - 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 标准出错设备
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=192.168.1.100:/home/workdir/filesystem,nolock (192.168.1.100 为虚拟机 IP)
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)是子网掩码;
“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 磁盘。否则使用 initrdinit
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位,内存2500KBvid0=720x480x16,2500K
osd[0-1][width x height x bpp,mem]
这指定了对应于osd0或osd1的帧缓冲区的大小,每像素的位数和分配的内存量。 例如,您可以分配一个720x480的osd0窗口,每个像素16位,内存2500KBosd0=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=
有效值为:
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
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)的有效值为:
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
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 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文件