diff options
| author | David S. Miller <davem@davemloft.net> | 2008-09-19 18:33:21 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-09-20 00:18:05 -0400 |
| commit | 778b1c65bfa2bfe4018394480f97d387e8f00a91 (patch) | |
| tree | d8c83ee8c31c89cf9cdbc34163c4d284c3801922 | |
| parent | e7913de9285a4e40733cdabbe62b6f1fa3bbdf01 (diff) | |
sparc32: Add more extensive documentation of sun4m interrupts.
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | arch/sparc/kernel/sun4m_irq.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c index c6096fc70c61..ec66d4aab098 100644 --- a/arch/sparc/kernel/sun4m_irq.c +++ b/arch/sparc/kernel/sun4m_irq.c | |||
| @@ -87,6 +87,59 @@ struct sun4m_irq_global __iomem *sun4m_irq_global; | |||
| 87 | #define SUN4M_INT_SBUS(x) (1 << (x+7)) | 87 | #define SUN4M_INT_SBUS(x) (1 << (x+7)) |
| 88 | #define SUN4M_INT_VME(x) (1 << (x)) | 88 | #define SUN4M_INT_VME(x) (1 << (x)) |
| 89 | 89 | ||
| 90 | /* Interrupt level assignment on sun4m: | ||
| 91 | * | ||
| 92 | * level source | ||
| 93 | * ------------------------------------------------------------ | ||
| 94 | * 1 softint-1 | ||
| 95 | * 2 softint-2, VME/SBUS level 1 | ||
| 96 | * 3 softint-3, VME/SBUS level 2 | ||
| 97 | * 4 softint-4, onboard SCSI | ||
| 98 | * 5 softint-5, VME/SBUS level 3 | ||
| 99 | * 6 softint-6, onboard ETHERNET | ||
| 100 | * 7 softint-7, VME/SBUS level 4 | ||
| 101 | * 8 softint-8, onboard VIDEO | ||
| 102 | * 9 softint-9, VME/SBUS level 5, Module Interrupt | ||
| 103 | * 10 softint-10, system counter/timer | ||
| 104 | * 11 softint-11, VME/SBUS level 6, Floppy | ||
| 105 | * 12 softint-12, Keyboard/Mouse, Serial | ||
| 106 | * 13 softint-13, VME/SBUS level 7, ISDN Audio | ||
| 107 | * 14 softint-14, per-processor counter/timer | ||
| 108 | * 15 softint-15, Asynchronous Errors (broadcast) | ||
| 109 | * | ||
| 110 | * Each interrupt source is masked distinctly in the sun4m interrupt | ||
| 111 | * registers. The PIL level alone is therefore ambiguous, since multiple | ||
| 112 | * interrupt sources map to a single PIL. | ||
| 113 | * | ||
| 114 | * This ambiguity is resolved in the 'intr' property for device nodes | ||
| 115 | * in the OF device tree. Each 'intr' property entry is composed of | ||
| 116 | * two 32-bit words. The first word is the IRQ priority value, which | ||
| 117 | * is what we're intersted in. The second word is the IRQ vector, which | ||
| 118 | * is unused. | ||
| 119 | * | ||
| 120 | * The low 4 bits of the IRQ priority indicate the PIL, and the upper | ||
| 121 | * 4 bits indicate onboard vs. SBUS leveled vs. VME leveled. 0x20 | ||
| 122 | * means onboard, 0x30 means SBUS leveled, and 0x40 means VME leveled. | ||
| 123 | * | ||
| 124 | * For example, an 'intr' IRQ priority value of 0x24 is onboard SCSI | ||
| 125 | * whereas a value of 0x33 is SBUS level 2. Here are some sample | ||
| 126 | * 'intr' property IRQ priority values from ss4, ss5, ss10, ss20, and | ||
| 127 | * Tadpole S3 GX systems. | ||
| 128 | * | ||
| 129 | * esp: 0x24 onboard ESP SCSI | ||
| 130 | * le: 0x26 onboard Lance ETHERNET | ||
| 131 | * p9100: 0x32 SBUS level 1 P9100 video | ||
| 132 | * bpp: 0x33 SBUS level 2 BPP parallel port device | ||
| 133 | * DBRI: 0x39 SBUS level 5 DBRI ISDN audio | ||
| 134 | * SUNW,leo: 0x39 SBUS level 5 LEO video | ||
| 135 | * pcmcia: 0x3b SBUS level 6 PCMCIA controller | ||
| 136 | * uctrl: 0x3b SBUS level 6 UCTRL device | ||
| 137 | * modem: 0x3d SBUS level 7 MODEM | ||
| 138 | * zs: 0x2c onboard keyboard/mouse/serial | ||
| 139 | * floppy: 0x2b onboard Floppy | ||
| 140 | * power: 0x22 onboard power device (XXX unknown mask bit XXX) | ||
| 141 | */ | ||
| 142 | |||
| 90 | /* These tables only apply for interrupts greater than 15.. | 143 | /* These tables only apply for interrupts greater than 15.. |
| 91 | * | 144 | * |
| 92 | * any intr value below 0x10 is considered to be a soft-int | 145 | * any intr value below 0x10 is considered to be a soft-int |
