Index | Thread | Search

From:
Jan Schreiber <jes@posteo.de>
Subject:
Re: AMD Ryzen 7 PRO 8700GE and Sandisk pcidevs
To:
Jonathan Gray <jsg@jsg.id.au>
Cc:
tech@openbsd.org
Date:
Sat, 10 Aug 2024 09:14:04 +0000

Download raw body.

Thread
On Sat, 10 Aug 2024 18:04:33 +1000
Jonathan Gray <jsg@jsg.id.au> wrote:

> On Sat, Aug 10, 2024 at 06:46:13AM +0000, Jan Schreiber wrote:
> > On Sat, 10 Aug 2024 08:51:14 +1000
> > Jonathan Gray <jsg@jsg.id.au> wrote:
> > 
> > > On Fri, Aug 09, 2024 at 09:51:54PM +0000, Jan Schreiber wrote:
> > > > Hi,
> > > > 
> > > > this diff helps to correctly identify the last unknown devices (AMD and
> > > > SandDisk) from my dmesg output posted here:
> > > > 
> > > > https://dmesgd.nycbug.org/index.cgi?do=view&id=7850
> > > > 
> > > > I couldn't find a "Non-Essential Controller" in pcidevs, so I came up
> > > > with the _NEC suffix.
> > > > The NVMe device id seems to be used for 3 different things - I tried to
> > > > reflect that.
> > > > 
> > > > jan
> > > > 
> > > > diff --git sys/dev/pci/pcidevs sys/dev/pci/pcidevs
> > > > index 789cedbcbab..be185b89f10 100644
> > > > --- sys/dev/pci/pcidevs
> > > > +++ sys/dev/pci/pcidevs
> > > > @@ -833,6 +833,7 @@ product AMD 19_7X_RC                0x14e8  19h/7xh
> > > > Root Complex product AMD 19_7X_IOMMU                0x14e9  19h/7xh
> > > > IOMMU product AMD 19_7X_HB           0x14ea  19h/7xh Host
> > > >  product AMD 19_7X_PCIE_1       0x14eb  19h/7xh PCIE
> > > > +product AMD 19_7X_NEC          0x14ec  19h/7xh Non-Essential Controller
> > > 
> > > The Windows driver calls it "PCI" but it does not show as a ppb:
> > > 
> > > vendor "AMD", unknown product 0x14ec (class instrumentation unknown
> > > subclass 0x00, rev 0x00) at pci5 dev 0 function 0 not configured
> > > 
> > > And was not documented anywhere I could find.
> > > 
> > > Where did you find that name?
> > 
> > First I bootet a Linux machine and took look at the lspci -vvv output:
> > 
> > 05:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc.
> > [AMD] Device 14ec Subsystem: Advanced Micro Devices, Inc. [AMD] Device 14ec
> >         Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
> > Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr-
> > DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- IOMMU group: 23
> > --snip--
> > 
> > Afterwards I checked 
> > https://linux-hardware.org/?view=search&vendorid=1022&deviceid=14ec#list
> > and saw that its used in different machines with that CPU family.
> 
> "Non-Essential Instrumentation" is just the pci class,
> shown in dmesg as "class instrumentation"
> 
> so it still isn't clear what the device is

You are right, its not clear from any of the information I found online.
Leave it open for now or assign a "general" string to it, e.g. PCIE?

I didn't show the pcidump -v output:

6:0:0: AMD unknown
        0x0000: Vendor ID: 1022, Product ID: 14ec
        0x0004: Command: 0000, Status: 0010
        0x0008: Class: 13 Instrumentation, Subclass: 00 (unknown),
                Interface: 00, Revision: 00
        0x000c: BIST: 00, Header Type: 80, Latency Timer: 00,
                Cache Line Size: 10
        0x0010: BAR empty (00000000)
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 1022 Product ID: 14ec
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: ff Min Gnt: 00 Max Lat: 00
        0x0048: Capability 0x09: Vendor Specific
        0x0050: Capability 0x01: Power Management
                State: D0
        0x0064: Capability 0x10: PCI Express
                Max Payload Size: 256 / 256 bytes
                Max Read Request Size: 512 bytes
                Link Speed: 16.0 / 16.0 GT/s
                Link Width: x16 / x16
        0x0100: Enhanced Capability 0x0b: Vendor-Specific
        0x0270: Enhanced Capability 0x19: Secondary PCIe Capability
        0x02a0: Enhanced Capability 0x0d: Access Control Services
        0x0410: Enhanced Capability 0x26: Physical Layer 16.0 GT/s
        0x0450: Enhanced Capability 0x27: Lane Margining at the Receiver

> 
> > 
> > > 
> > > >  product AMD 19_7X_PCIE_2       0x14ed  19h/7xh PCIE
> > > >  product AMD 19_7X_PCIE_3       0x14ee  19h/7xh PCIE
> > > >  product AMD 19_7X_PCIE_4       0x14ef  19h/7xh PCIE
> > > > @@ -8968,6 +8969,7 @@ product SANDISK WDSXXXG3X0C       0x5006  WD Black
> > > > NVMe product SANDISK PCSN530                0x5008  PC SN530
> > > >  product SANDISK SN850          0x5011  SN850
> > > >  product SANDISK PCSN740                0x5015  PC SN740
> > > > +product SANDISK PCSN770                0x5017  WD Black
> > > > SN770/SN740/SN560
> > > 
> > > a string of "PC SN740" is enough, the driver prints various strings as
> > > well
> > 
> > Wouldn't that make it incorrect with the PCSN770 part that also gets
> > reported? Does "WD Black SN770" make more sense with the new id?
> 
> The strings in pcidevs need to be short, they are included with
> space constrained install images.
> 
> as the driver shows the names, pcidevs could just be
> 
> product SANDISK NVME	0x5017	NVMe

Thanks! New diff for only the disk below.

diff --git sys/dev/pci/pcidevs sys/dev/pci/pcidevs
index 789cedbcbab..0d761ed17a4 100644
--- sys/dev/pci/pcidevs
+++ sys/dev/pci/pcidevs
@@ -8968,6 +8968,7 @@ product SANDISK WDSXXXG3X0C       0x5006  WD Black NVMe
 product SANDISK PCSN530                0x5008  PC SN530
 product SANDISK SN850          0x5011  SN850
 product SANDISK PCSN740                0x5015  PC SN740
+product SANDISK NVME           0x5017  NVMe
 
 /* Sangoma products */
 product SANGOMA A10X           0x0300  A10x