patch-2.0.7 linux/arch/alpha/kernel/bios32.c
Next file: linux/arch/alpha/kernel/irq.c
Previous file: linux/arch/alpha/defconfig
Back to the patch index
Back to the overall index
- Lines: 72
- Date:
Mon Jul 15 14:22:53 1996
- Orig file:
v2.0.6/linux/arch/alpha/kernel/bios32.c
- Orig date:
Sun Jun 9 13:28:41 1996
diff -u --recursive --new-file v2.0.6/linux/arch/alpha/kernel/bios32.c linux/arch/alpha/kernel/bios32.c
@@ -892,6 +892,62 @@
common_fixup(7, 12, 5, irq_tab, 0);
}
+/*
+ * Fixup configuration for ALPHA XLT (EV5/EV56)
+ *
+ * Summary @ GRU_INT_REQ:
+ * Bit Meaning
+ * 0 Interrupt Line A from slot 2
+ * 1 Interrupt Line B from slot 2
+ * 2 Interrupt Line C from slot 2
+ * 3 Interrupt Line D from slot 2
+ * 4 Interrupt Line A from slot 1
+ * 5 Interrupt line B from slot 1
+ * 6 Interrupt Line C from slot 1
+ * 7 Interrupt Line D from slot 1
+ * 8 Interrupt Line A from slot 0
+ * 9 Interrupt Line B from slot 0
+ *10 Interrupt Line C from slot 0
+ *11 Interrupt Line D from slot 0
+ *12 NCR810 SCSI in slot 9
+ *13 DC-21040 (TULIP) in slot 6
+ *14-19 Reserved
+ *20-23 Jumpers (interrupt)
+ *24-27 Module revision
+ *28-30 Reserved
+ *31 EISA interrupt
+ *
+ * The device to slot mapping looks like:
+ *
+ * Slot Device
+ * 6 TULIP
+ * 7 PCI on board slot 0
+ * 8 none
+ * 9 SCSI
+ * 10 PCI-ISA bridge
+ * 11 PCI on board slot 2
+ * 12 PCI on board slot 1
+ *
+ *
+ * This two layered interrupt approach means that we allocate IRQ 16 and
+ * above for PCI interrupts. The IRQ relates to which bit the interrupt
+ * comes in on. This makes interrupt processing much easier.
+ */
+static inline void xlt_fixup(void)
+{
+ char irq_tab[7][5] = {
+ /*INT INTA INTB INTC INTD */
+ {16+13, 16+13, 16+13, 16+13, 16+13}, /* IdSel 17, TULIP */
+ { 16+8, 16+8, 16+9, 16+10, 16+11}, /* IdSel 18, slot 0 */
+ { -1, -1, -1, -1, -1}, /* IdSel 19, none */
+ {16+12, 16+12, 16+12, 16+12, 16+12}, /* IdSel 20, SCSI */
+ { -1, -1, -1, -1, -1}, /* IdSel 21, SIO */
+ { 16+0, 16+0, 16+1, 16+2, 16+3}, /* IdSel 22, slot 2 */
+ { 16+4, 16+4, 16+5, 16+6, 16+7}, /* IdSel 23, slot 1 */
+ };
+ common_fixup(6, 12, 5, irq_tab, 0);
+}
+
/*
* Fixup configuration for all boards that route the PCI interrupts
@@ -1077,6 +1133,8 @@
mikasa_fixup();
#elif defined(CONFIG_ALPHA_ALCOR)
alcor_fixup();
+#elif defined(CONFIG_ALPHA_XLT)
+ xlt_fixup();
#else
# error You must tell me what kind of platform you want.
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov