[PATCH v1 02/19] powerpc/64e: Tie PPC_BOOK3E_64 to PPC_E500MC
Michael Ellerman
mpe at ellerman.id.au
Fri Sep 9 15:50:53 AEST 2022
Hi Christophe,
Thanks for trying to clean up this tangled mess.
Christophe Leroy <christophe.leroy at csgroup.eu> writes:
> The only 64-bit Book3E CPUs we support is the e500mc.
AFAIK the e500mc is 32-bit?
We support e5500 and e6500 which are 64-bit Book3E.
They're derivatives of the e500mc AIUI.
So CONFIG_PPC_E500MC actually means e500mc *and later derivatives*.
You can see that with eg:
config SPE_POSSIBLE
def_bool y
depends on E500 && !PPC_E500MC
Because e500mc dropped SPE, and so therefore e5500 and e6500 don't have
it either.
And eg:
#ifdef CONFIG_PPC_E500MC
_GLOBAL(__setup_cpu_e6500)
mflr r6
> However our Kconfig allows configurating a kernel that has 64-bit
> Book3E support, but no e500mc support enabled. Such a kernel
> would never boot, it doesn't know about any CPUs.
That is true.
> To fix this, force e500mc to be selected whenever we are
> building a 64-bit Book3E kernel.
I think that's a reasonable fix, just it's important to differentiate
between CONFIG_PPC_E500MC (the symbol) and e500mc (the CPU).
> And add a test to detect futur situations where cpu_specs is empty.
future
>
> Signed-off-by: Christophe Leroy <christophe.leroy at csgroup.eu>
> ---
> arch/powerpc/kernel/cputable.c | 2 ++
> arch/powerpc/platforms/Kconfig.cputype | 2 ++
> 2 files changed, 4 insertions(+)
>
..
> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
> index 5185d942b455..19fd95a06352 100644
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -108,6 +108,8 @@ config PPC_BOOK3S_64
> config PPC_BOOK3E_64
> bool "Embedded processors"
> select PPC_FSL_BOOK3E
> + select E500
> + select PPC_E500MC
> select PPC_FPU # Make it a choice ?
> select PPC_SMP_MUXED_IPI
> select PPC_DOORBELL
I think that makes the select of PPC_E500MC below redundant:
config PPC_QEMU_E500
bool "QEMU generic e500 platform"
select DEFAULT_UIMAGE
select E500
select PPC_E500MC if PPC64
cheers
More information about the Linuxppc-dev
mailing list