linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* SMP Documentation?
@ 2014-03-07 23:14 Kent Borg
  2014-03-10 19:22 ` Kent Borg
  0 siblings, 1 reply; 3+ messages in thread
From: Kent Borg @ 2014-03-07 23:14 UTC (permalink / raw)
  To: linux-arm-kernel

Is there any documentation on the semantics of the SMP ops:

  - .smp_init_cpus,
  - .smp_prepare_cpus,
  - .smp_secondary_init,
  - .smp_boot_secondary?

I can certainly see examples in existing code, but I isn't clear to me 
why, for example, an SoC can't just do everything in smp_boot_secondary()?

Thanks,

-kb, the Kent who figures these four different calls are there for 
reasons, and there are a lot of ways for SMP to not work if he doesn't 
understand the reasons.

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

* SMP Documentation?
  2014-03-07 23:14 SMP Documentation? Kent Borg
@ 2014-03-10 19:22 ` Kent Borg
  2014-03-11  8:28   ` Barry Song
  0 siblings, 1 reply; 3+ messages in thread
From: Kent Borg @ 2014-03-10 19:22 UTC (permalink / raw)
  To: linux-arm-kernel

On 03/07/2014 06:14 PM, I wrote:
> Is there any documentation on the semantics of the SMP ops

<crickets>

It seems there is not any documentation, and no one has lept forward to 
write some for little ol' me.

But fear not!  I noticed mention the SMP work for rockchip going by on 
the list...and it looks analogous to what I need to do.  So I am going 
to start cribbing from that.


Thanks,

-kb, the Kent who, alas, will still probably darken your inbox in the 
future.

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

* SMP Documentation?
  2014-03-10 19:22 ` Kent Borg
@ 2014-03-11  8:28   ` Barry Song
  0 siblings, 0 replies; 3+ messages in thread
From: Barry Song @ 2014-03-11  8:28 UTC (permalink / raw)
  To: linux-arm-kernel

Kent,

2014-03-11 3:22 GMT+08:00 Kent Borg <kentborg@borg.org>:
> On 03/07/2014 06:14 PM, I wrote:
>>
>> Is there any documentation on the semantics of the SMP ops
>
>
> <crickets>
>
> It seems there is not any documentation, and no one has lept forward to
> write some for little ol' me.
>
> But fear not!  I noticed mention the SMP work for rockchip going by on the
> list...and it looks analogous to what I need to do.  So I am going to start
> cribbing from that.

you can read CSR codes for marco. we have one
struct smp_operations sirfsoc_smp_ops __initdata = {
        .smp_prepare_cpus       = sirfsoc_smp_prepare_cpus,
        .smp_secondary_init     = sirfsoc_secondary_init,
        .smp_boot_secondary     = sirfsoc_boot_secondary,
#ifdef CONFIG_HOTPLUG_CPU
        .cpu_die                = sirfsoc_cpu_die,
#endif
};

in sirfsoc_smp_prepare_cpus, we enable SCU for cache coherence of SMP,
 sirfsoc_secondary_init() is executed by 2nd core which will clear
pen_release.
sirfsoc_boot_secondary is the code for the cpu0 to wake up the 2nd
core, after waking, the cpu0 will wait for 2nd core to set pen_release
to -1.

>
>
> Thanks,
>
> -kb, the Kent who, alas, will still probably darken your inbox in the
> future.
>
-barry

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

end of thread, other threads:[~2014-03-11  8:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-07 23:14 SMP Documentation? Kent Borg
2014-03-10 19:22 ` Kent Borg
2014-03-11  8:28   ` Barry Song

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).