Message ID | 20231102002453.1299195-1-william@wkennington.com |
---|---|
State | New |
Headers | show |
Series | ARM: npcm: Add CPU hotplug callbacks for kexec support | expand |
Hi William, On Thu, 2 Nov 2023 at 02:53, <william@wkennington.com> wrote: > > From: Brian Ma <chma0@nuvoton.com> > > Add callbacks required for kexec to function. The NPCM7xx/NPCN8xx does > not expose controls for powering down CPU cores, so just wait in idle > loop. This patch is related only to NPCM7xx please modify NPCM7xx/NPCN8xx to NPCM7xx. > > Signed-off-by: Brian Ma <chma0@nuvoton.com> > Signed-off-by: William A. Kennington III <william@wkennington.com> > --- > arch/arm/mach-npcm/platsmp.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/arch/arm/mach-npcm/platsmp.c b/arch/arm/mach-npcm/platsmp.c > index 41891d3aa124..6cc7b5894f08 100644 > --- a/arch/arm/mach-npcm/platsmp.c > +++ b/arch/arm/mach-npcm/platsmp.c > @@ -69,10 +69,27 @@ static void __init npcm7xx_smp_prepare_cpus(unsigned int max_cpus) > > iounmap(scu_base); > } > +#ifdef CONFIG_HOTPLUG_CPU > +static void npcm7xx_cpu_die(unsigned int cpu) > +{ > + while (1) > + cpu_do_idle(); > +} > + > +static int npcm7xx_cpu_kill(unsigned int l_cpu) > +{ > + return 1; > +} > +#endif > + > > static struct smp_operations npcm7xx_smp_ops __initdata = { > .smp_prepare_cpus = npcm7xx_smp_prepare_cpus, > .smp_boot_secondary = npcm7xx_smp_boot_secondary, > +#ifdef CONFIG_HOTPLUG_CPU > + .cpu_die = npcm7xx_cpu_die, > + .cpu_kill = npcm7xx_cpu_kill, > +#endif > }; > > CPU_METHOD_OF_DECLARE(npcm7xx_smp, "nuvoton,npcm750-smp", &npcm7xx_smp_ops); > -- > 2.42.0.820.g83a721a137-goog > Best regards, Tomer
On Thu, Nov 2, 2023 at 1:39 AM Tomer Maimon <tmaimon77@gmail.com> wrote: > > Hi William, > > > On Thu, 2 Nov 2023 at 02:53, <william@wkennington.com> wrote: > > > > From: Brian Ma <chma0@nuvoton.com> > > > > Add callbacks required for kexec to function. The NPCM7xx/NPCN8xx does > > not expose controls for powering down CPU cores, so just wait in idle > > loop. > This patch is related only to NPCM7xx please modify NPCM7xx/NPCN8xx to NPCM7xx. Fixed in v2 message. > > > > Signed-off-by: Brian Ma <chma0@nuvoton.com> > > Signed-off-by: William A. Kennington III <william@wkennington.com> > > --- > > arch/arm/mach-npcm/platsmp.c | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/arch/arm/mach-npcm/platsmp.c b/arch/arm/mach-npcm/platsmp.c > > index 41891d3aa124..6cc7b5894f08 100644 > > --- a/arch/arm/mach-npcm/platsmp.c > > +++ b/arch/arm/mach-npcm/platsmp.c > > @@ -69,10 +69,27 @@ static void __init npcm7xx_smp_prepare_cpus(unsigned int max_cpus) > > > > iounmap(scu_base); > > } > > +#ifdef CONFIG_HOTPLUG_CPU > > +static void npcm7xx_cpu_die(unsigned int cpu) > > +{ > > + while (1) > > + cpu_do_idle(); > > +} > > + > > +static int npcm7xx_cpu_kill(unsigned int l_cpu) > > +{ > > + return 1; > > +} > > +#endif > > + > > > > static struct smp_operations npcm7xx_smp_ops __initdata = { > > .smp_prepare_cpus = npcm7xx_smp_prepare_cpus, > > .smp_boot_secondary = npcm7xx_smp_boot_secondary, > > +#ifdef CONFIG_HOTPLUG_CPU > > + .cpu_die = npcm7xx_cpu_die, > > + .cpu_kill = npcm7xx_cpu_kill, > > +#endif > > }; > > > > CPU_METHOD_OF_DECLARE(npcm7xx_smp, "nuvoton,npcm750-smp", &npcm7xx_smp_ops); > > -- > > 2.42.0.820.g83a721a137-goog > > > > Best regards, > > Tomer
diff --git a/arch/arm/mach-npcm/platsmp.c b/arch/arm/mach-npcm/platsmp.c index 41891d3aa124..6cc7b5894f08 100644 --- a/arch/arm/mach-npcm/platsmp.c +++ b/arch/arm/mach-npcm/platsmp.c @@ -69,10 +69,27 @@ static void __init npcm7xx_smp_prepare_cpus(unsigned int max_cpus) iounmap(scu_base); } +#ifdef CONFIG_HOTPLUG_CPU +static void npcm7xx_cpu_die(unsigned int cpu) +{ + while (1) + cpu_do_idle(); +} + +static int npcm7xx_cpu_kill(unsigned int l_cpu) +{ + return 1; +} +#endif + static struct smp_operations npcm7xx_smp_ops __initdata = { .smp_prepare_cpus = npcm7xx_smp_prepare_cpus, .smp_boot_secondary = npcm7xx_smp_boot_secondary, +#ifdef CONFIG_HOTPLUG_CPU + .cpu_die = npcm7xx_cpu_die, + .cpu_kill = npcm7xx_cpu_kill, +#endif }; CPU_METHOD_OF_DECLARE(npcm7xx_smp, "nuvoton,npcm750-smp", &npcm7xx_smp_ops);