Hi Magnus,
On Thu, Sep 17, 2015 at 8:33 AM, Magnus Damm <[email protected]> wrote:
> --- 0001/arch/arm/mach-shmobile/platsmp-apmu.c
> +++ work/arch/arm/mach-shmobile/platsmp-apmu.c 2015-09-16 20:46:23.400513000
> +0900
> +static void __init shmobile_smp_apmu_prepare_cpus_dt(unsigned int max_cpus)
> +{
> + shmobile_smp_apmu_setup_boot();
> + apmu_parse_dt(apmu_init_cpu);
> + rcar_gen2_pm_init();
> +}
The non-DT code in arch/arm/mach-shmobile/smp-r8a7790.c has two calls to
rcar_sysc_power_up() here, cfr.:
static void __init r8a7790_smp_prepare_cpus(unsigned int max_cpus)
{
/* let APMU code install data related to shmobile_boot_vector */
shmobile_smp_apmu_prepare_cpus(max_cpus,
r8a7790_apmu_config,
ARRAY_SIZE(r8a7790_apmu_config));
/* turn on power to SCU */
rcar_gen2_pm_init();
===> rcar_sysc_power_up(&r8a7790_ca15_scu);
===> rcar_sysc_power_up(&r8a7790_ca7_scu);
}
The non-DT code in arch/arm/mach-shmobile/smp-r8a7791.c does not have such
a call for its CA15 cluster.
Does that mean they're not needed on Gen2 in general, and that they can be
removed? I'd be happy to hear a confirming answer, as it's one less
dependency on SYSC PM Domains in early SMP code ;-)
Ah, this is because r8a7790 can boot from either CA15 or CA7, and only the
SCU for the boot CPU is powered up (r8a7791 has only one cluster/SCU, so it's
always the one with the boot CPU)?
Note that on r8a7779 we're also stuck with this dependency, as r8a7779 uses
SYSC instead of APMU for secondary core control.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html