1 #include <console/console.h>
2 #include <device/device.h>
3 #include <device/pci.h>
4 #include <device/pci_ids.h>
5 #include <device/pci_ops.h>
8 static void pci_init(struct device *dev)
13 /* Clear system errors */
14 word = pci_read_config16(dev, 0x06);
15 word |= 0xf900; /* Clear possible errors */
16 pci_write_config16(dev, 0x06, word);
19 /* System error enable */
20 dword = pci_read_config32(dev, 0x04);
21 dword |= (1<<8); /* SERR# Enable */
22 dword |= (1<<6); /* Parity Error Response */
23 pci_write_config32(dev, 0x04, dword);
26 word = pci_read_config16(dev, 0x1e);
27 word |= 0xf800; /* Clear possible errors */
28 pci_write_config16(dev, 0x1e, word);
31 static struct device_operations pci_ops = {
32 .read_resources = pci_bus_read_resources,
33 .set_resources = pci_dev_set_resources,
34 .enable_resources = pci_bus_enable_resources,
36 .scan_bus = pci_scan_bridge,
40 static const struct pci_driver pci_driver __pci_driver = {
42 .vendor = PCI_VENDOR_ID_INTEL,
43 .device = PCI_DEVICE_ID_INTEL_82801ER_PCI,