[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231102002453.1299195-1-william@wkennington.com>
Date: Wed, 1 Nov 2023 17:24:53 -0700
From: william@...nnington.com
To: tmaimon77@...il.com, tali.perry1@...il.com, avifishman70@...il.com
Cc: linux-arm-kernel@...r.kernel.org, linux-kernel@...r.kernel.org,
openbmc@...ts.ozlabs.org, Brian Ma <chma0@...oton.com>,
"William A . Kennington III" <william@...nnington.com>
Subject: [PATCH] ARM: npcm: Add CPU hotplug callbacks for kexec support
From: Brian Ma <chma0@...oton.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.
Signed-off-by: Brian Ma <chma0@...oton.com>
Signed-off-by: William A. Kennington III <william@...nnington.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
Powered by blists - more mailing lists