SSD_Emmc使用参考
1. 概述¶
目前SSD20X在Uboot/Kernel阶段均可支持Emmc,也就是说从Uboot起来后支持将Rootfs/Kernel分区从Emmc启动
常见使用场景:Nor(小容量)+ Emmc启动,其中Uboot之前(包含)的分区放到Nor Flash上,Uboot之后的分区放到Emmc上使用
SSD20X只有一路SDIO,所以使用EMMC需要先关闭SDMMC再打开EMMC
2. Uboot阶段配置¶
关闭SDMMC CONFIG:
#CONFIG_MS_SDMMC is not set
打开EMMC CONFIG:
CONFIG_MS_EMMC=y CONFIG_SUPPORT_EMMC_BOOT=y
如下图,通过make menuconfig先关闭掉 MSTAR SDMMC,然后打开 MSTAR eMMC 跟 Support eMMC BOOT
make menuconfig
#Device Driver
[*]Mstar driver
[*]MSTAR emmc
[*]support eMMC BOOT
[ ]MSTAR sdmmc(不要选中)
3. Kernel阶段配置¶
a. 关闭SDMMC打开EMMC config支持:
CONFIG_MS_EMMC=y CONFIG_MS_EMMC_UNIFY_DRIVER=y # CONFIG_MS_SDMMC is not set
b. 打开文件系统支持EMMC分区:
CONFIG_PARTITION_ADVANCED=y CONFIG_EMMC_PARTITION=y
c. 打开ext4 相关config:
CONFIG_LBDAF=y (支持ext4 大容量的块设备跟文件) CONFIG_EXT4_FS=y (打开支持ext4文件系统,CONFIG_EXT4_FS 子选项config保持默认即可) ext4 config打开后的子选项: CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_JBD2=y CONFIG_FS_MBCACHE=y CONFIG_CRYPTO_CRC32C=y
参照下图,使用make menuconfig去配置:
make menuconfig
#Enable the block layer
[*]Support for large (2TB+) block devices and files(emmc启动时需要)
[*]Partition Types
[*]EMMC PARTITION table support
#Device Drivers
[*]MMC/SD/SDIO card support
[*]HW reset support for eMMC
[*]Simple HW reset support for MMC
[*]MMC block device driver
[*]SStar Soc platform drivers
[*]EMMC driver
[*]UNIFY EMMC DRIVER
[*]MMC block device driver
[ ]SStar SD/MMC Card Interface Suport(不要选中)
#File systems
[*]The Extended 4 (ext4) filesystem(emmc启动时需要,子选项保持默认)
4. 公版已经做好的EMMC分区配置参考¶
因SSD20X不支持空片从EMMC启动,Uboot之前的必须从SPI FLASH启动,所以EMMC分区需要配合Nand/Nor Flash组合使用,常见使用是小容量Nor+EMMC
| Nand + EMMC | Nor + EMMC | |
|---|---|---|
| project | ./setup_config.sh ./configs/nvr/i2m/8.2.1/emmc_spinand.glibc-ext4fs.011a.64 |
./setup_config.sh ./configs/nvr/i2m/8.2.1/emmc_nor.glibc-ext4fs.011a.64 |
| kernel | make infinity2m_emmc_spinand_ssc011a_s01a_defconfig | make infinity2m_emmc_nor_ssc011a_s01a_defconfig |
| uboot | make infinity2m_spinand_emmc_defconfig | make infinity2m_nor_emmc_defconfig |