On 8/16/22 05:22, Jonathan Gray wrote:
On Sun, Aug 14, 2022 at 04:03:59PM +0200, Andreas Bartelt wrote:
Hi,
Intel Optane 905p NVMe devices were not yet recognized in CURRENT (e.g.,
https://ark.intel.com/content/www/us/en/ark/products/148607/intel-optane-ssd-905p-series-380gb-m-2-110mm-pcie-x4-20nm-3d-xpoint.html
).
I've managed to get it working with the following diff:
Index: pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.2000
diff -u -p -u -p -r1.2000 pcidevs
--- pcidevs 2 Aug 2022 05:35:01 -0000 1.2000
+++ pcidevs 14 Aug 2022 13:46:32 -0000
@@ -4623,6 +4623,7 @@ product INTEL 6321ESB_ACM 0x2699 6321ESB
product INTEL 6321ESB_HDA 0x269a 6321ESB HD Audio
product INTEL 6321ESB_SMB 0x269b 6321ESB SMBus
product INTEL 6321ESB_IDE 0x269e 6321ESB IDE
+product INTEL NVME_6 0x2700 Optane 900P/905P NVMe
product INTEL WL_22500_1 0x2723 Wi-Fi 6 AX200
product INTEL WL_22500_9 0x2725 Wi-Fi 6 AX210
product INTEL WL_22500_10 0x2726 Wi-Fi 6 AX211
Index: pcidevs.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs.h,v
retrieving revision 1.1994
diff -u -p -u -p -r1.1994 pcidevs.h
--- pcidevs.h 2 Aug 2022 05:35:34 -0000 1.1994
+++ pcidevs.h 14 Aug 2022 13:48:44 -0000
@@ -4628,6 +4628,7 @@
#define PCI_PRODUCT_INTEL_6321ESB_HDA 0x269a /* 6321ESB HD
Audio */
#define PCI_PRODUCT_INTEL_6321ESB_SMB 0x269b /* 6321ESB
SMBus */
#define PCI_PRODUCT_INTEL_6321ESB_IDE 0x269e /* 6321ESB IDE
*/
+#define PCI_PRODUCT_INTEL_NVME_6 0x2700 /* Optane 900P/905P
NVMe */
#define PCI_PRODUCT_INTEL_WL_22500_1 0x2723 /* Wi-Fi 6
AX200 */
#define PCI_PRODUCT_INTEL_WL_22500_9 0x2725 /* Wi-Fi 6
AX210 */
#define PCI_PRODUCT_INTEL_WL_22500_10 0x2726 /* Wi-Fi 6
AX211 */
Index: pcidevs_data.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs_data.h,v
retrieving revision 1.1989
diff -u -p -u -p -r1.1989 pcidevs_data.h
--- pcidevs_data.h 2 Aug 2022 05:35:34 -0000 1.1989
+++ pcidevs_data.h 14 Aug 2022 13:49:55 -0000
@@ -15888,6 +15888,10 @@ static const struct pci_known_product pc
"6321ESB IDE",
},
{
+ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_NVME_6,
+ "Optane 900P/905P NVMe",
+ },
+ {
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_1,
"Wi-Fi 6 AX200",
},
I've also noticed the following in nvme_pci.c which seems to be related to
some kind of Intel Optane device:
81 static const struct pci_matchid nvme_msi_blacklist[] = {
82 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE },
83 };
It is unclear to me if this is also relevant for the Optane 900P/905P
series, i.e., should the line "{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_NVME_6
}," also be added there? [didn't notice any problems yet without having the
device included there...]
The affected parts of dmesg after applying the patch:
nvme1 at pci4 dev 0 function 0 "Intel Optane 900P/905P NVMe" rev 0x00: msix,
NVMe 1.0
nvme1: INTEL SSDPEL1D380GA, firmware E2010603, serial PHMC93620015380A
scsibus3 at nvme1: 2 targets, initiator 0
sd1 at scsibus3 targ 1 lun 0: <NVMe, INTEL SSDPEL1D38, E201>
sd1: 362476MB, 512 bytes/sector, 742352688 sectors
Intel's windows driver uses
PCI\VEN_8086&DEV_F1A6.DeviceDesc = "Intel(R) SSD Pro 7600p/760p/E 6100p Series"
PCI\VEN_8086&DEV_F1A8.DeviceDesc = "Intel(R) SSD 660p Series"
PCI\VEN_8086&DEV_FAF0.DeviceDesc = "Intel(R) SSD 665p Series"
PCI\VEN_8086&DEV_0953.DeviceDesc = "Intel(R) Solid-State Drive
P3700/P3600/P3500/P3520/750 Series"
PCI\VEN_8086&DEV_0A53.DeviceDesc = "Intel(R) Solid-State Drive DC P3520 Series"
PCI\VEN_8086&DEV_0A54.DeviceDesc = "Intel(R) SSD DC
P4500/4600/4501/4601/4608/4510/4610/4511 Series"
PCI\VEN_8086&DEV_0A55.DeviceDesc = "Intel(R) SSD DC P4600 Series"
PCI\VEN_8086&DEV_2700.DeviceDesc = "Intel(R) Optane(tm) SSD 900P/905P Series"
PCI\VEN_8086&DEV_2701.DeviceDesc = "Intel(R) Optane(tm) SSD DC P4800X Series"
PCI\VEN_8086&DEV_0B60.DeviceDesc = "Intel(R) SSD D7-P5500/P5600 Series"
PCI\VEN_8086&DEV_4140.DeviceDesc = "Intel(R) Optane(tm) SSD DC P5800X Series"
PCI\VEN_8086&DEV_2525.DeviceDesc = "Intel(R) SSD P1600X Series"
900P/905P are referred to as "Intel Optane SSD 9 Series" on
https://ark.intel.com/content/www/us/en/ark/products/series/213701/intel-optane-ssd-9-series.html
Index: sys/dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.2000
diff -u -p -r1.2000 pcidevs
--- sys/dev/pci/pcidevs 2 Aug 2022 05:35:01 -0000 1.2000
+++ sys/dev/pci/pcidevs 16 Aug 2022 03:09:20 -0000
@@ -4473,7 +4473,7 @@ product INTEL WL_3168_1 0x24fb Dual Ban
product INTEL WL_8265_1 0x24fd Dual Band Wireless-AC 8265
product INTEL 82820_HB 0x2501 82820 Host
product INTEL 82820_AGP 0x250f 82820 AGP
-product INTEL OPTANE 0x2522 Optane
+product INTEL OPTANE_P1600X 0x2522 Optane P1600X
product INTEL WL_9260_1 0x2526 Dual Band Wireless-AC 9260
product INTEL 82850_HB 0x2530 82850 Host
product INTEL 82860_HB 0x2531 82860 Host
@@ -4623,6 +4623,7 @@ product INTEL 6321ESB_ACM 0x2699 6321ESB
product INTEL 6321ESB_HDA 0x269a 6321ESB HD Audio
product INTEL 6321ESB_SMB 0x269b 6321ESB SMBus
product INTEL 6321ESB_IDE 0x269e 6321ESB IDE
+product INTEL OPTANE_9 0x2700 Optane 9
product INTEL WL_22500_1 0x2723 Wi-Fi 6 AX200
product INTEL WL_22500_9 0x2725 Wi-Fi 6 AX210
product INTEL WL_22500_10 0x2726 Wi-Fi 6 AX211
Index: sys/dev/pci/nvme_pci.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/nvme_pci.c,v
retrieving revision 1.10
diff -u -p -r1.10 nvme_pci.c
--- sys/dev/pci/nvme_pci.c 11 Mar 2022 18:00:51 -0000 1.10
+++ sys/dev/pci/nvme_pci.c 16 Aug 2022 03:10:11 -0000
@@ -79,7 +79,7 @@ nvme_pci_match(struct device *parent, vo
}
static const struct pci_matchid nvme_msi_blacklist[] = {
- { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE },
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE_P1600X },
};
void
Renaming Intel product with ID 0x2700 to Optane 9 looks good to me and
works as expected.
However, it looks to me like there's an ID mismatch w.r.t. 0x2522 /
P1600X in the diff since, according to the Windows driver info from
above, P1600X should be 0x2525 instead. The timelines also don't match
since the P1600X product seems to be quite recent from 02/2021 while the
rev. 1.6 commit in nvme_pci.c is from 07/2017. I have no idea what
0x2522 refers to.
Could you please commit the Optane 9 part?
Best regards
Andreas