powerpc/64e: Tie PPC_BOOK3E_64 to PPC_E500MC
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 19 Sep 2022 17:01:26 +0000 (19:01 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 26 Sep 2022 11:00:41 +0000 (21:00 +1000)
The only 64-bit Book3E CPUs we support require the selection
of CONFIG_PPC_E500MC.

However our Kconfig allows configurating a kernel that has 64-bit
Book3E support, but without CONFIG_PPC_E500MC enabled. Such a kernel
would never boot, it doesn't know about any CPUs.

To fix this, force CONFIG_PPC_E500MC to be selected whenever we are
building a 64-bit Book3E kernel.

And add a test to detect future situations where cpu_specs is empty.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ae5d8b8b3ccc346e61d2ec729767f92766273f0b.1663606875.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/cputable.c
arch/powerpc/platforms/Kconfig.cputype

index d8e42ef..2829ea5 100644 (file)
@@ -2018,6 +2018,8 @@ struct cpu_spec * __init identify_cpu(unsigned long offset, unsigned int pvr)
        struct cpu_spec *s = cpu_specs;
        int i;
 
+       BUILD_BUG_ON(!ARRAY_SIZE(cpu_specs));
+
        s = PTRRELOC(s);
 
        for (i = 0; i < ARRAY_SIZE(cpu_specs); i++,s++) {
index 5185d94..19fd95a 100644 (file)
@@ -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