Flash闪存技术
1 Mask ROMCartridges: ROM卡带, Character ROM (CHR ROM) and the Program ROM (PRG ROM). Both of them are Mask ROM.SRAM or EEPROM: game status saving.Moto 6502: 6502 - ST7 - STM82 HDD Low-level formatting低级格式化历史HDD一个完整扇区包括头部总计15字节的间隙Gap部分、同步Sync部分和地址标记Address Mark部分总计512字节的数据Data部分以及最后50字节的ECC部分这些都是在低级格式化时所确定的。SCSI指令Format Unit和Mode Select可以一定程度改变HDD的工作模式其中包括扇区尺寸。由于能够改变扇区的定义所以这2个指令可以看着是对HDD的低级格式化操作。3 NOR Flash3.1 eFlashembedded Flash集成在MCU里的嵌入式NOR闪存绝大部分MCU内部使用的是QSPI接口的NOR FlashWinbond和GDST使用的是并行接口的NOR Flash。3.2 QSPI NOR Flash之Top-Boot和Bottom-Boot每个块的大小64 KB每个扇区的大小4 KB每个页的大小256 B顶部或者底部启动设备的启动代码和定制数据的大小一般比标准块小很多为了避免浪费宝贵的空间很多NOR Flash把第一块或最后一块分割为更小的子块例如8KB。这使你更好的控制这些块的内容。依赖于启动代码在NOR Flash中的所在位置这些设备有两种风格顶部启动和底部启动设备。这取决于CPU在重启动或者加电后从哪里获取指令存储空间顶部例如Intel或者存储空间底部例如Motorola。一些NOR Flash可通过外部PIN脚来配置顶部或者底部启动。总之Top boot类型的Flash的小块block放在高地址位上,而Bottom boot类型的flash的小块block起始位置为0x000000。4 NAND Flash4.1 NAND Flash三种接口1Legacy2ONFI3Toggle DDR4.2 NAND命令read1命令代码是00h/01h分别读取上半页A区和下半页B区read2命令代码是50h读取oobC区第一个命令00h用来设置区域为0-255bytes的指针A区第二个命令01h用来设置区域为256-511bytes的指针B区第三个命令50h用来设置区域为512-527bytes的指针C区NAND Flash一上电就进入read1 00h模式所用page的528bytes数据会在12us内传输到数据寄存器。4.3 Bad Block ManagementBad Block TableBBT一般放在block 0因为第一块由厂家保证一定是好的小页512字节的Nand OOB的第6个字节大页2K的OOB第1个字节表示是不是坏块0xff表示好块0x00表示坏块QSPI NOR Flash的第一块或者最后一块一定是好的。4.4 SLC和MLC使用的文件系统SLC时代与其一起成长的软件技术有YAFFS/YAFFS2它是第一个专门为NAND设计的并具有WLWear Leveling和PORPower off Recovery功能的嵌入式文件系统以及JFFS/JFFS2建立可以挂载NAND Driver的MTD设备之上的日志文件系统。MLC预期使用寿命约为3000次PE cycleProgram Erase平均只需5到6年就达到了极限而一般车辆的预期使用寿命要远大于这个年限。5 eMMC和SD5.1 电源定义VCCCcircuit表示电路即接入电路的电压VDDDdevice表示器件即器件内部的工作电压VEEEEmitter发射极电源电压VSSSseries表示公共连接通常指电路公共接地端电压5.2 支持的频率种类达到最大数据速率的前提是8根DATxLegacy SDR26MHzmax_dtr - 26MB/sHS SDRHigh Speed Single Data Rate 52MHzmax_dtr - 52MB/sHS DDRHigh Speed Double Data Rate 104MHzmax_dtr - 104MB/sHS200High Speed 200MHzmax_dtr - 200MB/sHS400High Speed 400MHz需要Data Strobe信号max_dtr - 400MB/s5.3 eMMC芯片架构ARCPS3105-S5PhisonPhison “Five-Person”, 由五位Flash 研发经验超过14年专业人士创立群联采用ARC的SSD主控该公司提供eMMC、UFS和SSD全系列控制器SM2246ENSilicon Motion, Inc.慧荣科技采用ARC的SSD主控该公司提供eMMC、UFS和SSD全系列控制器SiliconGo/YEESTOR硅格半导体该公司提供eMMC、UFS和SSD全系列控制器5.4 命令和响应5.4.1 命令eMMC命令寄存器bit13-8表示opcodeCMD0-63、ACMD0-63eMMC超时寄存器bit3-0表示DAT0-DAT3哪个数据线超时ACMDApplication Command5.4.2 响应R1表示响应长度是一个字节R2表示响应长度是2个字节。R1b和R1的区别在DAT0上存在忙信号busy的传输R1的bit7表示响应包中CRC是否有错误1表示有否则没有5.5 eMMC5.1速度调试5.5.1 速度调试eMMC5.1支持的速度模式DDR50、HS200 SDR、HS200 DDR也叫HS400代码中的配置如下例所示。 drivers/mmc/host/sdhci-pci-core.ccapsMMC_CAP_1_8V_DDRcaps2MMC_CAP2_HS400_1_8V | MMC_CAP2_HS200_1_8V_SDReMMC DTR低速的工作电压是3.3V高速1.8V。类似于USB低速全速DPDM是3.3V高速DPDM是400mV。in drivers/mmc/core/mmc.cmmc_attach_mmc(struct mmc_host *host); - eMMC异常时需要debug该函数mmc_select_driver_type(struct mmc_card *card) - 设置驱动能力MMC_SET_DRIVER_TYPE_A{C/D}等类型5.5.2 eMMC卡调试路径/sys/class/mmc_host/mmcN/mmcN:00001/sys/kernel/debug/mmcN5.5.3 Android eMMC用户分区挂载路径1第一次挂载路径/mnt/media_rw/2第二次挂载路径使用mount的bind方式/mnt/runtime/default/mnt/runtime/read/mnt/runtime/write5.6 CSD寄存器struct mmc_ext_csd {}card-ext_csd.cmdq_enkernel parametermmc_cmdqueueoffps -A | grep mmc5.7 eMMC分区应用实例Android手机系统中各个分区的呈现形式如下1mmcblk0为eMMC的块设备2mmcblk0boot0和mmcblk0boot1对应两个Boot Area Partitions3mmcblk0rpmb则为RPMB PartitionReplay Protected Memory Block具有安全特性的分区指纹数据就是放在这个分区4mmcblk0px为UDAUser Data Area划分出来的SW Partitions5如果存在GPPGeneral Purpose Partitions名称则为mmcblk0gp1、mmcblk0gp2、mmcblk0gp3、mmcblk0gp45.8 Toolsexternal/mmc-utils/read_extcsddo_ffu (it is only for kernel version 4.4)e2label5.9 SPI模式SPI通信模式共有0~3四种他们的区别是时钟相位和极性。适用于MMC和SD的模式是mode 0CPHA0CPOL0但是mode 3多数情况下也管用。剪块透明胶带粘住TF卡第1个脚DAT2插入USB读卡器TF卡进入SPI模式。5.10 SDIOSDIO设备扫描从mmc_rescan函数开始mmc_rescan函数中分别使用400k、300k、200k100k的速率调用mmc_rescan_try_freq进行扫描只要扫描到了设备就会退出扫描。所以如果在400k速率时扫描到了SDIO设备后面3种速率的扫描就不需要再执行。CMD5响应格式为R4返回的OCROperating Conditions Register中包含3 bit的Number of IO functions读出来的值是最大支持的功能索引。6 SD卡LVDS接口6.1 LVDS电流源LVDS电流源串联在NMOS管的Source中电流是3.5 mA所以差分电压摆幅是3.5 mA x (100 // 100) x 2 350 mV。6.2 Pin定义1第一排pin7和8在legacy模式下是DAT0和DAT1UHS-II模式下是LVDS的参考时钟。Pins 7, 8: RCLK/-, Reference Clock, 频率范围从26MHz到52MHz2第二排4根长pin是VDD和VSS。3第二排4根短pin是2个LVDS Lane。Pins 11, 12: D0/-, Lane 0 Differential DataPins 15, 16: D1/-, Lane 1 Differential Data7 UFS7.1 REPORT LUNSUFS协议中REPORT LUNS长度12字节大端格式数据格式为A0 5-byte Reserved 4-byte Allocation Length 1-byte Reserved 1-byte Control命令用于设备向主机汇报其支持的逻辑单元列表。该命令的返回数据格式遵循SCSI协议规范具体如下LUN列表结构大端格式LUN数量8个字节前4个字节表示设备支持的LUN总数 * 8后4个字节保留为0。LUN条目每个LUN条目占用8字节。示例假设设备支持3个LUN2个普通LUN和1个Boot LUN响应数据可能如下00 00 00 00 00 00 00 18 // LUN数量 24 / 8 300 00 00 00 00 00 00 00 // LUN 000 00 00 00 00 00 00 01 // LUN 100 00 00 00 00 00 00 02 // LUN 2Query Request UPIU的数据段是12字节SCSI REPORT LUNS命令。7.2 UFS Provision[30th-Mar-2022]UFS standard defines 2 provisioning types. One is full provisioning and the other is thin provisioning.At the time of shipment of the device, all logical units except for RPMB and REPORT LUNS well known logical units are disabled. Therefore users must set following configurable parameters in Device Descriptor and Unit Descriptor before accessing logical units. Configured parameters are valid after a power cycle. Need do mapping of SCSI LUN id to UPIU LUN id (UFS Protocol Information Unit).QFIL rawprogramX.xml中的physical_partition_number表示UFS的LUN。7.3 UFS固件UFS最大支持的LUN为8个Linux内核中一般从sda到sdh。UFS: Linux /dev/diskUFS固件分成如下的三部分- 前端host接口协议- 中端FTLFlash Transport Layer算法- 后端NFCNand Flash Controller驱动7.4 showcaseSamsung 8nm EA9 Android images are in UFS LUN0.8 AbbreviationsMISOmi s əuMOSIm əu siQUP高通平台的SPI总线和I2C共用core和引脚称为QUPQCOM Universal Peripheral而UART和QUP又共用引脚并且称为BLSPDQSData Query Strobe时钟CLK是被用来指引命令和地址的传输而数据阀门信号DQS则是用来指引数据应该被传输到哪里去。DQS是一个双向总线也是由和时钟同样的频率来进行驱动。MfgToolFreescale Manufacturing ToolNand Flash RBAReserve Block Area预留块区ONFIOpen NAND Flash Interface上电时异步模式下指令切换到同步模式有CLK信号P/E循环Nand Flash编程/擦除次数PORNand Flash Power off Recovery掉电恢复Qimonda: Qi monda, monda means worldR/B#Ready/Busy#SAMSCSI Architecture ModelSASSerial Attached SCSISBCSCSI Block Commands特定设备指令集SPCSCSI Primary Commands基础指令集TATrusted ApplicationVCCQVCC Qualitynand flash的供电电压
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2464518.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!