2023-11-02 00:25:49

by William Kennington

[permalink] [raw]
Subject: [PATCH] ARM: npcm: Add CPU hotplug callbacks for kexec support

From: Brian Ma <[email protected]>

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.

Signed-off-by: Brian Ma <[email protected]>
Signed-off-by: William A. Kennington III <[email protected]>
---
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


2023-11-02 00:52:45

by William Kennington

[permalink] [raw]
Subject: [PATCH RESEND] ARM: npcm: Add CPU hotplug callbacks for kexec support

From: Brian Ma <[email protected]>

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.

Signed-off-by: Brian Ma <[email protected]>
Signed-off-by: William A. Kennington III <[email protected]>
---
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

2023-11-02 00:53:30

by William Kennington

[permalink] [raw]
Subject: [PATCH RESEND] ARM: npcm: Add CPU hotplug callbacks for kexec support

From: Brian Ma <[email protected]>

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.

Signed-off-by: Brian Ma <[email protected]>
Signed-off-by: William A. Kennington III <[email protected]>
---
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

2023-11-02 08:39:24

by Tomer Maimon

[permalink] [raw]
Subject: Re: [PATCH RESEND] ARM: npcm: Add CPU hotplug callbacks for kexec support

Hi William,


On Thu, 2 Nov 2023 at 02:53, <[email protected]> wrote:
>
> From: Brian Ma <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: William A. Kennington III <[email protected]>
> ---
> 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

2023-11-02 10:11:53

by William Kennington

[permalink] [raw]
Subject: [PATCH v2] ARM: npcm: Add CPU hotplug callbacks for kexec support

From: Brian Ma <[email protected]>

Add callbacks required for kexec to function. The NPCM7xx does
not expose controls for powering down CPU cores, so just wait in idle
loop.

Signed-off-by: Brian Ma <[email protected]>
Signed-off-by: William A. Kennington III <[email protected]>
---
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

2023-11-02 10:12:55

by William Kennington

[permalink] [raw]
Subject: Re: [PATCH RESEND] ARM: npcm: Add CPU hotplug callbacks for kexec support

On Thu, Nov 2, 2023 at 1:39 AM Tomer Maimon <[email protected]> wrote:
>
> Hi William,
>
>
> On Thu, 2 Nov 2023 at 02:53, <[email protected]> wrote:
> >
> > From: Brian Ma <[email protected]>
> >
> > 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 <[email protected]>
> > Signed-off-by: William A. Kennington III <[email protected]>
> > ---
> > 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

2023-12-01 23:52:39

by William Kennington

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: npcm: Add CPU hotplug callbacks for kexec support

On Thu, Nov 2, 2023 at 3:10 AM William A. Kennington III
<[email protected]> wrote:
>
> From: Brian Ma <[email protected]>
>
> Add callbacks required for kexec to function. The NPCM7xx does
> not expose controls for powering down CPU cores, so just wait in idle
> loop.
>
> Signed-off-by: Brian Ma <[email protected]>
> Signed-off-by: William A. Kennington III <[email protected]>
> ---
> 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
>'

Mind taking another look? This should be updated accordingly.

2023-12-03 08:04:23

by Tomer Maimon

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: npcm: Add CPU hotplug callbacks for kexec support

Hi William,

On Sat, 2 Dec 2023 at 01:51, William Kennington <[email protected]> wrote:
>
> On Thu, Nov 2, 2023 at 3:10 AM William A. Kennington III
> <[email protected]> wrote:
> >
> > From: Brian Ma <[email protected]>
> >
> > Add callbacks required for kexec to function. The NPCM7xx does
> > not expose controls for powering down CPU cores, so just wait in idle
> > loop.
> >
> > Signed-off-by: Brian Ma <[email protected]>
> > Signed-off-by: William A. Kennington III <[email protected]>
> > ---
> > 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
> >'
>
> Mind taking another look? This should be updated accordingly.

Reviewed-by: Tomer Maimon <[email protected]>

Best regards,

Tomer