on property:ro.boot.charger.emmc=0
insmod /rk30xxnand_ko.ko
mount ext4 mtd@system /system wait ro noatime nodiratime noauto_da_alloc
start console
mount ext4 mtd@metadata /metadata wait noatime nodiratime nosuid nodev noauto_da_alloc
start charger
MTD (Memory Technology Devices)架构
cat /proc/partitions
u-boot/board/rockchip/common/rkloader/parameter.c
u-boot/board/rockchip/common/rkloader/parameter.h
u-boot/include/part.h
rockdev/Image-rk3399_firefly_mid/parameter.txt
mtdparts=
rk29xxnand: -> mtd_id
0x00002000@0x00002000(uboot),
0x00002000@0x00004000(trust),
0x00002000@0x00006000(misc),
0x00008000@0x00008000(resource),
0x00010000@0x00010000(kernel),
0x00010000@0x00020000(boot),
0x00020000@0x00030000(recovery),
0x00038000@0x00050000(backup),
0x00002000@0x00088000(security),
0x00100000@0x0008a000(cache),
0x00500000@0x0018a000(system),
0x00008000@0x0068a000(metadata),
0x00100000@0x00692000(vendor),
0x00100000@0x00794000(oem),
0x00000400@0x00894000(frp),-@0x00894400(userdata)
load_disk_partitions
-> ParseParam
-> ParseLine
-> parse_cmdline
-> mtdpart_parse
kernel/init/main.c
setup_arch
kernel/arch/arm64/kernel/setup.c
kernel/drivers/mtd/mtdpart.c
mtd_add_partition
/dev/mtdblockN,是Nand Flash驱动中,驱动在用add_mtd_partitions()添加MTD设备分区,而生成的对应的块设备
kernel/drivers/mtd/cmdlinepart.c
EMMC驱动
kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
rk3399-firefly-port.dtsi
dt-bindings/input/input.h
rk3399-firefly-core.dtsi
dt-bindings/pwm/pwm.h
rk3399.dtsi
rk3399-opp.dtsi
rk3399-android.dtsi
rk3399-firefly-demo.dtsi
kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi [rk3399-emmc-phy]
kernel/drivers/phy/rockchip/phy-rockchip-emmc.c
kernel/arch/arm64/boot/dts/rockchip
drivers/mtd/maps/pismo.c