瑞芯微Parameter File Format解析

2024-09-08 06:58

本文主要是介绍瑞芯微Parameter File Format解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Rockchip android系统平台使用parameter文件来配置一些系统参数

主要包含:串口号:nandflash分区 固件版本,按键信息等;

如下是台电P98HD的parameter参数:

FIRMWARE_VER:4.1.1        // 固件版本

//固件版本,打包 updata.img 时会使用到,升级工具会根据这个识别固件版本。

//Boot loader 会读取这个版本传递给 kernel 使用。
MACHINE_MODEL:rk30sdk   

//机型,打包 updata.img 使用,不同的项目,可以自己修改,用于升级工具显示。
MACHINE_ID:007

//产品开发 ID,可以为字符和数字组合,打包 updata.img 使用,不同的项目使用不同的 ID,
//可以用于识别机器机型。

MANUFACTURER:RK30SDK

//厂商信息,打包 updata.img 使用,可以自己修改,用于升级工具显示。
MAGIC: 0x5041524B

//MAGIC,不能修改
ATAG: 0x60000800

//ATAG,不能修改
MACHINE: 3066

//内核识别用,不能修改。
//RK29xx 识别码:MACHINE: 2929
//RK292x 识别码:MACHINE: 2928

//Rk3188 识别码:MACHINE:3066(不知道为什么不是3188)
CHECK_MASK: 0x80

//保留,不能修改。
KERNEL_IMG: 0x60408000

//内核地址,boot loader 会将内核加载到这个地址,kernel 编译地址改变时,这个值需要相应
修改。

#RECOVER_KEY: 1,1,0,20,0
 //按键信息不过这里没有用

//按键类型为:0 = 普通按键 , 1 = AD 按键
//GPIO 定义:上例中定义的是 GPIO 4 C5
//判断电平:0 = 低电平 ,1=高电平
//AD 定义(通道,下限值,上限值)
//:上例中,1 表示 ADC 通道 1,8 表示下限值为 80,20 表
//示上限值为 200,也就是 AD 值在 80~200 内的按键都认为是 COMBINATION_KEY。
//Combination 按键定义,可以定义多个,用户可以根据实际机型定义按键。
//功能说明:
//1、按住 recovery 按键并接 USB 开机,进 loader rockusb 升级模式。
//2、按住 recovery 按键不接 USB 开机,3S 左右会引导 recovery.img。
//3、按住 combination 按键开机,会引导 recovery.img,进 android 的 recovery 模式,用户
//可以根据菜单选择操作。
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0

init=/init

initrd=0x62000000,0x00800000

//console=ttyFIQ0 androidboot.console=ttyFIQ0,串口定义。
//initrd=0x62000000,0x00800000,第一个参数是 boot.img 加载到 sdram 的位置,第二个参数为
//ramdisk 的大小,目前 ramdisk 大小没有限制。
MTD分区:

mtdparts=rk29xxnand:         //nand flash 分区,因为系统是安装在nandflash里面的

0x00002000@0x00002000(misc),   //misc分区 前面表示大小,后面表示起始地址

0x00008000@0x00004000(kernel), //内核分区

0x00008000@0x0000C000(boot),   //引导区大小

0x00010000@0x00014000(recovery),//恢复区

0x00020000@0x00024000(backup), //备份区

0x00100000@0x00044000(cache),  //缓存区

0x00400000@0x00144000(userdata),//用户数据区

0x00002000@0x00544000(kpanic),  //重要数据保存去(学名叫啥 过后再找找)

0x00100000@0x00546000(system),  //系统文件区

-@0x00646000(user)

//分区定义说明:
//为了兼容性,RK30xx、RK29xx 和 RK292x 都是用 rk29xxnand 做标识。
//单个分区说明:
//例如:0x00002000@0x00008000(boot),@符号之前的数值是分区大小,@符号之后的数
//值是分区的起始位置,括号里面的字符是分区的名字。所有数值的单位是 sector,1 个 sector
//为 512Bytes.

