diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-04-28 11:22:00 -0400 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-06-09 03:33:59 -0400 |
commit | 39e1d4c18f34190c739f765ae56bfaa9cbbc6fdb (patch) | |
tree | fda67a3e47370f2f4a118b587c33b86b15a231fd /arch/arm/plat-omap | |
parent | 367cd31ee0cbc948fe3b83960b1dbf931e2eaa90 (diff) |
ARM: OMAP4: SMP: Add mpu timer support for OMAP4430
This patch adds SMP platform specific parts for local(mpu) timer support
for OMAP4430 platform. Each Cortex-a9 core has it's own local timer in the
MPU domain. These timers are not in wakeup domain.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/include/mach/entry-macro.S | 28 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/irqs.h | 2 |
2 files changed, 30 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/mach/entry-macro.S b/arch/arm/plat-omap/include/mach/entry-macro.S index 00f45c01390d..56426ed45ef4 100644 --- a/arch/arm/plat-omap/include/mach/entry-macro.S +++ b/arch/arm/plat-omap/include/mach/entry-macro.S | |||
@@ -136,6 +136,34 @@ | |||
136 | cmpne \irqnr, \tmp | 136 | cmpne \irqnr, \tmp |
137 | cmpcs \irqnr, \irqnr | 137 | cmpcs \irqnr, \irqnr |
138 | .endm | 138 | .endm |
139 | |||
140 | /* We assume that irqstat (the raw value of the IRQ acknowledge | ||
141 | * register) is preserved from the macro above. | ||
142 | * If there is an IPI, we immediately signal end of interrupt | ||
143 | * on the controller, since this requires the original irqstat | ||
144 | * value which we won't easily be able to recreate later. | ||
145 | */ | ||
146 | |||
147 | .macro test_for_ipi, irqnr, irqstat, base, tmp | ||
148 | bic \irqnr, \irqstat, #0x1c00 | ||
149 | cmp \irqnr, #16 | ||
150 | it cc | ||
151 | strcc \irqstat, [\base, #GIC_CPU_EOI] | ||
152 | it cs | ||
153 | cmpcs \irqnr, \irqnr | ||
154 | .endm | ||
155 | |||
156 | /* As above, this assumes that irqstat and base are preserved */ | ||
157 | |||
158 | .macro test_for_ltirq, irqnr, irqstat, base, tmp | ||
159 | bic \irqnr, \irqstat, #0x1c00 | ||
160 | mov \tmp, #0 | ||
161 | cmp \irqnr, #29 | ||
162 | itt eq | ||
163 | moveq \tmp, #1 | ||
164 | streq \irqstat, [\base, #GIC_CPU_EOI] | ||
165 | cmp \tmp, #0 | ||
166 | .endm | ||
139 | #endif | 167 | #endif |
140 | 168 | ||
141 | .macro irq_prio_table | 169 | .macro irq_prio_table |
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h index 8015fe27c8b0..fb7cb7723990 100644 --- a/arch/arm/plat-omap/include/mach/irqs.h +++ b/arch/arm/plat-omap/include/mach/irqs.h | |||
@@ -427,6 +427,8 @@ | |||
427 | 427 | ||
428 | 428 | ||
429 | #define IRQ_GIC_START 32 | 429 | #define IRQ_GIC_START 32 |
430 | #define INT_44XX_LOCALTIMER_IRQ 29 | ||
431 | #define INT_44XX_LOCALWDT_IRQ 30 | ||
430 | 432 | ||
431 | #define INT_44XX_BENCH_MPU_EMUL (3 + IRQ_GIC_START) | 433 | #define INT_44XX_BENCH_MPU_EMUL (3 + IRQ_GIC_START) |
432 | #define INT_44XX_SSM_ABORT_IRQ (6 + IRQ_GIC_START) | 434 | #define INT_44XX_SSM_ABORT_IRQ (6 + IRQ_GIC_START) |