笔记整理—内核!启动!—uboot部分(3)uboot启动内核传参

news2024/11/11 4:47:08

        uboot会以tag的方式给内核传递参数,tag是一个数据结构,在uboot中与linux_kernel中都有相同的结构。

        kernel接收到的传参由若干个tag构成,从tag_start到tag_end之间的数据构成,读到start时开始传参,end结束传参。 

CONFIG_SETUP_MEMORY_TAGS     宏会去找对应的tag_mem,其内容为内存的相关信息
CONFIG_CMDLINE_TAG     对应tag_cmdline,传参内容为启动命令行参数,uboot的bootargs这个宏很重要
CONFIG_INITRD_TAG    与内存磁盘相关的tag
CONFIG_MTD_PARTITIONE    将flash当作一分区进行注册(分区信息)


在setup_start_tag   中发现,其多次调用params是一个tag指针,指向bi_boot_params内核传参起始地址,用这个tag加各种偏移量去实现传参(参数保存)
setup_memory_tags    与内存相关
params通过tag_next(params)方式去实现进入下一个tag,移动当前tag大小,指向下一个tag
setup_commandline_tag     将bootargc传给command_lind的tag命令启动参数


等等的各种tag进行相关记录

        thekernel函数去指向linux内核,三个参数(0,machid,bd->bi_boot_params)是通过寄存器r0到r2分别存放这三个参数的。第一个传参数为0、第二个为机器码、第三个为大片tag空间的首地址。

        所以才说kernel启动不成功应该去考虑传参是否成功这个问题,uboot的宏环境变量是否正确。

        对uboot启动给内核传参做一个总结:

        1.迁移内核到DDR的link地址。

        2.校验内核格式并校验CRC。

        3.准备内核传参tag(0x30000100<-x210而言)。

        4.跳转执行内核(r0、r1、r2传参)。

        do_bootm()        迁移内核与CRC及其类型的检查。

        do_vootm_linux        执行内核传参准备进行内核跳转。

        uboot支持uImage、fdt、zImage类型的启动方式。

        在跳转kernel时,使用了函数指针进行功能的实现。

        

        至今完成了uboot对内核传参过程uboot方面的全部内容,接下来将会在内核启动部分kernel之前插入一个uboot相关的常用指令以及相应宏查找方式的使用与查找功能的讲解,敬请期待。

        ps:为什么要用寄存器对内核进行传参?

        答:寄存器效率高、避免了额外的内存访问、统一的传递机制、符合二进制编码规范性、启动环境限制、内存映射限制、不用维护额外内存、简化启动过程、机器兼容性等。可以从这些方面进行该问题的考虑,其就是为了使得其过程更简单更安全,移植性更好可以匹配不同架构和启动环境的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2094757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法专利复现_基于ngboost和SHAP值可解释预测方法

大家好&#xff0c;我是重庆未来之智的Toby老师&#xff0c;最近看到一篇专利&#xff0c;名称是《基于NGBoost和SHAP值的可解释地震动参数概率密度分布预测方法》。该专利申请工日是2021年3月2日。 专利复现 我看了这专利申请文案后&#xff0c;文章整体布局和文字内容结构不错…

算法基础-区间合并

1、按照区间的左端点排序 2、 左端点小于等于ed&#xff0c;只需要更新ed和右端点的最大值 左端点大于ed&#xff0c;存入res中&#xff0c;并更新st和ed&#xff0c;最后一组数据手动插入res public class Main {public static void main(String[] args) {Scanner in new S…

Pinterest账号被封?试试这几种解封方法

Pinterest作为一个充满创意与灵感的视觉社交平台&#xff0c;吸引着大量用户和企业前来展示、收藏和分享他们的作品。然而&#xff0c;如同其他社交媒体平台一样&#xff0c;Pinterest也设立了一套严格的使用规则和监测机制&#xff0c;以保障平台内容的质量和用户的良好体验。…

景联文科技提供运动数据采集服务

运动数据的重要性 运动数据的收集与分析对于提升个人健康管理和运动表现具有重要意义。 通过收集心率、步态、速度等生理和运动参数&#xff0c;不仅可以为运动员提供个性化的训练方案&#xff0c;帮助其优化表现&#xff0c;还能早期发现并预防伤病。对于普通健身者而言&…

MVC架构模式

MVC(ModelView Controller)是软件工程中的一种软件架构模式 &#xff0c;它把软件系统分为模型、 视图和 控制器 三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码&#xff0c;将业务逻辑聚集到一个部件里面&#xff0c;在改进和个性化定制界面及用户交互的同时…

