瑞芯微parameter解析

FIRMWARE_VER:7.0.0

#固件版本 固件版本,打包update.img使用,升级工具会根据这个识别固体版本。Boot loader 会读取这个版本传递给kernel使用

MACHINE_MODEL:rk312x #机型,打包update.img使用,不同的项目,可以自己修改,用于升级工具显示

MACHINE_ID:007

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

MANUFACTURER:RK30SDK

#厂商信息,打包update.img使用,可以自己修改,用于升级工具显示

MAGIC: 0x5041524B

#不能修改

ATAG: 0x60000800

#不能修改

MACHINE: 312x

#内核识别用,不能修改

CHECK_MASK: 0x80

#保留,不能修改

KERNEL_IMG: 0x60408000

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

#RECOVER_KEY: 1,1,0,20,0

#按键信息,不过这里没用

#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.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x00006000@0x00010000(kernel),0x00006000@0x00016000(boot),0x00010000@0x0001C000(recovery),0x00020000@0x0002C000(backup),0x00040000@0x0004C000(cache),0x00008000@0x0008C000(metadata),0x00002000@0x00094000(kpanic),0x00400000@0x00096000(system),0x00020000@0x00496000(radical_update),0x00000400@0x004B6000(frp),-@0x004B6400(userdata)

#console=ttyFIQ0 androidboot.console=ttyFIQ0,串口定义。

#initrd=0x62000000,0x00800000,第一个参数是boot.img,加载到sdram的位置,第二个参数为ramdisk的大小,目前ramdisk大小没有限制

#MTD分区:

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

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

#0x00002000@0x00004000(trust) //trust分区

#0x00002000@0x00006000(misc) //misc分区

#0x00008000@0x00008000(resource) //resources分区

#0x00006000@0x00010000(kernel) //内核分区

#0x00006000@0x00016000(boot) //引导分区

#0x00010000@0x0001C000(recovery) //恢复区

#0x00020000@0x0002C000(backup) //备份区

#0x00040000@0x0004C000(cache) //缓存区

#0x00008000@0x0008C000(metadata) //用户数据区

#0x00002000@0x00094000(kpanic) //重要数据保存区

#0x00400000@0x00096000(system) //系统文件区

#0x00020000@0x00496000(radical_update)

#0x00000400@0x004B6000(frp)

#-@0x004B6400(userdata)

/分区定义说明:

//为了兼容性,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解析;


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 分区变大时,就不会有这个问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容