On 2019/11/27 15:59, Bobby Johnson wrote:
> Hello,
>
> Attempting to install OpenBSD on the Lenovo C930, Kaby Lake laptop.
> When booting I only see the entry point at line and then it restarts.
> It does this with a very recent snapshot on bsd.rd and bsd, booting
> from a usb drive.
As well as Stefan's suggestion of legacy PXE, maybe try 6.6 or 6.5 as well
instead of the very recent snapshot?
> I found the NVME wasn't in the pcidevs. The vendor also wasn't
> listed, HYNIX, 0x151c. I added the vendor and and device id for the
> card, regenerated the pcidevs.h and pcidevs_data.h and recompiled.
> Is that all that's necessary to get a new nvme to attach? Anything
> else I could look into to get it booting?
Kernel drivers attach much later than the "entry point", even if the
NVME isn't being picked up, that wouldn't make it restart here.
> Below is what I added to pcidevs
>
> vendor HYNIX 0x1c5c Hynix
> product HYNIX NVME1 0x1527 NVMe
>
> Bobby
>
NVME normally attaches by device subclass/interface, this code in
nvme_pci_match() in sys/dev/pci/nvme_pci.c:
if (PCI_CLASS(pa->pa_class) == PCI_CLASS_MASS_STORAGE &&
PCI_SUBCLASS(pa->pa_class) == PCI_SUBCLASS_MASS_STORAGE_NVM &&
PCI_INTERFACE(pa->pa_class) == NVME_PCI_INTERFACE)
return (1);
If the class/subclass/interface match then there's no need to look at
vendor/device id. Currently the driver has a special attachment for some
Apple device ids. It's very unlikely that your device needs any change,
but if it did then you'd add it alongside the Apple ones (as well as
updating pcidevs).
FWIW here's a pcidump -v example of a device which already matches:
5:0:0: Samsung SM961/PM961 NVMe
0x0000: Vendor ID: 144d, Product ID: a804
0x0004: Command: 0006, Status: 0010
0x0008: Class: 01 Mass Storage, Subclass: 08 NVM,
Interface: 02, Revision: 00
or this in lspci -v
05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD
Controller SM961/PM961 (prog-if 02 [NVM Express])
There's no dev/vendor match for this but still:
nvme0 at pci5 dev 0 function 0 "Samsung SM961/PM961 NVMe" rev 0x00: msix, NVMe
1.2
nvme0: SAMSUNG MZVLW256HEHP-000L7, firmware 4L7QCXB7, serial S35ENX0J765205
scsibus1 at nvme0: 2 targets, initiator 0