raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Other
11k stars 4.95k forks source link

Incompatible NVMe: 250GB Western Digital PC SN530 (Pi 5, 8GB, X1001) #6228

Open twoplan opened 2 months ago

twoplan commented 2 months ago

Describe the bug

The 250GB WD PC SN530 NVMe is not detected with an Geekworm X1001 Adapter on my 8GB Pi 5. Tested with dtparam=pciex1_gen=2 and 3.

With a different 500GB NVMe Sandisk SN740, the X1001 NVMe adapter works perfect (dtparam=pciex1_gen=3).

Steps to reproduce the behaviour

You need a SN530 NVMe from Western Digital.

Device (s)

Raspberry Pi 5

System

cat /etc/rpi-issue

Raspberry Pi reference 2024-03-15
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, f19ee211ddafcae300827f953d143de92a5c6624, stage4

vcgencmd version

2024/06/05 16:41:49 
Copyright (c) 2012 Broadcom
version 6fe0b091 (release) (embedded)

uname -a Linux raspi5 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux

Logs

250GB Western Digital PC SN530 sudo lspci

00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
01:00.0 Ethernet controller: Device 1de4:0001

With

500GB Sandisk SN740 sudo lspci

0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0000:01:00.0 Non-Volatile memory controller: Sandisk Corp WD PC SN740 NVMe SSD 512GB (DRAM-less) (rev 01)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0001:01:00.0 Ethernet controller: Device 1de4:0001

Additional context

No response

timg236 commented 2 months ago

Possibly a duplicate of https://github.com/raspberrypi/linux/issues/6195

aBUGSworstnightmare-rpi commented 2 months ago

Possibly a duplicate of #6195

Not a duplicate! PCIe device Id's of the drives are different. Unknown if they were using the same firmware (so far at least). I will test two more SN350 labeled devices later this week in order to check what @twoplan is seeing.

Btw: I have another SN350 labeled device (again different ID) which is working fine but most likely a re-labeled SN550.

aBUGSworstnightmare-rpi commented 2 months ago

Tests concluded! 2242 sized SN530 is working here for me it shows expected ID -+-[0000:00]---00.0-[01]----00.0 Sandisk Corp PC SN530 NVMe SSD (DRAM-less) [15b7:5008] IMG_20240618_120520 IMG_20240618_112757 IMG_20240618_120358

pi@m2hattest:~ $ sudo nvme --smart-log /dev/nvme0n1 -H Smart Log for NVME device:nvme0n1 namespace-id:ffffffff critical_warning : 0 Available Spare[0] : 0 Temp. Threshold[1] : 0 NVM subsystem Reliability[2] : 0 Read-only[3] : 0 Volatile mem. backup failed[4] : 0 Persistent Mem. RO[5] : 0 temperature : 26°C (299 Kelvin) available_spare : 100% available_spare_threshold : 10% percentage_used : 0% endurance group critical warning summary: 0 Data Units Read : 58,670 (30.04 GB) Data Units Written : 56,463 (28.91 GB) host_read_commands : 829,446 host_write_commands : 255,675 controller_busy_time : 3 power_cycles : 14 power_on_hours : 2 unsafe_shutdowns : 2 media_errors : 0 num_err_log_entries : 1 Warning Temperature Time : 0 Critical Composite Temperature Time : 0 Thermal Management T1 Trans Count : 0 Thermal Management T2 Trans Count : 0 Thermal Management T1 Total Time : 0 Thermal Management T2 Total Time : 0 pi@m2hattest:~ $ sudo nvme id-ctrl -H /dev/nvme0 NVME Identify Controller: vid : 0x15b7 ssvid : 0x15b7 sn : 22293C452220
mn : WDC PC SN530 SDBPMPZ-256G-1101
fr : 21160001 rab : 4 ieee : 001b44 cmic : 0 [3:3] : 0 ANA not supported [2:2] : 0 PCI [1:1] : 0 Single Controller [0:0] : 0 Single Port

mdts : 7 cntlid : 0x1 ver : 0x10400 rtd3r : 0x7a120 rtd3e : 0xf4240 oaes : 0x200 [31:31] : 0 Discovery Log Change Notice Not Supported [27:27] : 0 Zone Descriptor Changed Notices Not Supported [15:15] : 0 Normal NSS Shutdown Event Not Supported [14:14] : 0 Endurance Group Event Aggregate Log Page Change Notice Not Supported [13:13] : 0 LBA Status Information Notices Not Supported [12:12] : 0 Predictable Latency Event Aggregate Log Change Notices Not Supported [11:11] : 0 Asymmetric Namespace Access Change Notices Not Supported [9:9] : 0x1 Firmware Activation Notices Supported [8:8] : 0 Namespace Attribute Changed Event Not Supported

