linux-nvme / nvme-cli

NVMe management command line interface.
https://nvmexpress.org
GNU General Public License v2.0
1.45k stars 650 forks source link

nvme list can't refresh the firmware version #2474

Open banklpjhgb opened 2 weeks ago

banklpjhgb commented 2 weeks ago

I'm using nvme 2.7.1 and there's some problems :

/ # nvme fw-download /dev/nvme0 -f /cytest/52F1U1TC.bin
Firmware download success / # nvme fw-commit /dev/nvme0 -s=1 -a=3
Success committing firmware action:3 slot:1 / # nvme list Node Generic SN Model Namespace Usage Format FW Rev


/dev/nvme0n1 ng0n1 H551482004 TS32GMTE452TI 0x1 9.71 GB / 32.02 GB 512 B + 0 B 52F1U1TB / # nvme list-ctrl /dev/nvme0
NVMe status: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field(0x2)s: Invalid Field in Command: A reserved coded value or an unsupported value in a defined field(0x2)

Why the FW Rev still be old name after fw-commit? In fact the fw-commit is cucceed, because I can see the new version using smartctl, and why the list-ctrl is faild? Thranks for your help.

igaw commented 2 weeks ago

Why the FW Rev still be old name after fw-commit?

nvme-cli/libnvme reads the firmware version from sysfs. The kernel didn't update the firmware version entry in older version. a8eb6c1ba48b ("nvme: copy firmware_rev on each init")

Is there anything in the kernel messages? Does the problem go away after a reboot (device reset)?

banklpjhgb commented 2 weeks ago

yes, the output will be right after reboot. I checked the code and the patch is not applied, I will test if it's OK when patch applied. Thanks for your help!

igaw commented 2 weeks ago

The kernel message should contain a message if a reboot/reset of the device is necessary after updating the firmware as far I know.