9 #include <linux/kernel.h>
12 #include <linux/pci.h>
13 #include <linux/types.h>
29 unsigned int addr =
mace->pci.error_addr;
39 printk(
"MACEPCI: Master abort at 0x%08x (%c)\n", addr, s);
40 flags &= ~MACEPCI_ERROR_MASTER_ABORT;
43 printk(
"MACEPCI: Target abort at 0x%08x (%c)\n", addr, s);
44 flags &= ~MACEPCI_ERROR_TARGET_ABORT;
47 printk(
"MACEPCI: Data parity error at 0x%08x (%c)\n", addr, s);
48 flags &= ~MACEPCI_ERROR_DATA_PARITY_ERR;
51 printk(
"MACEPCI: Retry error at 0x%08x (%c)\n", addr, s);
52 flags &= ~MACEPCI_ERROR_RETRY_ERR;
55 printk(
"MACEPCI: Illegal command at 0x%08x (%c)\n", addr, s);
56 flags &= ~MACEPCI_ERROR_ILLEGAL_CMD;
59 printk(
"MACEPCI: System error at 0x%08x (%c)\n", addr, s);
60 flags &= ~MACEPCI_ERROR_SYSTEM_ERR;
63 printk(
"MACEPCI: Parity error at 0x%08x (%c)\n", addr, s);
64 flags &= ~MACEPCI_ERROR_PARITY_ERR;
67 printk(
"MACEPCI: Overrun error at 0x%08x (%c)\n", addr, s);
68 flags &= ~MACEPCI_ERROR_OVERRUN;
71 printk(
"MACEPCI: Signaled target abort (clearing)\n");
72 flags &= ~MACEPCI_ERROR_SIG_TABORT;
75 printk(
"MACEPCI: Interrupt test triggered (clearing)\n");
76 flags &= ~MACEPCI_ERROR_INTERRUPT_TEST;
87 static struct resource mace_pci_mem_resource = {
88 .name =
"SGI O2 PCI MEM",
93 static struct resource mace_pci_io_resource = {
94 .name =
"SGI O2 PCI IO",
95 .start = 0x00000000
UL,
99 #define MACE_PCI_MEM_OFFSET 0x200000000
101 static struct resource mace_pci_mem_resource = {
102 .
name =
"SGI O2 PCI MEM",
107 static struct resource mace_pci_io_resource = {
108 .
name =
"SGI O2 PCI IO",
113 #define MACE_PCI_MEM_OFFSET (MACEPCI_LOW_MEMORY - 0x80000000)
117 .mem_resource = &mace_pci_mem_resource,
118 .io_resource = &mace_pci_io_resource,
125 static int __init mace_init(
void)
130 mace->pci.error_addr = 0;
132 mace->pci.control = 0xff008500;
137 "MACE PCI error",
NULL));