Unverified Commit 8b7f4dd7 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'ti-keystone-soc-for-v6.2' of...

Merge tag 'ti-keystone-soc-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/soc

ARM: keystone: TI Updates for v6.2

Updates:
* Switch over to standard PSCI for keystone2 platforms.

* tag 'ti-keystone-soc-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  ARM: keystone: Replace platform SMP with PSCI

Link: https://lore.kernel.org/r/20221122185650.nrh7s2g5obndj5vj@dental


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents c93d8b45 7e8edf55
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
# 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
+0 −2
Original line number Diff line number Diff line
@@ -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,
+0 −5
Original line number Diff line number Diff line
@@ -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__ */

arch/arm/mach-keystone/platsmp.c

deleted100644 → 0
+0 −41
Original line number Diff line number Diff line
// 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,
};

arch/arm/mach-keystone/smc.S

deleted100644 → 0
+0 −26
Original line number Diff line number Diff line
/* 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)