Re: arm/arm64: smp_spin_table.c for arm32?
From: Catalin Marinas
Date: Wed Mar 28 2018 - 11:54:45 EST
On Wed, Mar 28, 2018 at 08:12:50AM +0000, Michel Pollet wrote:
> I'm currently adapting a port from a machine-file based approach to driver based, and I
> would have a need for arch/arm64/kernel/smp_spin_table.c -- it's *exactly* my use
> case, but for arm32.
> So what would be my options here?
>
> 1) Make myself a custom driver and ignore this one...
> 2) Fully duplicate smp_spin_table.c in arch/arm/kernel...
> 3) .... something else involving a shared bit of code?
There will be some small differences between the two like writeq() vs
writel(). My advice:
4) Use PSCI, already available in arch/arm/kernel/psci_smp.c
Otherwise, if you do need a spin table, duplicating is probably the
easiest, especially since you need a .S counterpart, but you'd need to
keep the arch/arm/mach-* directory. Also see this thread (and maybe
others):
https://lkml.org/lkml/2014/3/28/458
As long as booting is not standardised for your SoC, I don't think you'd
be able to move everything into drivers/.
On arm64, we only keep the pen release mechanism for XGene as they don't
have EL3 and cannot implement PSCI. All other platforms use PSCI (at
least those supported upstream).
--
Catalin