u-boot对设备树的支持__传递dtb给内核

news2024/7/30 19:00:49

a. u-boot中内核启动命令:
   bootm <uImage_addr>                            // 无设备树,bootm 0x30007FC0
   bootm <uImage_addr> <initrd_addr> <dtb_addr>   // 有设备树
   
   比如 :
   nand read.jffs2 0x30007FC0 kernel;     // 读内核uImage到内存0x30007FC0
   nand read.jffs2 32000000 device_tree;  // 读dtb到内存32000000
   bootm 0x30007FC0 - 0x32000000          // 启动, 没有initrd时对应参数写为"-"

b. bootm命令怎么把dtb_addr写入r2寄存器传给内核?
   百度搜索:ARM程序调用规则(ATPCS)
   
      c_function(p0, p1, p2) // p0 => r0, p1 => r1, p2 => r2
      
      所以我们只需要定义一个函数指针 the_kernel, 指向内核的启动地址,
      然后执行: the_kernel(0, machine_id, 0x32000000);


      

c. dtb_addr 可以随便选吗?
   c.1 不要破坏u-boot本身
   c.2 不要挡内核的路: 内核本身的空间不能占用, 内核要用到的内存区域也不能占用
                       内核启动时一般会在它所处位置的下边放置页表, 这块空间(一般是0x4000即16K字节)不能被占用
   
  JZ2440内存使用情况:
                     ------------------------------
  0x33f80000       ->|    u-boot                  |
                     ------------------------------
                     |    u-boot所使用的内存(栈等)|
                     ------------------------------
                     |                            |
                     |                            |
                     |        空闲区域            |
                     |                            |
                     |                            |
                     |                            |
                     |                            |
                     ------------------------------
  0x30008000       ->|      zImage                |
                     ------------------------------  uImage = 64字节的头部+zImage
  0x30007FC0       ->|      uImage头部            |
                     ------------------------------
  0x30004000       ->|      内核创建的页表        |  head.S
                     ------------------------------
                     |                            |
                     |                            |
              -----> ------------------------------
              |
              |
              --- (内存基址 0x30000000)

怎么看内核的地址是在0x30008000 ,用下面的命令

命令示例:
a. 可以启动:
nand read.jffs2 30000000 device_tree
nand read.jffs2 0x30007FC0 kernel
bootm 0x30007FC0 - 30000000

b. 不可以启动: 内核启动时会使用0x30004000的内存来存放页表,dtb会被破坏
nand read.jffs2 30004000 device_tree
nand read.jffs2 0x30007FC0 kernel
bootm 0x30007FC0 - 30004000

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

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

相关文章

两客一危解决方案-最新全套文件

两客一危解决方案-最新全套文件一、建设背景二、思路架构三、建设方案1、多维数据融合2、车辆轨迹分析3、AI 视频分析4、评价体系四、获取 - 两客一危全套最新解决方案合集一、建设背景 “两客一危一货”车辆是指公路客运、旅游客运、危化品运输车及货运车辆。“两客一危”车辆…

【freeRTOS】操作系统之三-信号量

1 二值信号量 1.1 二值信号量简介 ​ 二值信号量通常用于互斥访问或同步&#xff0c;二值信号量和互斥信号量非常类似&#xff0c;但是还是有一 些细微的差别&#xff0c;互斥信号量拥有优先级继承机制&#xff0c;二值信号量没有优先级继承。因此二值信号量更适合用于同步(任…

计算机毕业设计springboot+vue+elementUI 广场舞团高校舞蹈社团管理系统

项目介绍 随着时代的发展&#xff0c;高校的社团发展完善&#xff0c;同时越来越多的年轻人喜欢广场舞以及各类舞蹈。为了让更多的年轻人能够有一个自己喜欢的爱好&#xff0c;并且有一个共同交流的平台。我们开发了本质的广场舞团&#xff0c;高校社团管理系统。通过本系统可…

代码随想录day59|503. 下一个更大元素 II|42. 接雨水|Golang

