NVMe解读---Boot Partition(write篇)

本文介绍了NVMe设备Boot Partition的更新流程,包括下载image、解锁分区、提交Firmware Commit命令、错误处理和内容验证,确保固件安全激活。

     Boot Partition的内容可以用下载固件image或者固件写入的方式进行改变。

     以下是更新Boot Partition的步骤:

     ① 主控发出一个下载image下载命令来将Boot Partition的内容下载到controller之中。这个过程中也许有多个Boot Partition的部分需要下载,因此每个Boot Partition部分的偏移地址会在Image Download Cmd中被指定。主控软件将发送Boot Partition image来按序从Boot Partition的基地址启动;

     ② 解锁Boot Partition;

      主控提交一个带有110b的Firmware Commit command,以此来指定所下载的Image需要在Boot Partition ID区域里替换的内容;

      控制器完成Firmware Commit command,host将会采取以下错误应对方案:

         a. 如果因为Boot Partition没能成功写入的原因而导致固件激活失败,控制器会报Boot Partition Write Prohibited

     主控读取Boot

`nvme get-log /dev/nvme0` 是用于获取 NVMe 设备日志信息的命令。 ### 命令作用 该命令主要用于从 `/dev/nvme0` 这个 NVMe 设备获取特定的日志。日志包含了设备的各种状态信息、运行记录等,有助于对设备的健康状况、运行情况进行监控和故障排查。 ### 使用方法 从源码中的 `nvme-builtin.h` 文件可知,`get-log` 是一个通用的 NVMe 获取日志命令,会以原始格式返回日志 [^2]。 用例中展示了检查 NVMe 设备的 SMART 日志时的命令使用方式: ```bash nvme get-log /dev/nvme0 --log-id=0x02 --log-len=512 telemetry-log ``` 这里的参数说明如下: - `/dev/nvme0`:指定要操作的 NVMe 设备。 - `--log-id=0x02`:指定要获取的日志的 ID,不同的日志 ID 对应不同类型的日志。 - `--log-len=512`:指定获取的日志的长度。 - `telemetry-log`:可能是指定日志的具体类型。 ### 其他相关命令 除了 `nvme get-log` 命令,还有一些其他用于查看 NVMe 设备信息的命令: - 查看 NVMe 设备:`nvme list` - 查看 nvme controller 支持的一些特性:`nvme id-ctrl /dev/nvme0` - 查看设备 SMART log 信息:`nvme smart-log /dev/nvme0` - 查看设备 error 信息:`nvme error-log /dev/nvme0` - 查看设备的所有命名空间:`nvme list-ns /dev/nvmeX` - 检查 NVMe 设备的连接速度:`nvme get-feature /dev/nvmeX -f 7` [^1] ### NVMe 命令分类 NVMe 命令分为 Admin 指令与 NVM 指令(I/O 指令)。Admin 指令只能提交到 Admin Controller 中,主要负责管理 NVMe 控制器,也包含对 NVM 的一些控制指令。NVM 指令只能提交到 I/O Controller 中,主要负责完成数据的传输。所有命令均为 64 字节 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值