Christophe Leroy <[email protected]> writes: > Le 09/09/2022 à 07:50, Michael Ellerman a écrit : >> 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? > > Yes it seems. > >> >> 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). > > Ok, I'll see how I can make it more explicit. > >> >>> 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 > > That's handled in [v1,10/19] powerpc: Remove redundant selection of > E500 and E500MC. Should I reorder patches ?
No that's fine the way it is, I hadn't looked at patch 10 when I replied. cheers
