Skip to content

Commit eab58d6

Browse files
committed
[servers/pci] Disable PCI setup for 0x8086/0x9d23
This is a known "bad device" in terms of our PCI setup code. Or rather; our PCI setup code breaks with this device, likely because it hasn''t caught up with the last 20 years of development in the PC world. :-) This will do for now; I have verified on the machine in question that we don't reboot on startup when this device is exempt from the PCI setup. Issue for fixing this long-term: #134.
1 parent 4273e7a commit eab58d6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

servers/system/pci/pci.c

+10
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,16 @@ static bool pci_setup_device(pci_device_type *device)
417417
{
418418
uint32_t class;
419419

420+
// SMBus: Intel Corporation Sunrise Point-LP SMBus
421+
// Our (borrowed-from-Linux-ca-1999) PCI probing code causes the machine to reboot on this
422+
// device. This is a stupid workaround for now; since we don't support SMBus this is not
423+
// a big deal but it's still rather silly... Issue about fixing this permanently:
424+
// https://github.com/chaos4ever/chaos/issues/134
425+
if (device->vendor_id == 0x8086 && device->device_id == 0x9d23)
426+
{
427+
return FALSE;
428+
}
429+
420430
// Set the name.
421431
string_print(device->slot_name, "%02x:%02x.%d", device->bus->number,
422432
PCI_SLOT(device->device_function),

0 commit comments

Comments
 (0)