sparc32,leon: Implemented SMP IPIs for LEON CPU
This patch implements SMP IPIs on LEON using software generated IRQs to signal between CPUs. The IPI IRQ number is set by using the ipi_num property in the device tree, or defaults to 13. LEON SMP systems should reserve IRQ 13 (and IRQ 15) to Linux in order for the defaults to work. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d6d048192b
commit
1ca0c808c6
@@ -401,6 +401,22 @@ linux_trap_ipi15_sun4d:
|
||||
1: b,a 1b
|
||||
|
||||
#ifdef CONFIG_SPARC_LEON
|
||||
.globl smpleon_ipi
|
||||
.extern leon_ipi_interrupt
|
||||
/* SMP per-cpu IPI interrupts are handled specially. */
|
||||
smpleon_ipi:
|
||||
SAVE_ALL
|
||||
or %l0, PSR_PIL, %g2
|
||||
wr %g2, 0x0, %psr
|
||||
WRITE_PAUSE
|
||||
wr %g2, PSR_ET, %psr
|
||||
WRITE_PAUSE
|
||||
call leonsmp_ipi_interrupt
|
||||
add %sp, STACKFRAME_SZ, %o1 ! pt_regs
|
||||
wr %l0, PSR_ET, %psr
|
||||
WRITE_PAUSE
|
||||
RESTORE_ALL
|
||||
|
||||
.align 4
|
||||
.globl linux_trap_ipi15_leon
|
||||
linux_trap_ipi15_leon:
|
||||
|
Reference in New Issue
Block a user