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 |