Hi Christophe, Thanks for trying to clean up this tangled mess.
Christophe Leroy <[email protected]> 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 <[email protected]> > --- > 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
