Problems with port of NVMe support

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Sep 13 06:02:43 UTC 2019


Hello,

I port currently the NVMe support from FreeBSD to RTEMS. Basically, it 
works. I can issue administration commands and some IO commands (e.g. 
FLUSH). I use this SSD for testing:

$ nvmecontrol identify nvme0
Controller Capabilities/Features
================================
Vendor ID:                   8086
Subsystem Vendor ID:         8086
Serial Number:               PHM27390006S280AGN
Model Number:                INTEL SSDPE21D280GA
Firmware Version:            E2010325
Recommended Arb Burst:       0
IEEE OUI Identifier:         e4 d2 5c
Multi-Path I/O Capabilities: Not Supported
Max Data Transfer Size:      131072
Controller ID:               0x0000
Version:                     0.0.0

My problem is now, that every WRITE transfer ends up in a DATA TRANSFER 
ERROR:

nvme0: WRITE sqid:1 cid:127 nsid:1 lba:0 len:8
nvme0: DATA TRANSFER ERROR (00/04) sqid:1 cid:127 cdw0:0
nvme0: async event occurred (type 0x0, info 0x04, page 0x01)

Every READ transfer ends up in a UNRECOVERED READ ERROR:

nvme0: READ sqid:1 cid:127 nsid:1 lba:0 len:8
nvme0: UNRECOVERED READ ERROR (02/81) sqid:1 cid:127 cdw0:0
nvme0: async event occurred (type 0x0, info 0x04, page 0x01)

I see the transfers in the error log:

$ nvmecontrol logpage -p 1 nvme0 
 

Error Information Log 
 

===================== 
 

Entry 01 
 

========= 
 

  Error count:          2546 
 

  Submission queue ID:  1 
 

  Command ID:           32512 
 

  Status: 
 

   Phase tag:           0 
 

   Status code:         129 
 

   Status code type:    2 
 

   More:                1 
 

   DNR:                 1 
 

  Error location:       0 
 

  LBA:                  0 
 

  Namespace ID:         1 
 

  Vendor specific info: 0 
 

  Transport type:       0 
 

  Command specific info:0 
 

  Transport specific:   0 
 

Entry 02 
 

========= 
 

  Error count:          2545 
 

  Submission queue ID:  1 
 

  Command ID:           32512 
 

  Status: 
 

   Phase tag:           0 
 

   Status code:         4 
 

   Status code type:    0 
 

   More:                1 
 

   DNR:                 1 
 

  Error location:       0 
 

  LBA:                  0 
 

  Namespace ID:         1 
 

  Vendor specific info: 0 
 

  Transport type:       0 
 

  Command specific info:0 
 

  Transport specific:   0

 From the NVMe specification I didn't get any hints what the error 
reason could be. Maybe someone has a hint for me. The platform is a 
T4240 PowerPC (big-endian).

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the freebsd-hackers mailing list