代码随想录day59 还剩下一天 目录 代码随想录day59 503. 下一个更大元素 II 42. 接雨水 双指针解法 动态规划解法 单调栈解法 503. 下一个更大元素 II func nextGreaterElements(nums []int) []int {n : len(nums)ans : make([]int,n,n)for i:0;i<len(ans);i{ans[i]…

ECCV2022 商汤 发布最大的表征学习预训练数据集OmniBenchmark解读

近些年&#xff0c;基于深度模型的表征学习算法在某些知识域上&#xff08;例如人脸、动物等&#xff09;取得了非常优异的成绩&#xff0c;然而由于现有数据集覆盖的视觉类别仍然比较有限&#xff0c;一个覆盖视觉类别足够广&#xff0c;且能够支持学习到适用于许多视觉类别的…

CRM的定义是什么?这么多CRM产品,CRM客户管理系统该如何选择?

在禽流感的助涨下&#xff0c;CRM被拉到了众矢之的。 为甚么这样说呢&#xff1f;绝大多数民营企业遭遇着巨大的存活压力&#xff0c;导致民营企业不得已展开结构调整和网络化。CRM作为一种专精的客人关系管理工作工具&#xff0c;再次受到追捧。 CRM具有客人管理工作、网络营…

JavaScript的DOM技术

JavaScript的DOM技术 文章目录JavaScript的DOM技术1.DOM简介1.1 DOM概念2.获取元素2.1 如何获取页面元素2.2 根据ID获取2.3 根据标签名获取2.4 根据标签名获取2.5 通过H5新增方法获取2.6 获取特殊元素3.事件基础3.1 事件概述3.2 事件三要素3.3 执行事件的步骤3.4 鼠标事件4.操作…

工程施工监理平台app开发 开创工程监理服务新理念

工程项目最容易让人焦头烂额&#xff0c;很难统揽全局&#xff0c;更无法将施工中的每一个问题都处理得当&#xff0c;工程施工监理平台app开发&#xff0c;从根本上解决了工程监管问题&#xff0c;成为工程施工监管方面的福音和好帮手。工程施工监理平台app开发是专注工程现场…

【单目3D目标检测】FCOS3D + PGD论文解析与代码复现

文章目录前言FCOS3D概述主要创新点主要框架结构回归目标损失函数推理过程2D引导的多层3D预测2D高斯分布的3D中心度实验设置源码复现PGD概述主要创新点深度估计主要框架结构创新点一&#xff1a;概率表示的不确定性建模DPD_PDP​创新点二&#xff1a;透视几何体的深度传播DGD_GD…

删除或者移动文件/文件夹时,提示:文件/文件夹正在使用

问题 有时候我们在移动或者删除文件/文件夹时&#xff0c;系统会提示“文件正在使用”。 操作无法完成&#xff0c;因为其中的文件夹或者文件已经在另一程序中打开 请关闭该文件夹或文件&#xff0c;然后重试。 这是因为文件夹中的某个文件被打开了&#xff0c;或者该文件或文件…

VR云游带你玩转智慧文旅,解决景区营销痛点

有人说防控措施正在逐步放开&#xff0c;大家那颗热爱旅游的心是不是正在蠢蠢欲动了呢&#xff1f;不要急&#xff0c;先来一波VR云游助助兴吧&#xff01; 朝游青山暮游雪&#xff0c; 上午还在十里长湖、八里磨山&#xff0c; 下午便在毓秀金陵、钟山龙蟠&#xff0c; 看大…

[附源码]SSM计算机毕业设计超市订单管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

前端使用nginx部署项目到服务器

目录 一、下载nginx 二、启动 三、验证 四、windows的操作指南 五、目录介绍 六、部署 一、下载nginx 下载地址&#xff1a;https://nginx.org/en/download.html 二、启动 两种方法&#xff1a; 1&#xff09; 直接双击该目录下的"nginx.exe"&#xff0c;即…

设置代理服务器

挂载代理 前提&#xff1a; 同一个局域网&#xff0c;有一个IP白名单可以访问网络&#xff08;win10&#xff09;。想实现其他机器&#xff08;linux&#xff09;共同访问。 先将机器(linux)设置固定IP&#xff0c;同一网关下。静态IP设置&#xff0c;保证能PING通。将win机器…

雪佛兰畅巡新能源电动汽车CANBUS总线适配及汽车远程控制车联网系统

随着智能交通的发展&#xff0c;中国作为全球最大的汽车市场&#xff0c;车联网的市场容量巨大&#xff0c;国内车联网摸索了很多年&#xff0c;前装也还是属于霸屏&#xff0c;提供信息娱乐等初期阶段。互联网对汽车行业确实推动了不少&#xff0c;汽车公司也与互联网融合做过…

淘宝天猫CTO若海:沉浸式的消费体验是下一步发力方向

​每年双 11 开卖的那一刻&#xff0c;千万用户同时在线下单&#xff0c;那个瞬间服务器的压力是平时流量的数百倍&#xff0c;淘宝系统是否能够稳定支撑&#xff0c;是每年所有人关注的热点话题。 时至今日&#xff0c;丝般顺滑已经逐渐成为稳态。从今年开始&#xff0c;双 11…

使用minio进行文件存储

title: 使用Minio存储文件对象 一. Docker拉取镜像&#xff08;确保自己的服务器已经安装Docker&#xff09; docker pull minio/minio二. 启动一个miniio容器 docker run --name minio -p 9090:9000 -p 9999:9999 -d \ --restartalways -e \ "MINIO_ROOT_USERminio&qu…

“码二代”从喜欢益智游戏到找最短路线,编程思维是如何培养的?

前言 1842年&#xff0c;“数字女王”的阿达洛芙莱斯&#xff08;Ada Lovelace&#xff09;编写了历史上首款电脑程序&#xff0c;至今已有200多年的历史。 &#xff08;文末送读者福利&#xff09; 在这个特别的日子里&#xff0c;我们要为大家介绍的是一个来自小小“码二代…

线性表详细讲述(带图)

文章目录线性表---顺序表和链表1.线性表2.顺序表2.1概念2.2 静态顺序表与动态顺序表2.3接口的实现2.3.1顺表的初始化2.3.2扩容2.3.3顺序表尾插2.3.4顺序表的尾删2.3.5顺序表的头插2.3.6顺序表的头删2.3.7顺序表的查找2.3.8顺序表的任意位置插入2.3.9顺序表的任意位置删除2.3.10…

[附源码]java毕业设计民宿网站管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…