Skip to content

Commit

Permalink
[servers/pci] Disable PCI setup for 0x8086/0x9d23
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
perlun committed Oct 26, 2018
1 parent 4273e7a commit eab58d6
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions servers/system/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,16 @@ static bool pci_setup_device(pci_device_type *device)
{
uint32_t class;

// SMBus: Intel Corporation Sunrise Point-LP SMBus
// Our (borrowed-from-Linux-ca-1999) PCI probing code causes the machine to reboot on this
// device. This is a stupid workaround for now; since we don't support SMBus this is not
// a big deal but it's still rather silly... Issue about fixing this permanently:
// https://github.com/chaos4ever/chaos/issues/134
if (device->vendor_id == 0x8086 && device->device_id == 0x9d23)
{
return FALSE;
}

// Set the name.
string_print(device->slot_name, "%02x:%02x.%d", device->bus->number,
PCI_SLOT(device->device_function),
Expand Down

0 comments on commit eab58d6

Please sign in to comment.