從u-boot傳bootargs給kernel

通过 uboot 的 bootargs添加一个新参数传送给 kernel 通过 uboot 的 bootargs添加一个新参数传送给 kernel 一、bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已。 二、在uboot中设置bootargs环境变量,在kernel启动后cat /proc/cmdline可以看到bootargs的值。 三、在打印信息也会看到Kernel command line 四、添... 阅读详情

1. rebuild u-boot with CONFIG_CMDLINE_TAG defined in include/configs/XXX.h
2. in u-boot:

setenv bootargs xxx=xxx;
Refer to uImage + u-boot的啟動方式 任一方法,用go的不行
setenv flashaddr 10040000;setenv kfile uImage; setenv ramaddr 1500000;tftp $(ramaddr) $(kfile); bootm $(ramaddr);
結果

Star Dorado2 # setenv bootargs xxx=xxx;
Star Dorado2 # setenv flashaddr 10040000;setenv kfile uImage; setenv
ramaddr 1500000;tftp $(ramaddr) $(kfile); bootm $(ramaddr);
config VSC7385
MAC0 PHY Link Status : UP!
INIT VSC8601
VSC8601 Type B Chip
TFTP from server 172.20.5.185; our IP address is 172.20.150.151
Filename 'uImage'.
Load address: 0x1500000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
###################################################
done
Bytes transferred = 1590076 (18433c hex)
## Booting image at 01500000 ...
Image Name: Linux-2.6.16-star
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1590012 Bytes = 1.5 MB
Load Address: 01500000
Entry Point: 01500040
Verifying Checksum ... OK
XIP Kernel Image ... OK

Starting kernel ...

Uncompressing
Linux................................................................................................ done, booting the kernel.
Linux version 2.6.16-star (root@test-laptop) (gcc version 3.4.6) #7 Tue Jun
3 14:41:53 CST 2008
CPU: FA526id(wb) [66015261] revision 1 (ARMv4)
Machine: STAR STR9100
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 2, 16 byte lines, 512 sets
CPU0: D cache: 16384 bytes, associativity 2, 16 byte lines, 512 sets
CPU clock at 250MHz
AHB clock at 125MHz
APB clock at 62MHz
Enable I-ScratchPad Address Start : c002c000
Built 1 zonelists
Kernel command line: xxx=xxx
(..............................................)





转载:非常不错的u-boot ppt
http://blog.chinaunix.net/u/22617/showart_466018.html



bootm命令浅析
http://blog.chinaunix.net/u1/47239/showart_377972.html

http://blog.youkuaiyun.com/menuconfig/archive/2008/04/09/2270429.aspx
http://www.sudu.cn/info/html/edu/linux/20070102/291441.html


使用initrd文件系统 U-boot引导Linux方法
http://linux.chinaitlab.com/administer/753535.html

bootm 0x100000 0x240000
(其中:0x100000是linux内核在flash中的地址,0x240000是initrd在flash中的地
址)

setenv bootargs console=ttyS0,115200n8 root=/dev/ram rw mem=32M
当u-boot使用上面的设置时,能够正常引导linux加载initrd !


http://www.hhcn.com/cgi-bin/topic.cgi?forum=3&topic=735
14.3.5. Linux Kernel Ignores my bootargs

Question:
Why doesn't the kernel use the command-line options I set in the "bootargs"
environment variable in U-Boot when I boot my target system?

Answer:
This problem is typical for ARM systems only. The following discussion is
ARM-centric:

First, check to ensure that you have configured your U-Boot build so that
CONFIG_CMDLINE_TAG is enabled. (Other tags like CONFIG_SETUP_MEMORY_TAGS or
CONFIG_INITRD_TAG may be needed, too.)
This ensures that u-boot will boot
the kernel with a command-line tag that incorporates the kernel options you
set in the "bootargs" environment variable.

If you have the CONFIG_CMDLINE_TAG option configured, the problem is almost
certainly with your kernel build. You have to instruct the kernel to pick up
the boot tags at a certain address
. This is done in the machine descriptor
macros, which are found in the processor start-up C code for your
architecture. For the Intel DBPXA250 "Lubbock" development board, the
machine descriptor macros are located at the bottom of the file
arch/arm/mach-pxa/lubbock.c, and they look like this:

MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform")
MAINTAINER("MontaVista Software Inc.")
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
FIXUP(fixup_lubbock)
MAPIO(lubbock_map_io)
INITIRQ(lubbock_init_irq)
MACHINE_END

The machine descriptor macros for your machine will be located in a similar
file in your kernel source tree. Having located your machine descriptor
macros, the next step is to find out where U-Boot puts the kernel boot tags
in memory for your architecture
. On the Lubbock, this address turns out to
be the start of physical RAM plus 0x100, or 0xa0000100. Add the
"BOOT_PARAMS" macro with this address to your machine descriptor macros; the
result should look something like this:

MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform")
MAINTAINER("MontaVista Software Inc.")
BOOT_PARAMS(0xa0000100)
BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
FIXUP(fixup_lubbock)
MAPIO(lubbock_map_io)
INITIRQ(lubbock_init_irq)
MACHINE_END

If there is already a BOOT_PARAMS macro in your machine descriptor macros,
modify it so that it has the correct address. Then, rebuild your kernel and
re-install it on your target. Now the kernel should be able to pick up the
kernel options you have set in the "bootargs" environment variable.

嵌入式Linux启动全解析:U-Boot、Kernel与Rootfs的协作与调试 在嵌入式Linux系统中,系统启动是一个由Bootloader、内核与根文件系统协同完成的精密过程。Bootloader(如U-Boot)负责初始化硬件、加载内核镜像与设备树,并传递启动参数。内核作为系统核心,接管硬件管理、驱动加载,并依据参数挂载根文件系统。根文件系统则为用户空间提供必要的运行环境与应用程序。理解三者关系是解决启动问题的关键,例如当出现“uboot 和内核 修改”不同步或“the initrd of default start item is mismatched with running 阅读详情

相关推荐

【kernel】——u-boot 通过 SD 卡启动 Linux

将 kernel + dtb + rootfs 打包到一个 SD 卡镜像中。可以看到分区 1 为 kernel + dtb。分区2 为 rootfs。前面几节中,分别介绍了。

tyustli 1504

Linux下bootargs引导参数说明

=========================================设置系统启动参数========================================= 必须正确设置bootargs参数或者烧写bootargs镜像才能保证系统正常启动 这个参数设置要传递给内核的信息,主要用来告诉内核分区信息和根文件系统所在的分区核心理解:内核和文件系统启动...

Yfw的博客 2348

uboot bootargs 参数详解

uboot bootargs bootcmd 参数详解

Uboot通过bootargs给Kernel传递自定义MAC

前言 本文以 PX30 USB网卡设置自定义MAC为例,分享如何在bootargs参数基础上添加自定义字段,实现uboot向kernel传递参数。 一、关于bootargs bootargs 是 uboot 在启动 Linux 内核时传递给内核的引导参数,参数中一般包含启动存储介质、文件系统分区及挂载方式和终端串口等参数。 在系统中我们可以通过 /proc/cmdline 来查看 uboot 给 kernel 传递的 bootargs 参数内容。 # cat /proc/cmdline sto

Industio_优快云的博客 5342

Linux启动bootargs参数分析

Linux启动bootargs参数分析

【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)

本文针对传统A算法在机器人路径规划中存在的搜索效率低、路径不平滑等问题,提出了一种改进型A算法。该算法通过引入跳点搜索(JPS)技术优化子节点扩展方式,结合贝塞尔曲线或B样条曲线进行路径平滑处理,并采用动态启发式函数和自适应邻域搜索策略,显著提升了路径规划的效率和路径质量。实验结果表明,改进型A*算法在复杂环境下能有效减少搜索节点数量,缩短路径长度,提高路径平滑性,且具备动态避障能力。

2501_92867626的博客 1583

Linux kernel bootargs全解

使用命令:man bootparam,可以看kernel支持的所有的bootargs。下面展示其运行后的结果: BOOTPARAM(7) Linux Programmer's Manual BOOTPARAM(7)

ZHONGkunjia的专栏 5099

资治通鉴:文言文、白话文对照读本

介绍一处可以免费下载资治通鉴的网址,该文献共20卷,排版为左边是文言文,右边是白话文翻译,对照阅读非常方便。下面是1-20卷的链接地址:第一卷:http://www.docin.com/p-9705067.html 第二卷:http://www.docin.com/p-9705979.html 第三卷:http://www.docin.com/p-9709382.html 第四卷:

aiwis的专栏 2548

Bootargs 参数

bootargs 的参数还有以下一些。

Jarvis的博客 1479

Python量化交易实战:如何用pytdx库快速解析通达信.day文件(附完整代码)

本文详细介绍了如何使用Python的pytdx库高效解析通达信.day本地数据文件,构建免费、稳定的量化交易数据源。文章提供了从环境配置、基础数据读取、复权处理到板块信息获取的完整实战代码,并演示了如何将处理后的数据无缝接入Backtrader等回测框架,为量化策略开发提供可靠的数据基础。

ppp33的博客 1145

一次搞定 SAP IDoc 失败重处理与安全清理:BD87 实战指南

本文介绍了SAP IDoc错误处理的BD87实战指南。主要内容包括: BD87的核心功能:监控IDoc处理状态并支持人工重处理或标记删除,适用于入站/出站IDoc故障处理。 重处理前的关键步骤: 区分技术错误与业务错误 检查是否允许重复处理 确认日期范围设置正确 标准操作流程:通过BD87选择错误IDoc节点执行重处理,特别适用于状态51的应用错误。 标记删除操作:将无用IDoc标记为可清理状态,后续可通过WE11物理删除或归档处理。 常见问题解决方案:包括权限控制、批量处理优化建议以及自动化定位工具的开发

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 456