ctratt : 0x2 [19:19] : 0 Flexible Data Placement Not Supported [15:15] : 0 Extended LBA Formats Not Supported [14:14] : 0 Delete NVM Set Not Supported [13:13] : 0 Delete Endurance Group Not Supported [12:12] : 0 Variable Capacity Management Not Supported [11:11] : 0 Fixed Capacity Management Not Supported [10:10] : 0 Multi Domain Subsystem Not Supported [9:9] : 0 UUID List Not Supported [8:8] : 0 SQ Associations Not Supported [7:7] : 0 Namespace Granularity Not Supported [6:6] : 0 Traffic Based Keep Alive Not Supported [5:5] : 0 Predictable Latency Mode Not Supported [4:4] : 0 Endurance Groups Not Supported [3:3] : 0 Read Recovery Levels Not Supported [2:2] : 0 NVM Sets Not Supported [1:1] : 0x1 Non-Operational Power State Permissive Supported [0:0] : 0 128-bit Host Identifier Not Supported

rrls : 0 cntrltype : 1 [7:2] : 0 Reserved [1:0] : 0x1 I/O Controller fguid : 00000000-0000-0000-0000-000000000000 crdt1 : 0 crdt2 : 0 crdt3 : 0 nvmsr : 0 [1:1] : 0 NVM subsystem Not part of an Enclosure [0:0] : 0 NVM subsystem Not part of an Storage Device

vwci : 0 [7:7] : 0 VPD Write Cycles Remaining field is Not valid. [6:0] : 0 VPD Write Cycles Remaining

mec : 0 [1:1] : 0 NVM subsystem Not contains a Management Endpoint on a PCIe port [0:0] : 0 NVM subsystem Not contains a Management Endpoint on an SMBus/I2C port

oacs : 0x17 [10:10] : 0 Lockdown Command and Feature Not Supported [9:9] : 0 Get LBA Status Capability Not Supported [8:8] : 0 Doorbell Buffer Config Not Supported [7:7] : 0 Virtualization Management Not Supported [6:6] : 0 NVMe-MI Send and Receive Not Supported [5:5] : 0 Directives Not Supported [4:4] : 0x1 Device Self-test Supported [3:3] : 0 NS Management and Attachment Not Supported [2:2] : 0x1 FW Commit and Download Supported [1:1] : 0x1 Format NVM Supported [0:0] : 0x1 Security Send and Receive Supported

acl : 4 aerl : 7 frmw : 0x14 [5:5] : 0 Multiple FW or Boot Update Detection Not Supported [4:4] : 0x1 Firmware Activate Without Reset Supported [3:1] : 0x2 Number of Firmware Slots [0:0] : 0 Firmware Slot 1 Read/Write

lpa : 0x1e [6:6] : 0 Telemetry Log Data Area 4 Not Supported [5:5] : 0 LID 0x0, Scope of each command in LID 0x5, 0x12, 0x13 Not Supported [4:4] : 0x1 Persistent Event log Supported [3:3] : 0x1 Telemetry host/controller initiated log page Supported [2:2] : 0x1 Extended data for Get Log Page Supported [1:1] : 0x1 Command Effects Log Page Supported [0:0] : 0 SMART/Health Log Page per NS Not Supported

