Bootargs参数详解
参考贴:https://blog.csdn.net/ghostyu/article/details/6968681
##【bootfile:默认的下载文件名】
##【baudrate:串口控制台的波特率】
baudrate=115200
##【ethaddr:以太网卡的网卡物理地址】
ethaddr=00:11:22:33:44:55
##【ipaddr:本地ip 地址】
ipaddr=192.168.1.10
##【netmask:以太网接口的掩码】
netmask=255.255.255.0
##【gatewayip:默认网关的ip地址】
gatewayip=192.168.1.1
##【serverip:TFTP服务器端的IP地址】
serverip=192.168.1.1
##【bootcmd:自动启动时执行的命令】
bootcmd=mmc read 0 0x1FFFFC0 0x7000 0xA000;bootm 0x1FFFFC0
##【】
bootargs_512M=mem=512M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1G=mem=1G mmz=ddr,0,0,48M vmalloc=500M
bootargs_2G=mem=2G mmz=ddr,0,0,48M vmalloc=500M
bootargs_768M=mem=768M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1536M=mem=1536M mmz=ddr,0,0,48M vmalloc=500M
bootargs_3840M=mem=3840M mmz=ddr,0,0,48M vmalloc=500M
##【bootargs:传递给内核的启动参数】
bootargs=model=mv100 console=ttyAMA0,115200 root=/dev/mmcblk0p9 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),4M(baseparam),4M(pqparam),4M(logo),20M(kernel),64M(busybox),512M(backup),-(ubuntu)
##【bootdelay:执行自动启动的等候秒数】
bootdelay=0
##【stdin:标准输入设备,一般是串口。】
stdin=serial
##【stdout:标准输出设备,一般是串口,也可是LCD(VGA)】
stdout=serial
##【stderr:标准出错设备,一般是串口,也可是LCD(VGA)】
stderr=serial
==============================================================
bootargs各变量含义如下:
mem:mem=xxM 指定内存的大小,不是必须的,整个DDR被划分为两部分:系统内存和mmz。mem表示整个DDR大小,mmz表示mmz区域大小。
需要根据单板配置及内存占用情况合理配置mem和mmz大小。
mmz:格式ddr,0,0,size size表示整个DDR中预留给MMZ使用的空间大小。
例如mmz=ddr,0,0,300M表示在整个mem中预留300M供MMZ使用,其余分配给系统内存使用
console:控制台参数。console=ttyAMA0,115200表示使用串口0作为控制台设备 波特率为115200
root:用来指定rootfs(文件系统)的位置,root=/dev/mmcblk0p9 (如果直接指定设备名可以的话,那么使用此设备的设备号也是可以的。)
rootfstype:根文件系统类型,请根据烧写的文件系统类型配置,此处为ext4
这个选项需要跟root一起配合使用: 一般如果根文件系统是ext2的话,有没有这个选项是无所谓的,
但是如果是jffs2,squashfs等文件系统的话,就需要rootfstype指明文件系统的类型,不然会无法挂载根分区。
blkdevparts:eMMC的分区划分,格式 blkdevparts=mmcblk0:size(name),size(name),...,-(others)
size表示分区的大小 当rootfstype为ext3/ext4时, rootfs分区的大小必须与文件系统镜像大小保持一致。
name表示分区名称。
bootcmd各变量含义如下:
bootcmd=mmc read 0 0x1FFFFC0 0x7000 0xA000;bootm 0x1FFFFC0
bootcmd说明:从第0个mmc设备块上14M字节处开始(0x7000的十进制14M),读取(0xA000的十进制34M,即第六分区的hi_kernel)到内存0x1FFFFC0处,并从此处引导。
bootm:从指定的位置启动内核,注意需要是uImage内核。例如boootm 0x82000000,表示从内存0x82000000的位置启动内核。
1、读取头部,把内核拷贝到合适的地方。
2、把参数给内核准备好,并告诉内核参数的首地址。
3、引导内核。
重启系统:reset
==============================================================
SD卡启动: mmc read 0 0x1FFFFC0 0x1000 0x5000;bootm 0x1FFFFC0
USB启动: usb start;fatload usb 0:1 0x1FFFFC0 hi_kernel.bin;bootm 0x1FFFFC0
参考贴:https://blog.csdn.net/h971379154/article/details/50838007
==============================================================
uboot中常见烧写命令总结
在嵌入式开发中,我们常常需要使用uboot对系统进行升级。升级的方式有很多种,如SD卡,U盘、TFTP等等。
本文就介绍自己常用烧录方式————SD卡和U盘。接下来介绍升级过程中常用的几种uboot命令。以便于以后查看。
一、SD卡启动(升级)
首先在uboot下执行mmc,可得:
mmc info - display info of the current MMC device →→→ mmc info-显示当前mmc设备的信息
mmc read addr blk# cnt →→→ mmc读取地址blk#cnt
mmc write addr blk# cnt →→→ mmc写入地址blk#cnt
mmc erase blk# cnt →→→ mmc擦除blk#cnt
mmc rescan →→→ mmc重新扫描
mmc part - lists available partition on current mmc device →→→ mmc部件-列出当前mmc设备上的可用分区
mmc dev [dev] [part] - show or set current mmc device [partition] →→→ mmc dev[dev][part]-显示或设置当前mmc设备[分区]
mmc list - lists available devices →→→ mmc列表-列出可用设备
mmc setdsr <value> - set DSR register value →→→ mmc setdsr<value>-设置DSR寄存器值
在切换到emmc设备下(执行mmc dev 1),执行mmcinfo可看到存储设备各属性信息:
1、mmc info 显示存储设备的信息
2、mmc read addr blk# cnt 用来将存储介质(emmc/sd)中的内容读取到内存中。
其中addr指内存中的目标位置起始地址,blk#指被拷贝内容起始存储块的块号,cnt指要被拷贝的块数。一般每个块的大小为512byte。
所以blk和cnt参数的单位都是块,一般为512字节。化成十六进制就是0x200。
在uboot启动时,可从启动log上看出各镜像文件在存储设备上的分区表,
观察得知偏移(offset)和大小(size)都为十六进制数,所以在使用mmc read命令时要注意后面的参数换算,
即offset/0x200 = blk,size/200=cnt。
读取emmc中boot分区的所有内容到内存中,可执行
mmc dev 1(切换到emmc设备才能对其读)
mmc read 0x1080000 1de000 10000 (使用以上公式offset/0x200=blk,size/200=cnt)
3、mmc write addr blk# cnt 将内存的地址为addr内容写到存储设备中,其中起始地址是blk,大小为cnt (单位都为块)
mmc write 0x1080000 1de000 10000 将内存1080000开始的内容,写到emmc的1de000开始大小为10000
SD卡更新uboot>bin示例:
mmc dev 0
mmcinfo
fatload mmc 0 0x1080000 uboot.bin(SD卡首目录下文件)
mmc write 1080000 0 2000
二、从USB启动(升级)
usb start:USB设备初始化,若未执行,不能操作usb设备内容
fatls usb 0:列举U盘中所有文件
fatinfo usb 0:U盘属性等信息
fatload usb 0:1 1080000 u-boot.bin 将U盘中的u-boot.bin文件加载到内存地址1080000中去。
USB更新uboot>bin示例:
usb start
fatload usb 0:1 1080000 boot.img
bootm 1080000 从内存1080000启动内核,重启后无效,则更新失败,未写到emmc或者flash中
格式:fatload interface dev[:part] addr filename
其中:nterface:sd、tf、usb。
dev[:part]设备号1、2、3等,part设备的分区。
filename:启动文件。
==============================================================
-====================其他教程导航====================-
32位设备安装宝塔7.7版本
域名动态解析ddns-go公网IPv4或IPv6地址Docker版
海思芯机顶盒NAS系统设置成U盘或tf卡启动方案
重置系统恢复出厂设置命令recoverbackup
盒子改MAC地址
kernel_5.10.119_5.15.44内核
-================================================-
...
..
.