linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* secondary processor initialization
@ 2010-03-09 19:33 Steve Muckle
  2010-03-09 19:48 ` Russell King - ARM Linux
  0 siblings, 1 reply; 2+ messages in thread
From: Steve Muckle @ 2010-03-09 19:33 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

The Scorpion CPU requires some low level initialization (like cache
timing registers). Currently we take care of that in the bootloader.
This seems to fit with what I've heard as a desire to keep CPU
implementation-specific initialization out of the kernel.

We are adding support for a dual core Scorpion target. The second core
will require some amount of initialization as well. If we take the
second core out of reset directly into the kernel, we would have to put
this initialization in the kernel.

Another option is having the secondary CPU(s) execute a portion of the
bootloader and come in through the main kernel entrypoint. This
simplifies things but would mean having to put a hook very early in the
primary boot path, compiled if SMP is configured, which checks the MPIDR
and reroutes secondary CPUs.

It would also be possible to somehow communicate the secondary CPU
entrypoint from CPU0 in the kernel to secondary CPUs in the bootloader,
but that seems uglier than the second option above IMO.

Any thoughts?

thanks,
Steve

^ permalink raw reply	[flat|nested] 2+ messages in thread

* secondary processor initialization
  2010-03-09 19:33 secondary processor initialization Steve Muckle
@ 2010-03-09 19:48 ` Russell King - ARM Linux
  0 siblings, 0 replies; 2+ messages in thread
From: Russell King - ARM Linux @ 2010-03-09 19:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Mar 09, 2010 at 11:33:12AM -0800, Steve Muckle wrote:
> We are adding support for a dual core Scorpion target. The second core
> will require some amount of initialization as well. If we take the
> second core out of reset directly into the kernel, we would have to put
> this initialization in the kernel.

Although we leave the secondary boot code completely up to the board,
we have to date no code in the kernel to deal with bringing a core out
of reset.

We assume that the secondary CPUs are being taken care of by the boot
loader, and we have to poke the address of the secondary CPU
initialization function to some register or memory location and signal
the boot loader.

> Another option is having the secondary CPU(s) execute a portion of the
> bootloader and come in through the main kernel entrypoint. This
> simplifies things but would mean having to put a hook very early in the
> primary boot path, compiled if SMP is configured, which checks the MPIDR
> and reroutes secondary CPUs.

I believe this is what everyone does.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-03-09 19:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-09 19:33 secondary processor initialization Steve Muckle
2010-03-09 19:48 ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).