华为OD机试真题 - 字符成环找偶数O - 滑动窗口(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、…

KTV结算源码--SAAS本地化及未来之窗行业应用跨平台架构

一、代码 function 未来之窗_人工智能_KTV结账(title,桌台id,类型id,类型名称){if(room_status0){alert("空房不可操作");return "空房";}if(room_status1){alert("空房不可操作");}else if(room_status2){//alert("结账");var 未来之…

图像识别智能垃圾桶项目开发

一、项目思维导图 二、语音模块配置信息 三、项目程序 main.c garbage.c garbage.h uartTool.c //串口发送数据 uartTool.h

4款pdf在线编辑工具,带你搞定PDF

作为一个在办公室里日夜奋斗的文案策划人员&#xff0c;我深知在工作中&#xff0c;效率和工具的重要性。PDF文件的编辑是我们工作中不可或缺的一部分&#xff0c;而选择一款合适的PDF编辑器&#xff0c;就像是找到了一把打开效率之门的钥匙。今天&#xff0c;我就来和大家分享…

深度学习-HW3(CNN)卷积神经网络-图像分类-【Datawhale X 李宏毅苹果书 AI夏令营】

分类实际上是一个回归问题。 登录阿里云的账号&#xff0c;才发现有3个账号&#xff0c;要认证学生身份&#xff0c;试遍了3个账号后才试出学生认证号。打开看了一下&#xff0c;居然还有高校教师优惠申请&#xff0c;努力搞一个&#xff08;最近是想薅一把教师资格证的福利&a…

中仕公考怎么样?省考笔试成绩什么时候出?

根据往年的经验&#xff0c;省考笔试的成绩通常在考试后的大约一个月左右公布&#xff0c;但具体日期会根据各省份的公告而有所差异&#xff0c;不同省份具体时间不同&#xff0c;以2024年的为例&#xff1a; 广东省预计于笔试后约30天发布、山东省预计于笔试后约35天发布、浙…

操心没小课堂第一节 协同过滤算法

协同过滤算法 协同过滤算法&#xff08;Collaborative Filtering&#xff09;是推荐系统中一种广泛应用的技术&#xff0c;它主要依赖于用户的行为数据来预测用户可能感兴趣的内容。协同过滤算法可以分为两大类&#xff1a;基于用户的协同过滤&#xff08;User-Based Collabor…

【论文阅读】LJP法律判决预测论文笔记

[大模型 | 类案检索] Precedent-Enhanced Legal Judgment Prediction with LLM and Domain-Model Collaboration key point 会议&#xff1a;EMNLP2023 贡献&#xff1a;提出了一个结合领域模型和大模型的先例增强的LJP框架&#xff0c;其实主要是用到的大模型&#xff0c;比…

Python画笔案例-024 绘制八圆围正方

1、绘制八圆围正方 通过 python 的turtle 库绘制八圆围正方的图案&#xff0c;如下图&#xff1a; 2、实现代码 绘制一个八圆围正方&#xff0c;以下为实现代码&#xff1a; """八圆围正方.py """ from turtle import Turtle # 从海龟模块导入…

阶段二 - 小程序反编译及调试

在打开小程序后&#xff0c;小程序的apkg会放在以下目录中&#xff1a; 使用解包工具对小程序进行解包&#xff1a; 解包工具&#xff1a;链接: https://pan.baidu.com/s/1KLDbivGPCPhqt1nbLVbhXA?pwdkckq 提取码: kckq 解包后会生成一个这样的文件&#xff1a; 在这里输…

【Netty】FastThreadLocal比ThreadLocal快之源码解析

ThreadLocal 【并发设计模式】聊聊线程本地存储模式如何实现的线程安全 【Java并发】从simpleDateFormart聊聊threadlocal原理机制 前两篇中已经从源码角度进行剖析&#xff0c;本篇主要从设计角度剖析。 在并发中为了保证数据安全&#xff0c;可以采用数据隔离的方式 也就是…

微信视频号 点赞+关注+喜欢+发布评论

微信视频号 点赞关注喜欢发布评论 微信视频号 点赞关注喜欢发布评论

3127. 构造相同颜色的正方形(24.8.31)

题目 给你一个二维 3x3 的矩阵 grid&#xff0c;每个格子都是一个字符&#xff0c;要么是 B &#xff0c;要么是 W。字符 W 表示白色&#xff0c;字符 B 表示黑色。 你的任务是改变至多一个格子的颜色&#xff0c;使得矩阵中存在一个 2x2 颜色完全相同的正方形。 如果可以得到…

这位沉默寡言忠厚老实的商人遇到了哪位神奇女子搭救?

这位沉默寡言忠厚老实的商人遇到了哪位神奇女子搭救&#xff1f; 接下来&#xff0c;我将为你讲述一个关于侠女的故事&#xff0c;她救助了一个落难之人&#xff0c;并发表了许多关于剑侠的独特见解&#xff0c;这些都是前所未有的&#xff0c;简直精彩绝伦。有诗为证&#xff…

APP、3D动画效果统计图、WEB页面自定义、电话短信通知、告警等级自动升级、告警短视频、人工巡查等功能介绍的智慧矿山多模态智能分析预警平台

智慧矿山多模态预警平台是一个集成了多种实用功能和先进技术的综合管理系统&#xff0c;目标是提高矿山的安全性和管理效率。下面介绍多模态智能分析预警平台的特色功能&#xff1a; 智慧矿山多模态首页 首先看看智慧矿山多模态首页 智慧矿山多模态首页包含了很多内容&#x…