依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。
所在专栏 《元带你学: eMMC协议详解》
现场固件更新(FFU)可以增强现场的功能。使用这种机制,主机将新版本的固件下载到e-MMC设备,并在下载成功后指示e-MMC设备将新下载的固件安装到设备中。
为了启动FFU进程,主机首先通过读取EXT_CSD中的SUPPORTED_MODES和FW_CONFIG字段来检查MMC设备是否支持FFU功能。如果e-MMC设备支持FFU特性,主机可能会启动FFU进程。FFU进程通过在EXT_CSD文件的MODE_CONFIG字段中切换到FFU模式启动。
在FFU模式下,主机应该使用封闭式或开放式命令(CMD17/CMD18/CMD24/CMD25)来下载新固件和读取供应商专有数据。在这种模式下,主机应该将这些命令的参数设置为与FFU_ARG字段中定义的一致。如果这些命令有不同的参数,则设备行为没有定义,FFU进程可能会失败。主机应该将块长度设置为DATA_SECTOR_SIZE。下载的固件包必须是DATA_SECTOR_SIZE大小对齐的(可能需要包的内部填充)。
一旦进入FFU模式,主机可以使用一个或多个写命令向设备发送新的固件包。通过将EXT_CSD中的MODE_cONFIG字段设置为Normal状态,主机可以恢复正常的读写命令功能。切换出FFU模式可能会导致固件下载操作失败。当切换回FFU模式时,主机应该检查FFU状态