- 简介
download microcode命令就是主机修改盘片固件的命令,可通过download microcode和download microcode DMA 这两个命令来传输固件。
1.1固件状态
microcode有几种状态:①active microcode:就是目前盘片中正在运行的固件;②updated microcode:是指主机正在下载过程中的固件;③saved microcode:是指updated microcode已经完整下载下来,可用,且存放在nand上面的固件;④deferred microcode:保存的未自动激活的固件。
1.2下载和激活固件的步骤
①下载:主机通过一个或者多个下载命令,将固件传输到盘片上面;
②保存:设备接收到完整的更新的bin数据后(通过校验),如果指定了下载模式,则盘片将更新后的固件数据保存到非易失性存储器中;
③激活:激活的过程就是首次使用已经下载保存好的固件。当成功激活后,deferred microcode将会被删除。
1.3命令模式
DOWNLOAD MICROCODE有以下几种模式
mode01: 目前已弃用
mode03: 通过加上偏移下载后保存; 可整片或分片下载; 立刻激活
mode07:下载后保存; 仅可整片下载; 立刻激活
mode0E:通过加上偏移下载并保存 可整片或分片 不立刻激活
下次上电完成后或者激活命令完成之后,固件正式生效
mode0F: 激活已下载的microcode ; null 立刻激活
如果没有保存deferred microcode,那么该命令将会被aborted
1.4 DOWNLOAD MICROCODE命令input参数
BLOCK COUNT 字段包含应传输的 512 字节数据块的数量。 BLOCK COUNT 字段在 COUNT 字段和 LBA 字段中指定。 BLOCK COUNT 字段仅在 SUBCOMMAND 字段为 03h 或 0Eh 时有效。
BUFFER OFFSET 字段指定该下载命令传输的数据包含的更新FW数据的偏移量。 BUFFER OFFSET 字段仅在 SUBCOMMAND 字段为 03h 或 0Eh 时有效。
1.5命令 normal output
当使用03、0E模式进行分片下载的时候,返回到COUNT字段,见下图
1.6命令error output
如果设备不接受部分或全部微码数据,设备将返回命令中止。 如果子命令代码不是受支持的值,设备应返回命令中止。
1.7 DOWNLOAD MICROCODE DMA命令input参数
DOWNLOAD MICROCODE DMA的normal output和error output和DOWNLOAD MICROCODE命令的一致。