elpe : 255 [7:0] : 255 (0's based) Error Log Page Entries (ELPE)

npss : 4 [7:0] : 4 (0's based) Number of Power States Support (NPSS)

avscc : 0x1 [0:0] : 0x1 Admin Vendor Specific Commands uses NVMe Format

apsta : 0x1 [0:0] : 0x1 Autonomous Power State Transitions Supported

wctemp : 353 [15:0] : 80°C (353 Kelvin) Warning Composite Temperature Threshold (WCTEMP)

cctemp : 358 [15:0] : 85°C (358 Kelvin) Critical Composite Temperature Threshold (CCTEMP)

mtfa : 50 hmpre : 51200 hmmin : 823 tnvmcap : 256,060,514,304 [127:0] : 256,060,514,304 Total NVM Capacity (TNVMCAP)

unvmcap : 0 [127:0] : 0 Unallocated NVM Capacity (UNVMCAP)

rpmbs : 0 [31:24]: 0 Access Size [23:16]: 0 Total Size [5:3] : 0 Authentication Method [2:0] : 0 Number of RPMB Units

edstt : 44 dsto : 1 fwug : 1 kas : 0 hctma : 0x1 [0:0] : 0x1 Host Controlled Thermal Management Supported

mntmt : 273 [15:0] : 0°C (273 Kelvin) Minimum Thermal Management Temperature (MNTMT)

mxtmt : 358 [15:0] : 85°C (358 Kelvin) Maximum Thermal Management Temperature (MXTMT)

sanicap : 0x60000002 [31:30] : 0x1 Media is not additionally modified after sanitize operation completes successfully [29:29] : 0x1 No-Deallocate After Sanitize bit in Sanitize command Not Supported [2:2] : 0 Overwrite Sanitize Operation Not Supported [1:1] : 0x1 Block Erase Sanitize Operation Supported [0:0] : 0 Crypto Erase Sanitize Operation Not Supported

hmminds : 0 hmmaxd : 8 nsetidmax : 0 endgidmax : 0 anatt : 0 anacap : 0 [7:7] : 0 Non-zero group ID Not Supported [6:6] : 0 Group ID does change [4:4] : 0 ANA Change state Not Supported [3:3] : 0 ANA Persistent Loss state Not Supported [2:2] : 0 ANA Inaccessible state Not Supported [1:1] : 0 ANA Non-optimized state Not Supported [0:0] : 0 ANA Optimized state Not Supported

anagrpmax : 0 nanagrpid : 0 pels : 1 domainid : 0 megcap : 0 sqes : 0x66 [7:4] : 0x6 Max SQ Entry Size (64) [3:0] : 0x6 Min SQ Entry Size (64)

cqes : 0x44 [7:4] : 0x4 Max CQ Entry Size (16) [3:0] : 0x4 Min CQ Entry Size (16)

maxcmd : 0 nn : 1 oncs : 0x5f [8:8] : 0 Copy Not Supported [7:7] : 0 Verify Not Supported [6:6] : 0x1 Timestamp Supported [5:5] : 0 Reservations Not Supported [4:4] : 0x1 Save and Select Supported [3:3] : 0x1 Write Zeroes Supported [2:2] : 0x1 Data Set Management Supported [1:1] : 0x1 Write Uncorrectable Supported [0:0] : 0x1 Compare Supported

fuses : 0 [0:0] : 0 Fused Compare and Write Not Supported

fna : 0 [3:3] : 0 Format NVM Broadcast NSID (FFFFFFFFh) Supported [2:2] : 0 Crypto Erase Not Supported as part of Secure Erase [1:1] : 0 Crypto Erase Applies to Single Namespace(s) [0:0] : 0 Format Applies to Single Namespace(s)

vwc : 0x7 [2:1] : 0x3 The Flush command supports NSID set to FFFFFFFFh [0:0] : 0x1 Volatile Write Cache Present

awun : 0 awupf : 0 icsvscc : 1 [0:0] : 0x1 NVM Vendor Specific Commands uses NVMe Format

nwpc : 0 [2:2] : 0 Permanent Write Protect Not Supported [1:1] : 0 Write Protect Until Power Supply Not Supported [0:0] : 0 No Write Protect and Write Protect Namespace Not Supported

acwu : 0 ocfs : 0 [1:1] : 0 Controller Copy Format 1h Not Supported [0:0] : 0 Controller Copy Format 0h Not Supported

sgls : 0 [15:8] : 0 SGL Descriptor Threshold [1:0] : 0 Scatter-Gather Lists Not Supported

mnan : 0 maxdna : 0 maxcna : 0 subnqn : nqn.2018-01.com.wdc:guid:E8238FA6BF53-0001-001B444A4892154C ioccsz : 0 iorcsz : 0 icdoff : 0 fcatt : 0 [0:0] : 0 Dynamic Controller Model

msdbd : 0 ofcs : 0 [0:0] : 0 Disconnect command Not Supported

ps 0 : mp:3.50W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.80W active_power_workload:80K 128KiB SW ps 1 : mp:2.40W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.60W active_power_workload:80K 128KiB SW ps 2 : mp:1.90W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.50W active_power_workload:80K 128KiB SW ps 3 : mp:0.0250W non-operational enlat:3900 exlat:11000 rrt:3 rrl:3 rwt:3 rwl:3 idle_power:0.0250W active_power:- active_power_workload:- ps 4 : mp:0.0050W non-operational enlat:5000 exlat:39000 rrt:4 rrl:4 rwt:4 rwl:4 idle_power:0.0050W active_power:- active_power_workload:-

aBUGSworstnightmare-rpi commented 2 months ago

2280 sized SN530 is working here for me it shows an unexpected ID pi@m2hattest:~ $ lspci -tvnn -+-[0000:00]---00.0-[01]----00.0 Sandisk Corp WD Blue SN550 NVMe SSD [15b7:5009] which is in fact the same as the drive in https://github.com/raspberrypi/linux/issues/6195 so this one seems to be a relabeled SN550 in 256GB and/or the data base is incorrect. IMG_20240618_120625 IMG_20240618_120634 IMG_20240618_121923

pi@m2hattest:~ $ sudo nvme --smart-log /dev/nvme0n1 -H Smart Log for NVME device:nvme0n1 namespace-id:ffffffff critical_warning : 0 Available Spare[0] : 0 Temp. Threshold[1] : 0 NVM subsystem Reliability[2] : 0 Read-only[3] : 0 Volatile mem. backup failed[4] : 0 Persistent Mem. RO[5] : 0 temperature : 27°C (300 Kelvin) available_spare : 100% available_spare_threshold : 10% percentage_used : 0% endurance group critical warning summary: 0 Data Units Read : 206,111 (105.53 GB) Data Units Written : 246,671 (126.30 GB) host_read_commands : 1,846,942 host_write_commands : 1,113,758 controller_busy_time : 10 power_cycles : 30 power_on_hours : 4 unsafe_shutdowns : 16 media_errors : 0 num_err_log_entries : 1 Warning Temperature Time : 0 Critical Composite Temperature Time : 0 Thermal Management T1 Trans Count : 0 Thermal Management T2 Trans Count : 0 Thermal Management T1 Total Time : 0 Thermal Management T2 Total Time : 0 pi@m2hattest:~ $ sudo nvme id-ctrl -H /dev/nvme0 NVME Identify Controller: vid : 0x15b7 ssvid : 0x15b7 sn : 2210D2494001
mn : WDC PC SN530 SDBPNPZ-256G-1114
fr : 21113000 rab : 4 ieee : 001b44 cmic : 0 [3:3] : 0 ANA not supported [2:2] : 0 PCI [1:1] : 0 Single Controller [0:0] : 0 Single Port

mdts : 7 cntlid : 0x1 ver : 0x10400 rtd3r : 0x7a120 rtd3e : 0xf4240 oaes : 0x200 [31:31] : 0 Discovery Log Change Notice Not Supported [27:27] : 0 Zone Descriptor Changed Notices Not Supported [15:15] : 0 Normal NSS Shutdown Event Not Supported [14:14] : 0 Endurance Group Event Aggregate Log Page Change Notice Not Supported [13:13] : 0 LBA Status Information Notices Not Supported [12:12] : 0 Predictable Latency Event Aggregate Log Change Notices Not Supported [11:11] : 0 Asymmetric Namespace Access Change Notices Not Supported [9:9] : 0x1 Firmware Activation Notices Supported [8:8] : 0 Namespace Attribute Changed Event Not Supported

ctratt : 0x2 [19:19] : 0 Flexible Data Placement Not Supported [15:15] : 0 Extended LBA Formats Not Supported [14:14] : 0 Delete NVM Set Not Supported [13:13] : 0 Delete Endurance Group Not Supported [12:12] : 0 Variable Capacity Management Not Supported [11:11] : 0 Fixed Capacity Management Not Supported [10:10] : 0 Multi Domain Subsystem Not Supported [9:9] : 0 UUID List Not Supported [8:8] : 0 SQ Associations Not Supported [7:7] : 0 Namespace Granularity Not Supported [6:6] : 0 Traffic Based Keep Alive Not Supported [5:5] : 0 Predictable Latency Mode Not Supported [4:4] : 0 Endurance Groups Not Supported [3:3] : 0 Read Recovery Levels Not Supported [2:2] : 0 NVM Sets Not Supported [1:1] : 0x1 Non-Operational Power State Permissive Supported [0:0] : 0 128-bit Host Identifier Not Supported

rrls : 0 cntrltype : 1 [7:2] : 0 Reserved [1:0] : 0x1 I/O Controller fguid : 00000000-0000-0000-0000-000000000000 crdt1 : 0 crdt2 : 0 crdt3 : 0 nvmsr : 0 [1:1] : 0 NVM subsystem Not part of an Enclosure [0:0] : 0 NVM subsystem Not part of an Storage Device

vwci : 0 [7:7] : 0 VPD Write Cycles Remaining field is Not valid. [6:0] : 0 VPD Write Cycles Remaining

mec : 0 [1:1] : 0 NVM subsystem Not contains a Management Endpoint on a PCIe port [0:0] : 0 NVM subsystem Not contains a Management Endpoint on an SMBus/I2C port

oacs : 0x17 [10:10] : 0 Lockdown Command and Feature Not Supported [9:9] : 0 Get LBA Status Capability Not Supported [8:8] : 0 Doorbell Buffer Config Not Supported [7:7] : 0 Virtualization Management Not Supported [6:6] : 0 NVMe-MI Send and Receive Not Supported [5:5] : 0 Directives Not Supported [4:4] : 0x1 Device Self-test Supported [3:3] : 0 NS Management and Attachment Not Supported [2:2] : 0x1 FW Commit and Download Supported [1:1] : 0x1 Format NVM Supported [0:0] : 0x1 Security Send and Receive Supported

acl : 4 aerl : 7 frmw : 0x14 [5:5] : 0 Multiple FW or Boot Update Detection Not Supported [4:4] : 0x1 Firmware Activate Without Reset Supported [3:1] : 0x2 Number of Firmware Slots [0:0] : 0 Firmware Slot 1 Read/Write

lpa : 0x1e [6:6] : 0 Telemetry Log Data Area 4 Not Supported [5:5] : 0 LID 0x0, Scope of each command in LID 0x5, 0x12, 0x13 Not Supported [4:4] : 0x1 Persistent Event log Supported [3:3] : 0x1 Telemetry host/controller initiated log page Supported [2:2] : 0x1 Extended data for Get Log Page Supported [1:1] : 0x1 Command Effects Log Page Supported [0:0] : 0 SMART/Health Log Page per NS Not Supported

elpe : 255 [7:0] : 255 (0's based) Error Log Page Entries (ELPE)

npss : 4 [7:0] : 4 (0's based) Number of Power States Support (NPSS)

avscc : 0x1 [0:0] : 0x1 Admin Vendor Specific Commands uses NVMe Format

apsta : 0x1 [0:0] : 0x1 Autonomous Power State Transitions Supported

wctemp : 353 [15:0] : 80°C (353 Kelvin) Warning Composite Temperature Threshold (WCTEMP)

cctemp : 358 [15:0] : 85°C (358 Kelvin) Critical Composite Temperature Threshold (CCTEMP)

mtfa : 50 hmpre : 0 hmmin : 0 tnvmcap : 256,060,514,304 [127:0] : 256,060,514,304 Total NVM Capacity (TNVMCAP)

unvmcap : 0 [127:0] : 0 Unallocated NVM Capacity (UNVMCAP)

rpmbs : 0 [31:24]: 0 Access Size [23:16]: 0 Total Size [5:3] : 0 Authentication Method [2:0] : 0 Number of RPMB Units

edstt : 44 dsto : 1 fwug : 1 kas : 0 hctma : 0x1 [0:0] : 0x1 Host Controlled Thermal Management Supported

mntmt : 273 [15:0] : 0°C (273 Kelvin) Minimum Thermal Management Temperature (MNTMT)

mxtmt : 358 [15:0] : 85°C (358 Kelvin) Maximum Thermal Management Temperature (MXTMT)

sanicap : 0x60000002 [31:30] : 0x1 Media is not additionally modified after sanitize operation completes successfully [29:29] : 0x1 No-Deallocate After Sanitize bit in Sanitize command Not Supported [2:2] : 0 Overwrite Sanitize Operation Not Supported [1:1] : 0x1 Block Erase Sanitize Operation Supported [0:0] : 0 Crypto Erase Sanitize Operation Not Supported

hmminds : 0 hmmaxd : 0 nsetidmax : 0 endgidmax : 0 anatt : 0 anacap : 0 [7:7] : 0 Non-zero group ID Not Supported [6:6] : 0 Group ID does change [4:4] : 0 ANA Change state Not Supported [3:3] : 0 ANA Persistent Loss state Not Supported [2:2] : 0 ANA Inaccessible state Not Supported [1:1] : 0 ANA Non-optimized state Not Supported [0:0] : 0 ANA Optimized state Not Supported

anagrpmax : 0 nanagrpid : 0 pels : 1 domainid : 0 megcap : 0 sqes : 0x66 [7:4] : 0x6 Max SQ Entry Size (64) [3:0] : 0x6 Min SQ Entry Size (64)

cqes : 0x44 [7:4] : 0x4 Max CQ Entry Size (16) [3:0] : 0x4 Min CQ Entry Size (16)

maxcmd : 0 nn : 1 oncs : 0x5f [8:8] : 0 Copy Not Supported [7:7] : 0 Verify Not Supported [6:6] : 0x1 Timestamp Supported [5:5] : 0 Reservations Not Supported [4:4] : 0x1 Save and Select Supported [3:3] : 0x1 Write Zeroes Supported [2:2] : 0x1 Data Set Management Supported [1:1] : 0x1 Write Uncorrectable Supported [0:0] : 0x1 Compare Supported

fuses : 0 [0:0] : 0 Fused Compare and Write Not Supported

fna : 0 [3:3] : 0 Format NVM Broadcast NSID (FFFFFFFFh) Supported [2:2] : 0 Crypto Erase Not Supported as part of Secure Erase [1:1] : 0 Crypto Erase Applies to Single Namespace(s) [0:0] : 0 Format Applies to Single Namespace(s)

vwc : 0x7 [2:1] : 0x3 The Flush command supports NSID set to FFFFFFFFh [0:0] : 0x1 Volatile Write Cache Present

awun : 0 awupf : 0 icsvscc : 1 [0:0] : 0x1 NVM Vendor Specific Commands uses NVMe Format

nwpc : 0 [2:2] : 0 Permanent Write Protect Not Supported [1:1] : 0 Write Protect Until Power Supply Not Supported [0:0] : 0 No Write Protect and Write Protect Namespace Not Supported

acwu : 0 ocfs : 0 [1:1] : 0 Controller Copy Format 1h Not Supported [0:0] : 0 Controller Copy Format 0h Not Supported

sgls : 0 [15:8] : 0 SGL Descriptor Threshold [1:0] : 0 Scatter-Gather Lists Not Supported

mnan : 0 maxdna : 0 maxcna : 0 subnqn : nqn.2018-01.com.wdc:nguid:E8238FA6BF53-0001-001B444A49F4F9D3 ioccsz : 0 iorcsz : 0 icdoff : 0 fcatt : 0 [0:0] : 0 Dynamic Controller Model

msdbd : 0 ofcs : 0 [0:0] : 0 Disconnect command Not Supported

ps 0 : mp:3.50W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.80W active_power_workload:80K 128KiB SW ps 1 : mp:2.40W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.60W active_power_workload:80K 128KiB SW ps 2 : mp:1.90W operational enlat:0 exlat:0 rrt:0 rrl:0 rwt:0 rwl:0 idle_power:0.6300W active_power:1.50W active_power_workload:80K 128KiB SW ps 3 : mp:0.0250W non-operational enlat:3900 exlat:11000 rrt:3 rrl:3 rwt:3 rwl:3 idle_power:0.0250W active_power:- active_power_workload:- ps 4 : mp:0.0050W non-operational enlat:5000 exlat:39000 rrt:4 rrl:4 rwt:4 rwl:4 idle_power:0.0050W active_power:- active_power_workload:-

aBUGSworstnightmare-rpi commented 2 months ago

Note: pciex1-compat-pi5 wasn't used here!

twoplan commented 2 months ago

@aBUGSworstnightmare-rpi The firmware is different. Yours is 21113000 from 04MAR 2022. And mine is 21103900 from 24JAN 2022.

SN530

aBUGSworstnightmare-rpi commented 2 months ago

@twoplan noted! Will test on Pimoroni NVMe base later. Official M.2 HAT+ has the 32kHz sub clock mounted which isn't there on your HW and the NVMe base (at least the revision which I have).

Will also test on CM4 to see if the PCIe IP on CM4 has any issues with these drives.

aBUGSworstnightmare-rpi commented 2 months ago

Both SN530 drives (2245 and 2280size) were check with Pimoroni NVMe base as well as on CM4: working on both platforms.

as @twoplan 's isn't working it might be a firmware issue. I'm now investigating possibilities of doing a FW update (on both SN530 as well as the still non-working SN550).

Will check by using Western Digital SSD Dashboard (https://support-en.wd.com/app/answers/detailweb/a_id/31759#subject3 or https://support-en.wd.com/app/products/downloads/softwaredownloads) but need to wait until a USB NVMe adapter got delivered.

twoplan commented 2 months ago

Installed latest WDC Dashboard on my Windows laptop and connected the NVMe via an USB-C adapter. Unfortunately the software reports, that there is no firmware update available for this SN530. Which obviously is wrong, as @aBUGSworstnightmare-rpi 's firmware is newer.

SN530-no_firmware

So I opened a ticket at WDC support ... let's see where this leads to.

aBUGSworstnightmare-rpi commented 2 months ago

seems like SN530 is not listed in there https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml

WD Green SN530 are different. Hopefully WD has some interrest in supporting usage of their products on Raspberry Pi platforms. The date stated on the drive is - most likely - production date. Firmware seems to be a number only. The FW of the 2243 sized drive is even newer (produced in July 2022)

Below is from the 2280 sized drive

pi@pi5sn350:~ $ cat /sys/class/nvme/nvme0/model && cat /sys/class/nvme/nvme0/firmware_rev

WDC PC SN530 SDBPNPZ-256G-1114          
21113000
aBUGSworstnightmare-rpi commented 2 months ago

should be solvable by writing a new firmware (see last commit in https://github.com/raspberrypi/linux/issues/6195).

Question now is how to read the NVMe firmware by using name-cli.

twoplan commented 2 months ago

This is todays feedback from Western Digitals Customers Support:

Thank you for contacting Western Digital Customer Support. My name is Matt R.

As verified, your drive is an Original Equipment Manufacturer (OEM) drive. Western Digital supplies hardware to manufacturers that can be used as OEM products.

Western Digital® Global Customer Support does not provide technical support or warranty replacement service for Original Equipment Manufacturer (OEM) products.

Please contact the OEM manufacturer or the place of purchase of the OEM product.

The 250GB SN530 was left over from a storage upgrade of my Acer laptop two years ago. As WD is not willing to help, geting the firmware from Acer seems very unlikely too. There is no firmware update on the laptops support website.

Maybe there exists a newer firmware from a different OEM manufacturer? Found only this 3 years old reddit.

Dumping it from a working SN530 NVMe looks like the way to go ... but how?

aBUGSworstnightmare-rpi commented 2 months ago

honestly speaking that's what I've expected!

There are two packages on the internet which include Firmware for the SN530 devices - one is Dell, the other one Lenovo. Both are fully packaged executable (.exe) where there seems to be no possibility of getting access to the binary file only.

https://download.lenovo.com/pccbbs/mobiles/fwnva68.exe https://dl.dell.com/FOLDER07599485M/1/Western-Digital-Corp-SN530-Solid-State-Drive-Firmware_XTHG0_WIN64_2111.3012_A00.EXE

Although the firmware is marked as read/write I have no idea how to dump it from the drive. nvme-cli seems to not support such action as well (and I have my doubts such 'feature' is supported by the controller at all)

aBUGSworstnightmare-rpi commented 2 months ago

Which USB-C adapter did you use when testing with WD Dashboard? I only have a Realtek RTL9210B based USB 3.0 connectorized board which isn't supported.

twoplan commented 2 months ago

An Icy Box IB-1817M-C31 with JMicron controller.

lsusb
Bus 004 Device 002: ID 152d:0580 JMicron Technology Corp. / JMicron USA Technology Corp. USB 3.1 Storage Device
twoplan commented 2 months ago

In an older unpacked Lenovo folder are 4 firmware files for WD SN520, SN530, SN720 and SN730 NVMe. These have dates from 2019 or 2020 and I don't know which is for the SN530 (21160001.fluf ?)

2277376 Dec 18  2019 10190101.fluf
2588672 Sep  1  2020 11170101.fluf
2121728 Aug 28  2020 20370001.fluf
2588672 Jul  6  2020 21160001.fluf 

The latest Lenovo package from 2024 has two more WD firmware files for unknown NVMe. But the interesting one have still the same name and same old date.

2277376 Dec 18  2019 10190101.fluf
2588672 Sep  1  2020 11170101.fluf
2121728 Aug 28  2020 20370001.fluf
2588672 Jul  6  2020 21160001.fluf
3059712 Nov 29  2023 61560101.fluf
2838528 May 27 10:29 73117101.fluf
aBUGSworstnightmare-rpi commented 2 months ago

21160001 is the firmware of my WDC PC SN530 SDBPMPZ-256G-1101 (the 2242 sized SN530)

You can try it, if it doesn't match you should get some error message.

BUT: USE AT OWN RISK!

P.S. can you share the file here on git?

twoplan commented 2 months ago

On windows you can download and run fwnva68.exe from the Lenovo site ... just choose "unpack" in the dialog instead of "install".

21160001.zip

Tomorrow I will try 21160001.fluf in WD Dashboard.

aBUGSworstnightmare-rpi commented 2 months ago

doesn't look promising:

pi@Pi5-SN530-250:~ $ cd /home/pi/Downloads
pi@Pi5-SN530-250:~/Downloads $ cat /sys/class/nvme/nvme0/model && cat /sys/class/nvme/nvme0/firmware_rev
WDC PC SN530 SDBPNPZ-256G-1114          
21113000

pi@Pi5-SN530-250:~/Downloads $ sudo nvme fw-download -f 21160001.fluf /dev/nvme0
Firmware download success

pi@Pi5-SN530-250:~/Downloads $ sudo nvme fw-commit -s 2 -a 0 /dev/nvme0
NVMe status: Invalid Firmware Image: The firmware image specified for activation is invalid and not loaded by the controller(0x4107)
Multiple Update Detected (MUD) Value: 100665094
Detected an overlapping firmware/boot partition image update command sequence due to processing a command from an Admin SQ on a controller
twoplan commented 2 months ago

Perhaps you could try the cab-file from ArchWiki and fwupd?

Instructions from the readme:

You can install this archive on Linux using fwupd >= 1.0.8 on supported
hardware. Use this command to install:

    fwupdmgr install Lenovo-WD-PCSN530-NVMe-21160001.cab

You can check the version of fwupd using:

    fwupdmgr --version
twoplan commented 2 months ago

Just "updated" the SN530 with firmware 21160001.fluf in WD Dashboard. Nice progress bar and success message!

Dashboard

But the firmware remains at version 21103900.

aBUGSworstnightmare-rpi commented 2 months ago

Perhaps you could try the cab-file from ArchWiki and fwupd?

Instructions from the readme:

You can install this archive on Linux using fwupd >= 1.0.8 on supported
hardware. Use this command to install:

    fwupdmgr install Lenovo-WD-PCSN530-NVMe-21160001.cab

You can check the version of fwupd using:

    fwupdmgr --version

that is not working!

pi@Pi5-SN530-250:~/Downloads $ fwupdmgr install Lenovo-WD-PCSN530-NVMe-21160001.cab
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
Decompressing…           [    \                                  ]
No supported devices found

Trying to flash the firmware binary from the .cab file fails --> the firmware has wrong dependencies

pi@Pi5-SN530-250:~/Downloads $ sudo nvme fw-download -f firmware.bin /dev/nvme0
Firmware download success
pi@Pi5-SN530-250:~/Downloads $ sudo nvme fw-commit -s 2 -a 0 /dev/nvme0
NVMe status: Invalid Firmware Image: The firmware image specified for activation is invalid and not loaded by the controller(0x4107)
Multiple Update Detected (MUD) Value: 100665094
Detected an overlapping firmware/boot partition image update command sequence due to processing a command from an Admin SQ on a controller

As there is no support from WD to be expected I would suggest to buy another NVMe. You can use your SN530 as external storage still. You might still be able to use it 'as is' behind a PCIe switch (pimoroni duo; booting from a drive behind a switch is now supported).

squealteam6 commented 2 months ago

I'm not sure if this helps but I've got an IX SN530 NVMe 256GB, FW:2412T000 (july 27, 2023), m.2 2230.

I'm able to get it to boot, Raspbian using the Pineboard Hat from a complete power down, but if I reset the the boards with the power still connected it will not boot until I power cycle the board.

If there is any data I can provide to might be useful to this topic let me know.

mikegapinski commented 2 months ago

I'm not sure if this helps but I've got an IX SN530 NVMe 256GB, FW:2412T000 (july 27, 2023), m.2 2230.

I'm able to get it to boot, Raspbian using the Pineboard Hat from a complete power down, but if I reset the the boards with the power still connected it will not boot until I power cycle the board.

If there is any data I can provide to might be useful to this topic let me know.

Pineboards HATs made after Jan 2023 (for HatDrive Bottom) and March (for HatDrive! Top) have HAT+ power management that solves the problem you mentioned. The official M.2 HAT+ also works in this case.

The Pi 5 simply disables the buck converter on the HAT when the pi reboots and it restarts the drive. It was needed for Western Digital drives