aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 16:32:21 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 16:32:21 -0500
commit89de09a9ba9ce293228b1f1aa3c68b5af33a70ce (patch)
treea322cc361f13dade2aa84ace8c9278d86e459640 /include
parentdad2ad82c5f058367df79de022bd12d36afcd065 (diff)
parentf6db449ca312d33045907337b68de1f647cf0730 (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/arch-realview/entry-macro.S14
-rw-r--r--include/asm-arm/arch-realview/platform.h56
-rw-r--r--include/asm-arm/arch-realview/smp.h31
-rw-r--r--include/asm-arm/hardware/arm_scu.h13
4 files changed, 114 insertions, 0 deletions
diff --git a/include/asm-arm/arch-realview/entry-macro.S b/include/asm-arm/arch-realview/entry-macro.S
index 2712ba77bb3a..4df469bf42e2 100644
--- a/include/asm-arm/arch-realview/entry-macro.S
+++ b/include/asm-arm/arch-realview/entry-macro.S
@@ -47,3 +47,17 @@
47 cmpcs \irqnr, \irqnr 47 cmpcs \irqnr, \irqnr
48 48
49 .endm 49 .endm
50
51 /* We assume that irqstat (the raw value of the IRQ acknowledge
52 * register) is preserved from the macro above.
53 * If there is an IPI, we immediately signal end of interrupt on the
54 * controller, since this requires the original irqstat value which
55 * we won't easily be able to recreate later.
56 */
57
58 .macro test_for_ipi, irqnr, irqstat, base, tmp
59 bic \irqnr, \irqstat, #0x1c00
60 cmp \irqnr, #16
61 strcc \irqstat, [\base, #GIC_CPU_EOI]
62 cmpcs \irqnr, \irqnr
63 .endm
diff --git a/include/asm-arm/arch-realview/platform.h b/include/asm-arm/arch-realview/platform.h
index 4b6de13a6b9a..aef9b36b3c37 100644
--- a/include/asm-arm/arch-realview/platform.h
+++ b/include/asm-arm/arch-realview/platform.h
@@ -203,8 +203,14 @@
203 /* Reserved 0x1001A000 - 0x1001FFFF */ 203 /* Reserved 0x1001A000 - 0x1001FFFF */
204#define REALVIEW_CLCD_BASE 0x10020000 /* CLCD */ 204#define REALVIEW_CLCD_BASE 0x10020000 /* CLCD */
205#define REALVIEW_DMAC_BASE 0x10030000 /* DMA controller */ 205#define REALVIEW_DMAC_BASE 0x10030000 /* DMA controller */
206#ifndef CONFIG_REALVIEW_MPCORE
206#define REALVIEW_GIC_CPU_BASE 0x10040000 /* Generic interrupt controller CPU interface */ 207#define REALVIEW_GIC_CPU_BASE 0x10040000 /* Generic interrupt controller CPU interface */
207#define REALVIEW_GIC_DIST_BASE 0x10041000 /* Generic interrupt controller distributor */ 208#define REALVIEW_GIC_DIST_BASE 0x10041000 /* Generic interrupt controller distributor */
209#else
210#define REALVIEW_MPCORE_SCU_BASE 0x10100000 /* SCU registers */
211#define REALVIEW_GIC_CPU_BASE 0x10100100 /* Generic interrupt controller CPU interface */
212#define REALVIEW_GIC_DIST_BASE 0x10101000 /* Generic interrupt controller distributor */
213#endif
208#define REALVIEW_SMC_BASE 0x10080000 /* SMC */ 214#define REALVIEW_SMC_BASE 0x10080000 /* SMC */
209 /* Reserved 0x10090000 - 0x100EFFFF */ 215 /* Reserved 0x10090000 - 0x100EFFFF */
210 216
@@ -265,6 +271,7 @@
265 * Interrupts - bit assignment (primary) 271 * Interrupts - bit assignment (primary)
266 * ------------------------------------------------------------------------ 272 * ------------------------------------------------------------------------
267 */ 273 */
274#ifndef CONFIG_REALVIEW_MPCORE
268#define INT_WDOGINT 0 /* Watchdog timer */ 275#define INT_WDOGINT 0 /* Watchdog timer */
269#define INT_SOFTINT 1 /* Software interrupt */ 276#define INT_SOFTINT 1 /* Software interrupt */
270#define INT_COMMRx 2 /* Debug Comm Rx interrupt */ 277#define INT_COMMRx 2 /* Debug Comm Rx interrupt */
@@ -297,6 +304,55 @@
297#define INT_USB 29 /* USB controller */ 304#define INT_USB 29 /* USB controller */
298#define INT_TSPENINT 30 /* Touchscreen pen */ 305#define INT_TSPENINT 30 /* Touchscreen pen */
299#define INT_TSKPADINT 31 /* Touchscreen keypad */ 306#define INT_TSKPADINT 31 /* Touchscreen keypad */
307#else
308#define INT_LOCALTIMER 29
309#define INT_LOCALWDOG 30
310
311#define INT_AACI 0
312#define INT_TIMERINT0_1 1
313#define INT_TIMERINT2_3 2
314#define INT_USB 3
315#define INT_UARTINT0 4
316#define INT_UARTINT1 5
317#define INT_RTCINT 6
318#define INT_KMI0 7
319#define INT_KMI1 8
320#define INT_ETH 9
321#define INT_EB_IRQ1 10 /* main GIC */
322#define INT_EB_IRQ2 11 /* tile GIC */
323#define INT_EB_FIQ1 12 /* main GIC */
324#define INT_EB_FIQ2 13 /* tile GIC */
325#define INT_MMCI0A 14
326#define INT_MMCI0B 15
327
328#define INT_PMU_CPU0 17
329#define INT_PMU_CPU1 18
330#define INT_PMU_CPU2 19
331#define INT_PMU_CPU3 20
332#define INT_PMU_SCU0 21
333#define INT_PMU_SCU1 22
334#define INT_PMU_SCU2 23
335#define INT_PMU_SCU3 24
336#define INT_PMU_SCU4 25
337#define INT_PMU_SCU5 26
338#define INT_PMU_SCU6 27
339#define INT_PMU_SCU7 28
340
341#define INT_L220_EVENT 29
342#define INT_L220_SLAVE 30
343#define INT_L220_DECODE 31
344
345#define INT_UARTINT2 -1
346#define INT_UARTINT3 -1
347#define INT_CLCDINT -1
348#define INT_DMAINT -1
349#define INT_WDOGINT -1
350#define INT_GPIOINT0 -1
351#define INT_GPIOINT1 -1
352#define INT_GPIOINT2 -1
353#define INT_SCIINT -1
354#define INT_SSPINT -1
355#endif
300 356
301/* 357/*
302 * Interrupt bit positions 358 * Interrupt bit positions
diff --git a/include/asm-arm/arch-realview/smp.h b/include/asm-arm/arch-realview/smp.h
new file mode 100644
index 000000000000..fc87783e8e8b
--- /dev/null
+++ b/include/asm-arm/arch-realview/smp.h
@@ -0,0 +1,31 @@
1#ifndef ASMARM_ARCH_SMP_H
2#define ASMARM_ARCH_SMP_H
3
4#include <linux/config.h>
5
6#include <asm/hardware/gic.h>
7
8#define hard_smp_processor_id() \
9 ({ \
10 unsigned int cpunum; \
11 __asm__("mrc p15, 0, %0, c0, c0, 5" \
12 : "=r" (cpunum)); \
13 cpunum &= 0x0F; \
14 })
15
16/*
17 * We use IRQ1 as the IPI
18 */
19static inline void smp_cross_call(cpumask_t callmap)
20{
21 gic_raise_softirq(callmap, 1);
22}
23
24/*
25 * Do nothing on MPcore.
26 */
27static inline void smp_cross_call_done(cpumask_t callmap)
28{
29}
30
31#endif
diff --git a/include/asm-arm/hardware/arm_scu.h b/include/asm-arm/hardware/arm_scu.h
new file mode 100644
index 000000000000..9903f60c84b7
--- /dev/null
+++ b/include/asm-arm/hardware/arm_scu.h
@@ -0,0 +1,13 @@
1#ifndef ASMARM_HARDWARE_ARM_SCU_H
2#define ASMARM_HARDWARE_ARM_SCU_H
3
4/*
5 * SCU registers
6 */
7#define SCU_CTRL 0x00
8#define SCU_CONFIG 0x04
9#define SCU_CPU_STATUS 0x08
10#define SCU_INVALIDATE 0x0c
11#define SCU_FPGA_REVISION 0x10
12
13#endif