4.7 海思SS928开发 - uboot开发 - 自定义分区以及启动方案

4.7 uboot开发 - 自定义分区以及启动方案

  • ss928 出厂默认的启动方式以及 emmc 默认的分区,不符合需求,考虑自己做一个分区方案以及启动方案。

分区方案

  • 分区表如下:

    分区文件系统分区说明
    fastboot-存放 bootloader
    ubootenv-存储 uboot 环境变量
    kernel-存放 kernel 镜像文件
    kernel_recovery-存放 kernel recovery 镜像文件
    kernel_repoext4存放各种各样的 kernel 镜像文件
    rootfs_recoveryext4用于恢复的文件系统
    rootfsext4主文件系统
  • 对应的 xml 分区表文件如下:

    <?xml version="1.0" encoding="GB2312" ?>
    <Partition_Info ProgrammerFile="">
    <Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="512K" SelectFile=""/>
    <Part Sel="1" PartitionName="ubootenv" FlashType="emmc" FileSystem="none" Start="512K" Length="512K" SelectFile=""/>
    <Part Sel="1" PartitionName="kernel" FlashType="emmc" FileSystem="none" Start="1M" Length="32M" SelectFile=""/>
    <Part Sel="1" PartitionName="kernel_recovery" FlashType="emmc" FileSystem="none" Start="33M" Length="32M" SelectFile=""/>
    <Part Sel="1" PartitionName="kernel_repo" FlashType="emmc" FileSystem="ext3/4" Start="65M" Length="256M" SelectFile=""/>
    <Part Sel="1" PartitionName="rootfs_recovery" FlashType="emmc" FileSystem="ext3/4" Start="321M" Length="1536M" SelectFile=""/>
    <Part Sel="1" PartitionName="rootfs" FlashType="emmc" FileSystem="ext3/4" Start="1857M" Length="-" SelectFile=""/>
    </Partition_Info>
    
  • 对应的分区参数如下:

    • blkdevparts=mmcblk0:512K(fastboot),512K(ubootenv),32M(kernel),32M(kernel_recovery),256M(kernel_repo),1536M(rootfs_recovery),-(rootfs)

启动方案

  • 启动流程图如下:

    ss928

修改源码

  • 文件 include/configs/ss928v100.hCONFIG_BOOTCOMMAND 修改为以下内容:

    #define CONFIG_BOOTCOMMAND \"if test ${boot_recovery} = 1; then " \"echo boot from EMMC (recovery);" \"setenv kernel_blk 0x10800;" \"setenv rootfs_part /dev/mmcblk0p6;" \"elif test ${boot_recovery} = 0; then " \"echo boot from EMMC (system);" \"setenv kernel_blk 0x800;" \"setenv rootfs_part /dev/mmcblk0p7;" \"fi;" \"run boot_mmc;"
    
  • 简要说明:启动时通过判断变量 boot_recovery 的值,来决定需要加载的内核镜像以及挂载的文件系统。如果有条件的话,通过硬件来判断更好。

  • CONFIG_EXTRA_ENV_SETTINGS 修改为以下内容:

    #define CONFIG_EXTRA_ENV_SETTINGS \"boot_recovery=0\0" \"boot_quiet=quiet\0" \"bootarg1=mem=3840M console=ttyAMA0,115200 clk_ignore_unused lpj=240000 rw rootwait rootfstype=ext4 " \"blkdevparts=mmcblk0:512K(fastboot),512K(ubootenv),32M(kernel),32M(kernel_recovery)," \"256M(kernel_repo),1536M(rootfs_recovery),-(rootfs)\0" \"boot_mmc=setenv bootargs ${bootarg1} recovery=${boot_recovery} ${boot_quiet} root=${rootfs_part};" \"mmc read 0 0x50000000 ${kernel_blk} 0x10000; bootm 0x50000000;\0"
    
  • 简要说明:bootarg1 变量存放不会被修改的内核启动参数,boot_mmc 为真正执行的启动命令,先完善传递给内核的启动参数,然后从相应的地址读取内核镜像并加载内核。

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

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

相关文章

【预测】小米汽车电子电气架构的猜想

文章目录 前言 整车EEA 硬件平台 软件平台 总结 参考资料 前言 见《【Review】小米汽车发布会》 整车EEA 小米汽车整车电子电气架构方面的信息&#xff0c;小米官方并没有对外介绍&#xff0c;但是从近日流出的整车BOM和供应商列表中看到&#xff0c;车上各种控制器一个都…

Kotlin语法入门-密封类和密封接口(11)

Kotlin语法入门-密封类和密封接口(11) 文章目录 Kotlin语法入门-密封类和密封接口(11)十一、密封类和密封接口1、密封类2、密封接口 十一、密封类和密封接口 1、密封类 在Kotlin中&#xff0c;密封类&#xff08;Sealed Class&#xff09;是一种特殊的类&#xff0c;用于表示受…

蓝牙低能耗安全连接 – 数值比较

除了 LE Legacy 配对之外&#xff0c;LE Secure Connections 是另一种配对选项。 LE 安全连接是蓝牙 v4.2 中引入的增强安全功能。它使用符合联邦信息处理标准 (FIPS) 的算法&#xff08;称为椭圆曲线 Diffie Hellman (ECDH)&#xff09;来生成密钥。对于 LE 安全连接&#xff…

永恒之蓝ms17-010的利用