//上例中,boot 分区起始位置为 0x8000 sectors 位置,大小为 0x2000 sectors(4MB).
//目前 flash 最大的 block 是 4MB(0x2000 sectors),所以每个分区需要 4MB 对齐,也就是每个分区都必须为 4MB 的整数倍大小。
//Backup 及之前的分区为固件区,在 linux 系统里是只读的,在确定大小后,后续升级时不能修改分区大小。
//Backup 之后的分区在 linux 系统里是可读写的。在后续升级时可以调整分区大小,调整分区大小后需要进 android 的 recovery 系统格式化 cache 等分区。
//-----------------------------------------------------------------------------------------------

parameter文件最大不超过64Kb 以上参数由bootloader解析;

当前台电用的是RK3188Loader(L)_V1.20.bin;

 

GPIO 控制信息
例如:
PWR_HLD:0,0,C,7,1 //控制 GPIO0C7 输出高电平
PWR_HLD:0,0,C,7,2 //控制 GPIO0C7 输出低电平
PWR_HLD:0,0,A,0,3 //配置 PWR_HLD 为 GPIO0A0,在 Loader 需要锁定电源时,输出高电平锁定电源
GPIO 控制信息和 PWR_HLD 管脚定义信息复用,因此定义 GPIO 控制信息后,最后一条需要配置真正的 PWR_HLD 引脚,不然 loader 不会锁定电源。代码不会配置 IOMUX,被配置为特殊功能的 IO 是不可以控制的,
这些 IO 有:SD0,SD1,NANDFLASH(不包含 D8~D15),SPI0,UART2 等使用到的 IO。
定义格式和 COMBINATION_KEY 的 GPIO 定义类似,只有最后一个字节(电平判断)不同。
电平判断解释:
1:= 解析 parameter 时,输出高电平
2:= 解析 parameter 时,输出低电平
3:= 在 Loader 需要控制电源时,输出高电平
0:= 在 Loader 需要控制电源时,输出低电平

常见问题:

1、 system 分区修改为 ext3 格式时,parameter 的 mtd 分区怎么定义?
Ext3 为可写文件系统,那么 system 分区需要定义在 backup 分区之后。
2、怎么增加一个 mtd 分区?
在 parameter MTD 分区中按照分区定义格式增加分区,如果在系统中需要可写的,那么要把分区定义在 backup分区之后,只读的,那么分区定义在backup 分区之前。
3、由于系统固件变大,backup 分区起始位置和大小变大后整个系统不正常怎么处理?
Backup 分区之前的区域为只读区域,为保证系统固件可靠性和稳定性,这个区域有做特殊处理,在第一次升级固件后就不可以把分区改大(改小不会有问题),所以在开发阶段定义分区大小时尽量预留足够空间。
出现问题的机器,需要按住 recovery 按键进 loader rockusb 升级模式,等待 10 秒后,用量产工具或者用户工具的修复模式升级固件,也可以用开发工具的擦除 idb 功能低格 flash 后再升级固件。
针对这个问题,目前新发布的 SDK 使用新的解决方案,buckup 分区不再备份 system.img,当system.img 分区变大时,就不会有这个问题。

下例是 2928 的定义:
Recovery 是 32MB,backup 分区是 64MB,data 分区是 2GB(原文是1G,此处应该是2G),system 分区是 512MB。

瑞芯微Parameter <wbr>File <wbr>Format解析
标题

这篇关于瑞芯微Parameter File Format解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

Java JSQLParser解析SQL的使用指南

《JavaJSQLParser解析SQL的使用指南》JSQLParser是一个Java语言的SQL语句解析工具,可以将SQL语句解析成为Java类的层次结构,还支持改写SQL,下面我们就来看看它的具... 目录一、引言二、jsQLParser常见类2.1 Class Diagram2.2 Statement

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.