碎碎念android eMMC

本文详细探讨了Android系统下eMMC的配置,包括/dev/block、/sys/class/mmc_host/mmc0/mmc0:0001、/sys/block/mmcblk0等目录的内容,以及如何处理不同大小eMMC的兼容方案和存储空间保护策略。同时,分析了eMMC的工作负载、性能,如HS200和HS400模式,以及cmd queue等功能对性能的影响,并提及ext_csd的相关信息。
摘要由CSDN通过智能技术生成

一、/dev/block

root@:/dev/block #ls

bootdevice

mmcblk0

mmcblk0p1

mmcblk0p10

…….

mmcblk0p18

mmcblk0p19

mmcblk0p2

mmcblk0p20

……

mmcblk0p29

mmcblk0p3

mmcblk0p30

……

mmcblk0rpmb

platform


dd命令直接操作


分区的创建过程:

LK获取分区信息 

smem_ptable_init()从SMEM的entry SMEM_AARM_PARTITION_TABLE中读取分区信息,保存在smem_ptable结构中(hard coded)。调用smem_add_modem_partitions()将smem_ptable中的内容解析出来保存在flash_ptable中. 
将分区信息传递给kernel 
Lk将分区信息打包成atag形式传递给kernel,让kernel知道分区信息。 
target_atag_mem()->flash_get_ptable() 
Kernelget the partition info and add partition: 
blkdev_get_by_path()->blkdev_get()->__blkdev_get()-> 
rescan_partitions()->add_partition()

/dev/block/bootdevice/by-name/xxx,目录及后面的链接是在userspace的init进程中创建出来的,init收到增加新分区的uevent事件后,构造出以上by-name下的文件。

Code:system/core/init/devices.c

Function:parse_platform_block_device(structuevent*uevent) 


二、/sys/class/mmc_host/mmc0/mmc0:0001

root@:/sys/class/mmc_host/mmc0/mmc0:0001#ls

block

cid

csd

date

driver

enhanced_area_offset

enhanced_area_size

erase_size

fwrev

hwrev

manfid

name

oemid

power

preferred_erase_size

prv

raw_rpmb_size_mult

rel_sectors

runtime_pm_timeout

serial

subsystem

type

uevent


三、/sys/block/mmcblk0

root

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值