永恒之蓝ms17-010的利用 实验环境&#xff1a; Kali虚拟机&#xff1a;攻击机 Win7虚拟机&#xff1a;目标机 主要工具&#xff1a;metasploit ##获取meterpreter 使用关键字17-010在metasploit中查找 msf5 > search 17-010Matching Modules # Name …

android Java工程配置kotlin环境

在Android项目中配置Kotlin&#xff0c;你需要执行几个步骤来确保你的Java工程可以混合使用Kotlin代码。以下是一个基本的指南&#xff1a; 添加Kotlin插件 首先&#xff0c;你需要在你的Android项目中添加Kotlin插件。这通常在你的build.gradle&#xff08;项目级别&#xff…

图像处理技术与应用(二)

图像处理技术与应用入门 椒盐噪声 椒盐噪声&#xff0c;也称为脉冲噪声&#xff0c;是一种常见的数字图像噪声。它通常表现为图像中随机出现的白色&#xff08;椒&#xff09;或黑色&#xff08;盐&#xff09;像素点&#xff0c;这些像素点在图像上呈现为黑白杂点。椒盐噪声…

算法项目(9)—— 大模型实现PDF检索加QA

本文包含什么? 使用大语言模型进行多个PDF问答检索加QA.gradio实现的网页界面操作,全套代码以及代码介绍运行有问题? csdn上后台随时售后.项目说明 本项目实现使用大语言模型为核心,gradio框架,调用vicuna实现多个pdf QA 代码运行 python3 main.pyimport gradio as gr fr…

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术&#xff0c;促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势&#xff0c;为高性能计算提…

视频中为什么需要这么多的颜色空间?

在视频处理中&#xff0c;经常会用到不同色彩空间&#xff1a;非线性RGB&#xff0c;线性 RGB&#xff0c;YUV&#xff0c;XYZ……为什么需要这么多的色彩空间呢&#xff1f; 1、视频采集时的线性RGB颜色空间 由数码相机中的 CMOS 传感器产生并写入原始文件&#xff08;Raw Fil…

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输&#xff0c;包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车&#xff0c;其CAN通信的开发可以提高车辆的安全性、可靠性和实…

怎么设置 idea terminal 窗口的编码格式

1 修改Terminal 窗口为 Git bash 窗口 打开 settings 设置界面&#xff0c;选择 Tools 中的 Terminal (File -> settings -> Tools -> Terminal) 修改 Shell path 为你的 Git bash 安装路径&#xff0c;我的在 C:\my_software\java\Git\bin\bash.exe 2 解决中文显示…

uniapp 阿里云点播 视频播放

以下是uniapp 阿里云点播&#xff08;不加密&#xff09; 注意&#xff1a; 对于UNI APP端的开发而言&#xff0c;由于上并没有document 不能进行相关的DOM操作&#xff0c;同时有关DOM渲染的第三方库(echart、openlayer等)也无法有效的使用&#xff0c; 因此官方推出了renderj…

1003 - 编程求1+3+5+...+n

题目描述 编程求 135 \dots n135⋯n 。 输入 输入一行&#xff0c;只有一个整数 n (1 \le n \lt 10000)n(1≤n<10000) 这里 nn 为奇数。 输出 输出只有一行。 样例 输入 99 输出 2500 #include<bits/stdc.h> using namespace std; int main(){int m,s0;cin…

抢单业务介绍

存在的问题 会出现多个人同时访问的问题 解决办法&#xff1a;在判断前加锁&#xff0c;使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper

windows 本地部署 ChatGLM2-6b 教程

介绍 ChatGLM2-6B是智谱AI及清华KEG实验室发布的中英双语对话模型&#xff0c;它是 ChatGLM-6B 的第二代版本。 主要特点&#xff1a; 性能提升&#xff1a;ChatGLM2-6B 在初代模型的基础上进行了全面升级&#xff0c;使用了 GLM 的混合目标函数&#xff0c;并经过了 1.4T 中…

Opencv | 直方图

这里写目录标题 一. 直方图方法1方法2方法3 二. 掩码区域的直方图绘制 一. 直方图 方法1 cv.calcHist(images, channels, mask, histSize, rangesNone, accumulateFalse)参数:images: 输入图像&#xff0c;可以是单个图像或图像的列表channels: 计算直方图的通道对于灰度图像&…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目&#xff0c;eureka是其中的一个模块&#xff0c;依赖主要继承父依赖 学习视频&#xff1a;b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

API提取IP

API代理作为IP代理的一项重要业务&#xff0c;在绕开地域网络限制&#xff0c;提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流&#xff0c;无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛&#xff0c;如使用API提取代理IP、…

Linux:web服务基于IP和域名部署

Linux&#xff1a;web服务基于IP和域名部署 配置基于IP的虚拟主机 # 添加两个IP [rootserver100 ~]# ip addr add 172.25.254.10/24 dev eth0 [rootserver100 ~]# ip addr add 172.25.254.20/24 dev eth0# 这个命令是专门用来查看IP信息的 [rootserver100 ~]# ip addr 1: lo:…

02-JVM学习记录-运行时数据区

二、运行时数据区 每个JVM只有一个Runtime实例&#xff0c;只有一个运行时数据区。 虚拟机栈、堆、方法区最重要 方法区和堆与虚拟机的生命周期相同&#xff08;随虚拟机启动而创建&#xff0c;虚拟机退出而销毁&#xff09;&#xff0c;程序计数器、虚拟机栈、本地方法栈生命…