IMX6:uboot通过bootargs传递内核中的模块传递参数

uboot通过bootargs传递内核中的模块传递参数

3438

银行统一监管报送系统

依据《银行业金融机构数据治理指引》,银行业金融机构应当建立适应监管数据报送工作需要的信息系统,实现流程控制的程序化,提高监管数据加工的自动化程度。银行业金融机构应当将监管数据纳入数据治理,建立工作机制和流程,确保监管数据报送工作有效组织开展,监管数据质量持续提升。银行通常要对接报送EAST5.0、1104、CRSS等近40个监管应用,涉及近1000张报表。表13-01是主要的监管报送应用、报送依据、报送规范、监管机构名称。

银行信息系统应用架构详解 4350

【Rk3506】 U-Boot 通过 bootargs 向Kernel传递参数

摘要:本文介绍了RK3506平台U-Boot通过bootargs向内核传递动态参数的技术方案。该方案通过在U-Boot晚期初始化阶段读取屏幕时序、LOGO及显示通路参数,打包为自定义参数追加至系统bootargs,实现多硬件版本的自适应适配。内核启动时解析这些参数动态覆写设备树显示节点属性,无需修改DTB源码或单独编译不同设备树。文章详细说明了U-Boot端工程实现,包括文件变更清单、核心代码逻辑(参数打包、bootargs动态追加)以及量产固化参数的初始化方法。该方案利用Linux内核cmdline特性(

shouchen1的博客 373

2025华为杯第二十二届中国研究生数学建模竞赛C题:围岩裂隙精准识别与三维模型重构 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1620

通信算法之267 : DJI无人机 云哨 DroneID 640ms

消费级无人机可以用于高级航拍、物流和人道主义救援等等。但是其广泛使用给安全、安保和隐私带来了许多风险。例如,攻击方可能会使用无人机进行监视、运输非法物品,或通过侵入机场上方的封闭空域造成经济损失。为了防止恶意使用,无人机制造商采用多种对策来强制安全可靠地使用无人机,例如对速度和高度施加软件限制,或使用地理围栏实施禁飞区。作为对传统对策的补充,市场领导者大疆(DJI)为无人机实施了一种称为 DroneID 的跟踪协议,该协议旨在将无人机及其操作员的位置传输给授权实体,例如执法部门或关键基础设施的运营商。

leegang12的专栏 3310

U-Boot与kernel之间的参数传递机制完全解析

详细分析u-boot与kernel之间的bootargs传递机制,包括如何传递、解析及应用

多年芯片设计领域从业经验,负责芯片bringup以及kernel驱动开发。 5062

微信小程序——01开发前的准备和开发工具

微信小程序——01开发前的准备和开发工具

总裁余(余登武)博客 1万+

U-boot的环境变量: bootcmd 和bootargs

U-boot的环境变量: bootcmd 和bootargsu-bootcmd<br />    前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。<br />u-bootargs<br />    bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可以看看这篇文章说的很全:ht

JINKAI 3724

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

u-boot如何传递参数给kernel

u-boot环境变量bootargs就是要传递给kernel的参数,如: bootargs=console=ttymxc0 init=/init androidboot.console=ttymxc0 video=mxcdi0fb:RGB24,CPT-WVGA di0_primary video=mxcdi1fb:RGB666,AUO ldb=single,di=1,ch1_map=JEIDA

chenwenxin的专栏 1499

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

从bootargs传参数到kernel,遇到问题

因为项目需要,必须要将启动分区写进kernel里,我复制了uboot下的bootargs到kernel的config文件,同时注释掉setup.c中的一行代码,结果后来出现了两个ko加载失败的问题。     定位花了很久,最后发现,使用bootargs方式,是ok的。     找来主任帮看,他找了一台正常的盒子,打印出来uboot的bootargs参数,然后又让我看下kernel启动后,打印出

fyfyzzk的专栏 828

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

内核配置中Default kernel command string和uboot中bootargs变量的区别

1. 如果uboot的bootargs设置了,kernel的Boot options中的Default kernel command string设置与否,都不启作用,即bootargs覆盖掉设置的Default kernel command string,打印的信息也是bootargs传过来的command string。   2. 如果uboot的bootargs未设置的话,ker

David_xtd的专栏 3766

内核配置的Default kernel command string和uboot的bootargs变量区别

1. 如果uboot的bootargs设置了,kernel的Boot options中的Default kernel command string设置与否,都不启作用,即bootargs覆盖掉设置的Default kernel command string,打印的信息也是bootargs传过来的command string。   2. 如果uboot的bootargs未设置

hanchaoman的专栏 2522
上一篇: u-boot nand flash read/write cmd
下一篇: Linux 2.6下SPI设备模型--------基于AT91RM9200分析
张志龙
博客等级 码龄24年 412粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值