secondary CPU kicking on 86xx

2 messages, 2 authors, 2006-06-16 · open the first message on its own page

secondary CPU kicking on 86xx

From: Jon Loeliger <hidden>
Date: 2006-06-16 14:58:35

Ben and folks,

I have a question regarding your comments on our proposed
additions for the mpc86xx secondary CPU release code.
We need a way to bounce the secondary CPUs through the
reset vector at 0x100, and can either statically lay down
an address like GEMINI does today:

    --- a/arch/powerpc/kernel/head_32.S
    +++ b/arch/powerpc/kernel/head_32.S
    @@ -348,6 +348,9 @@ #define EXC_XFER_EE_LITE(n, hdlr)   \
     #if defined(CONFIG_GEMINI) && defined(CONFIG_SMP)
	    . = 0x100
	    b       __secondary_start_gemini
    +#elif defined(CONFIG_PPC_86xx) && defined(CONFIG_SMP)
    +       . = 0x100
    +       b       __secondary_hold_mpc86xx
     #else
	    EXCEPTION(0x100, Reset, unknown_exception, EXC_XFER_STD)
     #endif

Or we can dynamically rewrite a branch instruction into
the reset vector from C code during smp_kick_cpu() time
like the current powermac code does.

I have working code for both; just need opinions
and preferences on correct approach/style voiced!

Thanks,
jdl

Re: secondary CPU kicking on 86xx

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-06-16 22:19:03

Or we can dynamically rewrite a branch instruction into
the reset vector from C code during smp_kick_cpu() time
like the current powermac code does.

I have working code for both; just need opinions
and preferences on correct approach/style voiced!
Second approach. #ifdef are evil and they prevent multiple board support
in the same kernel.

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help