修改高通IPQ4019/4018的flash的分区

article/2025/11/5 13:39:36

修改IPQ4019/4018的MTD分区

简介

高通的IPQ4018的SoC使用了ARM的CPU,并使用了高通的QSDK.

在开发中发现很难在它的架构中去修改MTD分区信息。

今天就提供一种可以修改MTD分区的方式。

MTD分区信息是如何从Uboot传到linux的,有几种方式?

换一种问法 uboot如何把参数传入linux呢?

cmdline和FTD(设备树)

先讲一下简单的cmdline

Uboot以bootarg命令的方式把cmdline传递给linux内核。内核在启动过程中会读取cmdline中的各个参数,并做相关的处理。

其中一个参数是mtdparts.

mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),9600k(uImage),5760k(custom),640k(nvram),64k(art),9600k@0x50000(firmware)

 

mtdparts就是flash的分区信息。Linux按这个信息对flash进行区与区的隔离与读写。

除了uboot以bootarg命令传递cmdline。还有种方式IMAGE_CMDLINE_HACK的特性。这是内核编译选项,打开它后,编译linux系统的.config中配置CONFIG_CMDLINE.这样linux自己带着参数,就可以不麻烦uboot里配置了。

如果用户在uboot里配置了bootarg又在linux里编译了CONFIG_CMDLINE,有两个参数,那系统使用哪一个呢?

这个我没仔细读代码。大家可以自己试一试。

 

再说设备树的方式

有关设备树的知识比较庞大。大家需要有一个背景知识。高通的IPQ4018就是使用设备树的方式向linux里传入各种参数。

IPQ4019的分区信息的传递过程请见下文

http://blog.csdn.net/wbd880419/article/details/70313865

 

uboot把系统分区的信息从相应的区块中读取(如上文的nor-system-partition-ipq40xx.bin)。然后再去把信息加工成设备树(或是of_node信息),挂到设备树的上。然后启动linux.

Linux自然就从设备树上读到了分区的信息,解析分区信息的软件模块叫ofparts。

如下图的打印,在ofpart上发现了分区信息。


 

修改IPQ4019的分区信息的机制

上一节讲到了两种分区信息的传递方式。那么IPQ4019用这种设备树的方式。对我们来说太麻烦了。

但是IPQ4019也是支持IMAGE_CMDLINE_HACK。

我们在内核代码中把ofparts机制关掉,在编译项目中打开IMAGE_CMDLINE_HACK并且配置好CONFIG_CMDLINE就可以了。

具体修改如下:

CONFIG_ATAGS 打开ATAGS功能,linux内核去读取CMDLINE

CONFIG_CMDLINE_FORCE 就是上文的IMAGE_CMDLINE_HACK的替换者。不处理uboot输入的参数。

 

 


http://chatgpt.dhexx.cn/article/vKnCr4Y0.shtml

相关文章

ipq4019 识别板卡型号的过程

openwrt系统启动后,会在/tmp/sysinfo/生成两个文件。其中保存了板卡型号的信息。如下日志。 [rootAbloomy:sysinfo]# pwd /tmp/sysinfo [rootAbloomy:sysinfo]# ls board_name model [rootAbloomy:sysinfo]# # cat board_name ap-dk01.1-c1 [rootAbloomy:sysinfo]# …

IPQ4019 QSDK 下添加RM500Q 5G 驱动 qmi拨号链接网络 配置 IPK包方法

拿到的移远的拨号软件驱动只用qmi方式,GobiNet 似乎没有。 一、运行环境 1.qca-networking-2019-spf-11-0_qca_oem 2.IPQ4019 3.Linux4.4.60 4.USB3.0接口 RM500Q qmi拨号上网 二、移植步骤 1.首先内核Linux4.4.60需要添加的关于RM500Q USB 的PID VID等步骤&a…

高通IPQ4019 IPQ4029 模块+底板双频 AC无线路由模块开发板

1、简介 采用 PH2.0 双排针插拔简易安装方式,可以通过连接不同种类的接口板设计,可以扩展无线路由、网络存储、广告热点、4G、DTU 数据传输、串口转 WIFI、远程监控等多功能产品应用;最大程度简化了无线网络产品开发设计过程。 可以根据客户…

wifi5 router/ wallys/IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G5G/IPQ5018, 802.11ax,wifi 6e,QCN9074

IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G&5G ​​​​​​2x2 2.4Ghz&5G IPQ5018, 802.11ax,wifi 6e,QCN9074, 2X2 2.4G support 2x WiFi 6E Card support BT5.1 MT7915/MT7975/IPQ6000/IPQ6018/IPQ6010/IPQ4019/IPQ4029/ipq4018/IPQ4028/IPQ8072/IPQ8072A/IPQ8074/IPQ…

IPQ4019MTD分区生成的过程

