FFU操作流程
1、FFU在开始之前,主机首先要检查eMMC设备是否支持FFU兼容性,通过读取EXT_CSD
寄存器的SUPPORTED_MODES
和FW_CONFIG
,如果支持FFU功能,即可开始FFU流程。
2、FFU操作的开始,用户需要通过切换EXT_CSD
寄存器中的MODE_CONFIG
字段的值将emmc切换到FFU模式。
3、在FFU模式中,主机会用CMD17/CMD18/CMD24/CMD25
,下载新的firmware并且读取供应商专有数据,在此模式下,主机应该将这些命令的参数设置为与FFU_ARG
字段中的一致。如果这些命令有不同的参数,则设备行为没有定义,emmc会有不确定的动作,FFU进程可能会失败。
4、用户需要设置块长度为DATA_SECTOR_SIZE
。下载的FW文件包(固件包)必须与DATA_SECTOR_SIZE
保持对齐(有必要时可以文件内部填充数据)。
5、一旦进入FFU模式,用户可以使用一次或多次命令向emmc发送固件文件包;可以设置EXT_CSD
寄存器中的MODE_CONFIG
字段的值将emmc恢复到常规的读写命令功能,并回到正常状态;切出FFU模式会终