nvme on 2019 macbooks

From: Yuri Pankov <ypankov_at_fastmail.com>
Date: Wed, 29 Apr 2020 20:43:26 +0300
I have tried booting latest -current snapshot on 2019 macbook pro 16, 
and noticed that nvme driver didn't attach, as class reported is 
0x018002 and not 0x010802 that we expect in nvme_pci.c.

The following linux changes seem to be related:
https://github.com/torvalds/linux/commit/66341331ba0d2de4ff421cdc401a1e34de50502a
https://github.com/torvalds/linux/commit/d38e9f04ebf667d9cb8185b45bff747485f1d3e9

I have tried adding the exact PCI IDs, but that also fails as number of 
msix vectors seems to be 0 in nvme_ctrlr_setup_interrupts() and 
nvme_ctrlr_configure_intx() fails with "unable to allocate shared IRQ".

Any hints on how to proceed here?

pciconf excerpt:
none7_at_pci0:4:0:0:	class=0x018002 rev=0x01 hdr=0x00 vendor=0x106b 
device=0x2005 subvendor=0x106b subdevice=0x1800
     vendor	= "Apple Inc."
     device	= "ANS2 NVMe Controller"
     class	= mass storage
     bar	[10]	= type Prefetchable Memory, range 64, base 0xc0400000, 
size 419304, enabled
     bar	[18]	= type Prefetchable Memory, range 64, base 0xc1400000, 
size 524288, enabled
     bar	[20]	= type Prefetchable Memory, range 64, base 0xc1600000, 
size 65536, enabled
     cap 01[40]	= powerspec 3  supports D0 D3  current D0
     cap 05[50]	= MSI supports 8 messages, 64 bit
     cap 10[70]	= PCI-Express 2 endpoint max data 256(256) RO NS
		  link x4(x4) speed 8.0(8.0) ASPM L1(L1) ClockPM enabled
     ecap 0001[100] = AER 2 0 fatal 0 non-fatal 1 corrected
     ecap 0019[148] = PCIe Sec 1 lane errors 0
     ecap 0018[168] = LTR 1
     ecap 001e[170] = L1 PM Substated 1
     ecap 000b[180] = Vendor [1] ID 0002 Rev 1 Length 256
     ecap 0015[280] = Resizable BAR 1
Received on Wed Apr 29 2020 - 15:43:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:23 UTC