UBOOT 启动参数: bootargs 和 bootcmd

bootargs

复制代码
bootargs=console=ttyS0,115200 ubi.mtd=UBI,2048 root=ubi:rootfs ro rootfstype=ubifs init=/linuxrc rootwait=1 LX_MEM=0x7f00000 mma_heap=mma_heap_name0,miu=0,sz=0x3400000 mma_memblock_remove=1 highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x7C00000,max_end_off=0x7F00000 mtdparts=nand0:384k@1280k(IPL0),384k(IPL1),384k(IPL_CUST0),384k(IPL_CUST1),768k(UBOOT0),768k(UBOOT1),256k(ENV),256k(ENV1),0x20000(KEY_CUST),0x60000(LOGO),0x500000(KERNEL),0x500000(RECOVERY),0x1600000(rootfs_bak),-(UBI)

bootargs=console=ttyS0,115200 ubi.mtd=UBI,2048 root=ubi:rootfs ro rootfstype=ubifs init=/linuxrc rootwait=1 LX_MEM=0x7f00000 mma_heap=mma_heap_name0,miu=0,sz=0x3400000 mma_memblock_remove=1 highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x7C00000,max_end_off=0x7F00000 mtdparts=nand0:384k@1280k(IPL0),384k(IPL1),384k(IPL_CUST0),384k(IPL_CUST1),768k(UBOOT0),768k(UBOOT1),256k(ENV),256k(ENV1),0x20000(KEY_CUST),0x60000(LOGO),0x500000(KERNEL),0x500000(RECOVERY),0x1600000(rootfs_bak),-(UBI)

bootcmd

例子:

复制代码
bootcmd=gpio out 4 1; gpio out 6 1; gpio out 7 0; bootlogo 0 0 0 0 1; mw 1f001cc0 11; gpio out 8 0; gpio out 1 1; gpio out 15 0; nand read.e 0x22000000 KERNEL 0x500000; gpio out 8 1; gpio out 15 1; bootm 0x22000000;nand read.e 0x22000000 RECOVERY 0x500000; bootm 0x22000000

bootcmd=gpio out 4 1; gpio out 6 1; gpio out 7 0; bootlogo 0 0 0 0 1; mw 1f001cc0 11; gpio out 8 0; gpio out 1 1; gpio out 15 0; nand read.e 0x22000000 KERNEL 0x500000; gpio out 8 1; gpio out 15 1; bootm 0x22000000;nand read.e 0x22000000 RECOVERY 0x500000; bootm 0x22000000

1. 每一条命令使用; 分割

2. 依次执行每一条命令

命令解释:

gpio out 4 1 -- gpio4 设置高电平

bootlogo 0 0 0 0 1 -- 执行bootlogo

mw 1f001cc0 11 --"这里是针对2.4G 的wifi 设置命令"

着重解释一下面的操作命令:

nand read.e 0x22000000 KERNEL 0x500000; gpio out 8 1; gpio out 15 1; bootm 0x22000000;nand read.e 0x22000000 RECOVERY 0x500000; bootm 0x22000000

nand read.e 0x22000000 KERNEL 0x500000 ; bootm 0x22000000 -- 从KERNEL 分区中读取内核到RAM 0x22000000 地址,然后执行启动内核(bootm), 正常情况,bootcmd 到此结束。

当KERNEL分区异常,无法启动内核,则执行下面操作

nand read.e 0x22000000 RECOVERY 0x500000; bootm 0x22000000 -- 从 RECOVERY读取分区到RAM 0x22000000 地址, 然后执行内核。

相关推荐
MilesShi2 小时前
从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
linux·运维·单片机
我爱云计算5 小时前
K8S详解(5万字详细教程)
linux·运维·云原生·容器·kubernetes
2301_794333917 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
荣光波比8 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
绿箭柠檬茶11 小时前
Ubuntu 使用 Samba 共享文件夹
linux·运维·ubuntu
工藤新一¹12 小时前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间
Aspiresky12 小时前
浅析Linux内核scatter-gather list实现
linux·dma·scatter/gather
奔跑吧 android13 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
linux·数据结构·input·kernel·input_dev·input_handler·input_handle
再难也得平13 小时前
Linux初级篇
linux·运维·服务器
小猫挖掘机(绝版)14 小时前
通过tailscale实现一台电脑上vscode通过ssh连接另一台电脑上的VMware Linux 虚拟机
linux·windows·vscode·ubuntu·ssh