[haiku-development] Problem with sPCIModule->get_nth_pci_info(i, item) in XHCI x86_64

  • From: Fredrik Holmqvist <fredrik.holmqvist@xxxxxxxxx>
  • To: haiku-development <haiku-development@xxxxxxxxxxxxx>
  • Date: Thu, 03 Aug 2017 06:46:05 +0000

I'm trying to look into why XHCI isn't finding hardware on my laptop. So I
added

  dprintf("Scanning for XHCI hardware (%X:%X) %X %X %X\n", item->vendor_id,
item->device_id, item->class_base, item->class_sub, item->class_api);

in the PCI scan loop. This is the result:

KERN: Scanning for XHCI hardware (8086:1237) 6 0 0
KERN: Scanning for XHCI hardware (8086:7000) 6 1 0
KERN: Scanning for XHCI hardware (8086:7010) 1 1 80
KERN: Scanning for XHCI hardware (8086:7020) C 3 0   <-- XHCI controller,
class_api should be 30 not 0
KERN: Scanning for XHCI hardware (8086:7113) 6 80 0
KERN: Scanning for XHCI hardware (15AD:405) 3 0 0
KERN: Scanning for XHCI hardware (8086:100E) 2 0 0

These device ids don't look right to me and class_api is almost always
zero. Here is what I get in Linux:

lspci -n
00:00.0 0600: 8086:0154 (rev 09)
00:01.0 0604: 8086:0151 (rev 09)
00:02.0 0300: 8086:0166 (rev 09)
00:04.0 1180: 8086:0153 (rev 09)
00:14.0 0c03: 8086:1e31 (rev 04) <-- XHCI controller
00:16.0 0780: 8086:1e3a (rev 04)
00:1a.0 0c03: 8086:1e2d (rev 04)
00:1b.0 0403: 8086:1e20 (rev 04)
00:1c.0 0604: 8086:1e10 (rev c4)
00:1c.1 0604: 8086:1e12 (rev c4)
00:1d.0 0c03: 8086:1e26 (rev 04)
00:1f.0 0601: 8086:1e59 (rev 04)
00:1f.2 0106: 8086:1e03 (rev 04)
00:1f.3 0c05: 8086:1e22 (rev 04)
00:1f.6 1180: 8086:1e24 (rev 04)
01:00.0 0302: 10de:1140 (rev ff) <-- Only non Intel device (Nvidia gfx card)
03:00.0 0280: 8086:088e (rev 24)

So what's up?

/Fredrik Holmqvist, TQH

Other related posts: