ARM: keystone: Replace platform SMP with PSCI
authorAndrew Davis <afd@ti.com>
Wed, 26 Oct 2022 14:50:33 +0000 (09:50 -0500)
committerNishanth Menon <nm@ti.com>
Fri, 28 Oct 2022 01:12:27 +0000 (20:12 -0500)
The KS2 boot monitor supports PSCI commands. These are already defined
in DT for KS2. We can drop this platform override and remove related
code without changing SMP. Do this here.

Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20221026145033.17905-1-afd@ti.com
arch/arm/mach-keystone/Makefile
arch/arm/mach-keystone/keystone.c
arch/arm/mach-keystone/keystone.h
arch/arm/mach-keystone/platsmp.c [deleted file]
arch/arm/mach-keystone/smc.S [deleted file]

index 739b38be569683c52d137c280d7733cd63750531..0c1d54aec60fda7001b521e45ca1be6a78c94b90 100644 (file)
@@ -1,7 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-y                                  := keystone.o smc.o
-
-obj-$(CONFIG_SMP)                      += platsmp.o
+obj-y                                  := keystone.o
 
 # PM domain driver for Keystone SOCs
 obj-$(CONFIG_ARCH_KEYSTONE)            += pm_domain.o
index 2c647bdf8d2583de6d1cdc32967b19c394759f0f..aa352c2de3138974d9f359ba7c9fd15fb3c90366 100644 (file)
@@ -18,7 +18,6 @@
 #include <asm/mach/map.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
-#include <asm/smp_plat.h>
 #include <asm/memory.h>
 
 #include "memory.h"
@@ -103,7 +102,6 @@ DT_MACHINE_START(KEYSTONE, "Keystone")
 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
        .dma_zone_size  = SZ_2G,
 #endif
-       .smp            = smp_ops(keystone_smp_ops),
        .init_machine   = keystone_init,
        .dt_compat      = keystone_match,
        .pv_fixup       = keystone_pv_fixup,
index 438e531cc0074ab8ed80341f62752e266ce0c6ed..71ff8cd2ee4a9bd80f7bd50fd33b2fd2137e4264 100644 (file)
@@ -8,13 +8,8 @@
 #ifndef __KEYSTONE_H__
 #define __KEYSTONE_H__
 
-#define KEYSTONE_MON_CPU_UP_IDX                0x00
-
 #ifndef __ASSEMBLER__
 
-extern const struct smp_operations keystone_smp_ops;
-extern void secondary_startup(void);
-extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr);
 extern int keystone_pm_runtime_init(void);
 
 #endif /* __ASSEMBLER__ */
diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c
deleted file mode 100644 (file)
index 673fcf3..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Keystone SOC SMP platform code
- *
- * Copyright 2013 Texas Instruments, Inc.
- *     Cyril Chemparathy <cyril@ti.com>
- *     Santosh Shilimkar <santosh.shillimkar@ti.com>
- *
- * Based on platsmp.c, Copyright (C) 2002 ARM Ltd.
- */
-
-#include <linux/init.h>
-#include <linux/smp.h>
-#include <linux/io.h>
-#include <linux/pgtable.h>
-
-#include <asm/smp_plat.h>
-#include <asm/prom.h>
-#include <asm/tlbflush.h>
-
-#include "keystone.h"
-
-static int keystone_smp_boot_secondary(unsigned int cpu,
-                                               struct task_struct *idle)
-{
-       unsigned long start = virt_to_idmap(&secondary_startup);
-       int error;
-
-       pr_debug("keystone-smp: booting cpu %d, vector %08lx\n",
-                cpu, start);
-
-       error = keystone_cpu_smc(KEYSTONE_MON_CPU_UP_IDX, cpu, start);
-       if (error)
-               pr_err("CPU %d bringup failed with %d\n", cpu, error);
-
-       return error;
-}
-
-const struct smp_operations keystone_smp_ops __initconst = {
-       .smp_boot_secondary     = keystone_smp_boot_secondary,
-};
diff --git a/arch/arm/mach-keystone/smc.S b/arch/arm/mach-keystone/smc.S
deleted file mode 100644 (file)
index 21ef75c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Keystone Secure APIs
- *
- * Copyright (C) 2013 Texas Instruments, Inc.
- *     Santosh Shilimkar <santosh.shilimkar@ti.com>
- */
-
-#include <linux/linkage.h>
-
-/**
- * u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr)
- *
- * Low level CPU monitor API
- * @command:   Monitor command.
- * @cpu:       CPU Number
- * @addr:      Kernel jump address for boot CPU
- *
- * Return: Non zero value on failure
- */
-       .arch_extension sec
-ENTRY(keystone_cpu_smc)
-       stmfd   sp!, {r4-r11, lr}
-       smc     #0
-       ldmfd   sp!, {r4-r11, pc}
-ENDPROC(keystone_cpu_smc)