欢迎使用CSDN-markdown编辑器

来源:互联网 发布:家庭矛盾 知乎 编辑:程序博客网 时间:2024/05/22 09:00

MTK 6577+Android EMMC分区布局

这里写图片描述

先来看MT6575_Android_scatter_emmc.txt的内容:

PRELOADER 0x0

{

}

DSP_BL 0x40000

{

}

MBR 0x600000

{

}

EBR1 0x604000

{

}

__NODL_PMT0x608000

{

}

__NODL_NVRAM0xa08000

{

}

__NODL_SECCFG0xf08000

{

}

UBOOT 0xf28000

{

}

BOOTIMG0xf88000

{

}

RECOVERY0x1588000

{

}

SEC_RO0x1b88000

{

}

__NODL_MISC0x2188000

{

}

LOGO 0x21e8000

{

}

__NODL_EXPDB0x24e8000

{

}

ANDROID0x26e8000

{

}

CACHE0x227e8000

{

}

USRDATA0x428e8000

{

}

__NODL_FAT0x629e8000

{

}

__NODL_BMTPOOL0xFFFF00a8

{

}

此文件在mediatek\source\misc下可以找到,这里的地址指导对应的image烧录到EMMC具体的地方,比如PRELOADER烧录到起始地址为0x0的地方,

__NODL_*,NODL是什么意思呢?NODOWNLOAD,就是说,这些分区不下载,或者说,不更新。其中就有NVRAM分区,对这个就好理解了,这个分区保存了手机的SN,IMEI及网卡的MAC地址,手机出厂后,这些硬件参数是不变的,所以刷机不会更新它们。除了NVRAM外,还有几个也是NODL,这些分区尚不清楚其作用,但有一点是肯定没错的,那就是将NODL的分区备份出来,以防万一。

可见是需要把这些镜像文件烧录到EMMC中的,这些镜像的功能主要是什么呢?下面先借用MTK给出的一张分区布局:

图1

再来看MTK给出的系统启动流程图:

图2

ISRAM是指内部RAM(MTK6577有64KB),DRAM是外部RAM。

由于不同处理器芯片厂商对arm core的封装差异比较大,所以不同的arm处理器,对于上电引导都是由特定处理器芯片厂商自己开发的程序,这个上电引导程序通常比较简单,会初始化硬件,提供下载模式等,然后才会加载通常的bootloader。

   下面是几个arm平台的bootloader方案:    marvell(pxa935) :                bootROM + OBM [l4] + BLOB    informax(im9815) :             bootROM + barbox + U-boot    mediatek(mt6516/6517) :     bootROM + pre-loader[l5]  + U-boot    broadcom(bcm2157) :          bootROM + boot1/boot2 + U-boot

下面安装保存在EMMC中地址递增的顺序来学习这些分区:

(1) Pre-loader

处理所有的下载和安全启动,第1个引导镜像,初始化EMMI、PLL和外部RAM等。

(2) DSP-BL

DSP引导程序(boot loader),modem+DSP。

(3) MBR

Master Boot Record主引导记录,定义在mediatek\source\misc下面。

(4) EBR1

Extend BootRecord扩展分区记录,记录了扩展分区包含了哪些分区,比如可能是USRDATA和FAT。

(5) PMT

这里还不知道PMT是指什么,知道的朋友麻烦分享下,后面在学习中搞懂了再不上来。

(6) NVRAM

保存硬件相关相关信息,比如校准数据(calibration data)、MAC地址、IMEI等等。

(7) SECCFG

SEC是security的简称,CFG是指configuration的简称,预留给安全平台。

(8) UBOOT

第2个引导镜像,处理大多数硬件初始化和启动整个内核(bring-upentire Linux kernel)。

(9) BOOTIMG

Linux内核镜像和它的根(root)文件系统,内核和ramdisk的根文件系统打包在一起,对应于boot.imag。

(10) RECOVERY

恢复模式下回复内核镜像和它的根文件系统,处理所有的系统恢复和固件(firmware)更新功能。

(11) SEC_RO

RO是region的简称,区域的意思,这里是为安全平台预留的安全区域。

(12) MISC

用于恢复处理(power loss)。

(13) LOGO

开机logo区域。

(14) EXPDB

用于保存内核panic调试信息。

(15) ANDROID

是一个YAFFS2文件系统,android系统镜像,对应system.img。

(16) CACHE

是一个YAFFS2文件系统,它将挂载到/cache目录下,Android系统内部系统,这里主要用于升级的缓存,比如保存android内部缓存数据(cache data)或是web缓存数据,内容由运行时来定。

(17) USRDATA

是一个YAFFS2文件系统,它将挂载到/data目录下,编译生成userdata.img,包含了所有应用相关的配置文件,以及用户相关数据NVRAM等参数。

(18) FAT

应该是指FAT文件系统,用户的数据就保存在这个区域,也是最大的分区。

(19) BMTPOOL

BM表示坏块管理(Bad block Manage)

参考链接

android
分区layout以及虚拟内存布局-小结

http://blog.csdn.net/honour2sword/article/details/8676230

0 0
原创粉丝点击