简介 本文介绍一个IPQ4019的MTD分区信息是如何从配置文件一步步传递到linux内核的。这个过程有几个部分组成,分区信息在编译过程中的传递;升级时写入flash区;设备上电时linux如何得到分区信息。 上电后linux打印的MTD分区如下图。 分区信息在…

修改IPQ4019/4018的MTD分区

简介 高通的IPQ4018的SoC使用了ARM的CPU,并使用了高通的QSDK. 在开发中发现很难在它的架构中去修改MTD分区信息。 今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的,有几种方式? 换一种问法 uboot如何把参数传入l…

IPQ4019/QCA9531/MT7628/MT7621系嵌入式无线双频AP核心模块选型探讨

嵌入式双频无线AP核心模块,首先是核心模块,不是成品主板,也可以认为是成品的核心部分,或者理解成只带方便延伸的接口功能,不带外围实际接口的成品,实际使用时,可以根据所需要的接口灵活选择(未必要使用全部接口);功能上…

ARM 汇编语言

1. 什么是汇编语言? 计算机处理器,执行的是 二进制的 10101010001,这些机器码对应的助记符就是汇编指令。 处理器 fetch 到的指令是 1001010101, 可能就是 对应汇编语言中 ADD 的加法指令, 处理器执行 加法操作,并把…

利用keil完成ARM汇编语言编程入门实践

文章目录 一、安装keil软件1.下载安装包2.安装keil3.安装stm32 pack 二、简单的stm汇编语言的编程1.新建工程项目2、新建main.c文件3.编译4.stm32仿真调试5.hex文件分析解读 一、安装keil软件 1.下载安装包 下载安装mdk5软件和stm32包(链接:https://pa…

如何在ARM下进行高效的C编程?

通过一定的风格来编写C程序,可以帮助C编译器生成执行速度更快的ARM代码。下面就是一些与性能相关的关键点: 1.对局部变量、函数参数和返回值要使用signed和unsigned int类型。这样可以避免类型转换,而且可高效地使用ARM的32位数据操作指令。 …

## ARM基础编程实验

ARM基础编程实验 作者: Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav1&wvr6&is_all1 GitHub:github.com/saint-000 CSDN: https://me.csdn.net/qq_4…

ARM汇编编程基础

(一) -- ARM CPU寄存器 本系列文章节选自本人所著《深入浅出嵌入式底层软件开发》。 本系列文章,所需代码请从以下地址下载: http://download.csdn.net/download/scyangzhu/4602585 ARM的汇编编程,本质上就是针对CP&#…

搭建Keil编程环境,ARM汇编语言编程入门实践

多看多学 一、安装及配置环境01 型号分类及缩写02 资料共享03 安装器件支持包04 Keil简单设置 二、简单程序编译01 新建工程02 配置环境03 添加源文件04 设置仿真器模式05 编译调试06 分析Hex文件 三、中值滤波及程序设计01 中值滤波02 流程框图03 程序设计 四、总结参考资料 一…

ARM编程环境搭建教程

随着移动互联网的繁荣发展,物联网人工智能的兴起,嵌入式开发成为了越来越多IT人必须学习的内容,而在嵌入式芯片领域,ARM具有无可撼动的市场占有率,所以说,学习嵌入式不学ARM,不如回家卖红薯。 接…

嵌入式ARM设计编程(四) ARM启动过程控制

文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 (1) 掌握建立基本完整的ARM 工程,包含启动代码,C语言程序等&…

《嵌入式基础》实验三 ARM编程模型和ARM指令

零、前言 本人不擅长写汇编相关的东西,所以以下内容也是不断摸索(百度 ) 整出来的,和linux的实验报告的质量相比较低。 一、 实验目的 掌握ARM微处理器的汇编指令的使用方法。掌握使用 LDM/STM,B,BL 等指…

嵌入式ARM设计编程(一) 简单数据搬移

文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 熟悉实验开发环境,掌握简单ARM汇编指令的使用方法。 二、实验环境 硬件:PC机 软件&am…

ARM汇编语言编程入门实践

文章目录 一、keil的安装二、安装stm32 pack三、keil 的简单设置四、基于STM32汇编程序的编写4.1 新建工程4.2 新建test.s文件4.3 编译程序4.4 分析HEX文件 五、总结六、参考资料 一、keil的安装 双击打开mdk_510.exe应用程序文件,点击Next>>。勾选I agree……

ARM体系结构与编程模型总结

ARM体系结构与编程模型 ARM体系结构 一、ARM处理器简介及RISC特点 ARM处理器简介 ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多…

数学建模-层次分析法(评价模型)

层次分析法概述 层次分析法的步骤和方法 1. 建立层次结构模型 2. 构造判断(成对比较)矩阵 3. 层次单排序及其一致性检验 4. 层次总排序及其一致性检验 总结 应用层次分析法的注意事项 举例 层次分析法代码实现 disp(输入判断矩阵C) Cinput(C); %输入矩阵 [n,n] size(C);%…