| 122 | | smp_write_intsrc(mc, mp_ExtINT, |
| 123 | | MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, |
| 124 | | 0x0, apicid_sb600, 0x0); |
| 125 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 126 | | bus_isa, 0x1, apicid_sb600, 0x1); |
| 127 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 128 | | bus_isa, 0x0, apicid_sb600, 0x2); |
| 129 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 130 | | bus_isa, 0x3, apicid_sb600, 0x3); |
| 131 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 132 | | bus_isa, 0x4, apicid_sb600, 0x4); |
| 133 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 134 | | bus_isa, 0x6, apicid_sb600, 0x6); |
| 135 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 136 | | bus_isa, 0x7, apicid_sb600, 0x7); |
| 137 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 138 | | bus_isa, 0xc, apicid_sb600, 0xc); |
| 139 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 140 | | bus_isa, 0xd, apicid_sb600, 0xd); |
| 141 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |
| 142 | | bus_isa, 0xe, apicid_sb600, 0xe); |
| | 121 | #define IO_LOCAL_INT(type, intr, apicid, pin) \ |
| | 122 | smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); |
| | 123 | |
| | 124 | IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); |
| | 125 | |
| | 126 | /* ISA ints are edge-triggered, and usually originate from the ISA bus, |
| | 127 | * or its remainings. |
| | 128 | */ |
| | 129 | #define ISA_INT(intr, pin) \ |
| | 130 | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, (intr), apicid_sb600, (pin)) |
| | 131 | |
| | 132 | ISA_INT(0x1, 0x1); |
| | 133 | ISA_INT(0x0, 0x2); |
| | 134 | ISA_INT(0x3, 0x3); |
| | 135 | ISA_INT(0x4, 0x4); |
| | 136 | ISA_INT(0x6, 0x6); |
| | 137 | ISA_INT(0x7, 0x7); |
| | 138 | ISA_INT(0xc, 0xc); |
| | 139 | ISA_INT(0xd, 0xd); |
| | 140 | ISA_INT(0xe, 0xe); |
| | 141 | |
| | 142 | /* PCI interrupts are level triggered, and are |
| | 143 | * associated with a specific bus/device/function tuple. |
| | 144 | */ |
| | 145 | #define PCI_INT(bus, dev, fn, pin) \ |
| | 146 | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, (bus), (((dev)<<2)|(fn)), apicid_sb600, (pin)) |
| 145 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 146 | | 0, 19 << 2 | 0, apicid_sb600, 0x10); |
| 147 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 148 | | 0, 19 << 2 | 1, apicid_sb600, 0x11); |
| 149 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 150 | | 0, 19 << 2 | 2, apicid_sb600, 0x12); |
| 151 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 152 | | 0, 19 << 2 | 3, apicid_sb600, 0x13); |
| | 149 | PCI_INT(0x0, 0x13, 0x0, 0x10); |
| | 150 | PCI_INT(0x0, 0x13, 0x1, 0x11); |
| | 151 | PCI_INT(0x0, 0x13, 0x2, 0x12); |
| | 152 | PCI_INT(0x0, 0x13, 0x3, 0x13); |
| 163 | | i = 2; |
| 164 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 165 | | bus_rs690[1], 0x5 << 2 | 0, apicid_sb600, 18); |
| 166 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 167 | | bus_rs690[1], 0x5 << 2 | 1, apicid_sb600, 19); |
| 168 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 169 | | bus_rs690[2], 0x0 << 2 | 0, apicid_sb600, 18); |
| 170 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 171 | | bus_rs690[3], 0x0 << 2 | 0, apicid_sb600, 19); |
| 172 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 173 | | bus_rs690[4], 0x0 << 2 | 0, apicid_sb600, 16); |
| 174 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 175 | | bus_rs690[5], 0x0 << 2 | 0, apicid_sb600, 17); |
| 176 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 177 | | bus_rs690[6], 0x0 << 2 | 0, apicid_sb600, 18); |
| 178 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 179 | | bus_rs690[7], 0x0 << 2 | 0, apicid_sb600, 19); |
| | 161 | PCI_INT(bus_rs690[1], 0x5, 0x0, 0x12); |
| | 162 | PCI_INT(bus_rs690[1], 0x5, 0x1, 0x13); |
| | 163 | PCI_INT(bus_rs690[2], 0x0, 0x0, 0x12); |
| | 164 | PCI_INT(bus_rs690[3], 0x0, 0x0, 0x13); |
| | 165 | PCI_INT(bus_rs690[4], 0x0, 0x0, 0x10); |
| | 166 | PCI_INT(bus_rs690[5], 0x0, 0x0, 0x11); |
| | 167 | PCI_INT(bus_rs690[6], 0x0, 0x0, 0x12); |
| | 168 | PCI_INT(bus_rs690[7], 0x0, 0x0, 0x13); |
| 185 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 186 | | bus_sb600[1], 5 << 2 | 0, apicid_sb600, 20); |
| 187 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 188 | | bus_sb600[1], 5 << 2 | 1, apicid_sb600, 21); |
| 189 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 190 | | bus_sb600[1], 5 << 2 | 2, apicid_sb600, 22); |
| 191 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 192 | | bus_sb600[1], 5 << 2 | 3, apicid_sb600, 23); |
| | 172 | PCI_INT(bus_sb600[1], 0x5, 0x0, 0x14); |
| | 173 | PCI_INT(bus_sb600[1], 0x5, 0x1, 0x15); |
| | 174 | PCI_INT(bus_sb600[1], 0x5, 0x2, 0x16); |
| | 175 | PCI_INT(bus_sb600[1], 0x5, 0x3, 0x17); |
| 195 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 196 | | bus_sb600[1], 6 << 2 | 0, apicid_sb600, 21); |
| 197 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 198 | | bus_sb600[1], 6 << 2 | 1, apicid_sb600, 22); |
| 199 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 200 | | bus_sb600[1], 6 << 2 | 2, apicid_sb600, 23); |
| 201 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 202 | | bus_sb600[1], 6 << 2 | 3, apicid_sb600, 20); |
| | 178 | PCI_INT(bus_sb600[1], 0x6, 0x0, 0x15); |
| | 179 | PCI_INT(bus_sb600[1], 0x6, 0x1, 0x16); |
| | 180 | PCI_INT(bus_sb600[1], 0x6, 0x2, 0x17); |
| | 181 | PCI_INT(bus_sb600[1], 0x6, 0x3, 0x14); |
| 205 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 206 | | bus_sb600[1], 7 << 2 | 0, apicid_sb600, 22); |
| 207 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 208 | | bus_sb600[1], 7 << 2 | 1, apicid_sb600, 23); |
| 209 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 210 | | bus_sb600[1], 7 << 2 | 2, apicid_sb600, 20); |
| 211 | | smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, |
| 212 | | bus_sb600[1], 7 << 2 | 3, apicid_sb600, 21); |
| | 184 | PCI_INT(bus_sb600[1], 0x7, 0x0, 0x16); |
| | 185 | PCI_INT(bus_sb600[1], 0x7, 0x1, 0x17); |
| | 186 | PCI_INT(bus_sb600[1], 0x7, 0x2, 0x14); |
| | 187 | PCI_INT(bus_sb600[1], 0x7, 0x3, 0x15); |