简介

高通的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输入的参数。

转载于:https://www.cnblogs.com/yaxinsn/p/8376836.html

修改IPQ4019/4018的MTD分区相关推荐

  1. Linux内核移植笔记 | 02 - 移植Linux 3.4.2 内核到JZ2440(修改内核中的mtd分区)

    1. 问题 在上一节Linux系统启动之后,打印出的分区表如图: 和实际对nand flash的分区表不一致,实际上在uboot移植教程(08 - 移植uboot 2012.04到JZ2440(设置m ...

  2. uboot 与系统内核中 MTD分区的关系

    分类: Nand 驱动 2011-11-06 23:48 705人阅读 评论(2) 收藏 举报 uboot 与系统内核中 MTD分区的关系: 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文 ...

  3. uboot环境变量与内核MTD分区关系

    uboot 与系统内核中MTD分区的关系: 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 1:在内核MTD中可以定义分区A~B, ...

  4. linux内核mtd分区,嵌入式Linux MTD分区调整(MX28)

    关于MTD分区这个概念,我以前一直理解错,就是因为外面都叫他MTD分区,其实还不如说是MTD分割符,因为他只是在内核的一个定义.他并不是严格的分区.目前针对MX28这个平台,来说说怎么调整. 目前来说 ...

  5. MTD 分区与文件系统联系

    MTD(memory technologe devicec 内存技术设备) 引入 MTD是为了? MTD是 memory technology device的简称 (奇怪的中文译名内存技术设备) 个人 ...

  6. 嵌入式linux分区,嵌入式Linux MTD分区调整

    关于MTD分区这个概念,我以前一直理解错,就是因为外面都叫他MTD分区,其实还不如说是MTD分割符,因为他只是在内核的一个定义.他并不是严格的分区.目前针对MX28这个平台,来说说怎么调整. 目前来说 ...

  7. linux分区写保护,mtd分区写保护关闭

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 openwrt源码版本:barrier_breaker svn信息: Working Copy Root Path: /home/openwrt URL: ...

  8. omapl138移植uboot系列之添加MTD分区(第七篇)

    如果你刚刚使用仿真器的方式烧录了uboot镜像,你肯定会感叹实在是太慢了,先别叹气,看完本节你将爱上烧录程序. 2.6.1 添加MTD分区 MTD(memory Teachno Device)中文翻译 ...

  9. 紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 uboot的mtd分区总结(rootfs为ubi文件系统)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29729577/article/details/51130209 此文章基于U-Boot 20 ...

最新文章

  1. 不投降就是成功 --- 我看《新喜剧之王》
  2. python编程课-python编程课---turtle
  3. c#读取xml文件配置文件Winform及WebForm-Demo具体解释
  4. 安装phproject之一
  5. 自定义队列(优化了数组固定长度的弊端)以及集合中的一些重点内容
  6. 世界杯,世界共同的游戏!
  7. 算法二之树形选择排序
  8. 现代软件工程 作业 团队第一个作业
  9. 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS
  10. CRC校验码计算:多项式除法-模2除法
  11. java画图板_java画图板工具下载
  12. 交警罚没系统数据一致性问题
  13. 更换python的pip下载国内源
  14. HTML+CSS小白入门与进阶教程
  15. 一封高三班主任写给大学生的信
  16. 服务号和订阅号之间的区别,企业适合选择哪一个?
  17. 干货!让人一见钟情的网站header设计攻略
  18. 【大话云原生】煮饺子与docker、kubernetes之间的关系
  19. 异步爬虫(高效爬虫)
  20. vue按照字母表排序

热门文章

  1. 智能家居水传感器行业调研报告 - 市场现状分析与发展前景预测
  2. Python之tkinter 组合框 Combobox
  3. 《动手学深度学习Pytorch版》中‘d2lzh_pytorch‘模块问题
  4. 云服务器线上MySQL的安全保护措施
  5. 锐龙R7 PRO 5875U性能怎么样?相当于什么水平级别
  6. Emlog最新付费模板带会员
  7. Matlab 数组定义
  8. 罗技CSGO压枪宏文件
  9. 《Metasploit渗透测试魔鬼训练营》学习笔记
  10. pip如何适应多版本的python