Re: powerpc64: Enable CONFIG_E500 and CONFIG_PPC_E500MC for e5500/e6500

From: Scott Wood
Date: Mon Sep 26 2016 - 19:10:53 EST


On Mon, 2016-09-26 at 10:48 +0200, David Engraf wrote:
> Am 25.09.2016 um 08:20 schrieb Scott Wood:
> >
> > On Mon, Aug 22, 2016 at 04:46:43PM +0200, David Engraf wrote:
> > >
> > > The PowerPC e5500/e6500 architecture is based on the e500mc core. Enable
> > > CONFIG_E500 and CONFIG_PPC_E500MC when e5500/e6500 is used.
> > >
> > > This will also fix using CONFIG_PPC_QEMU_E500 on PPC64.
> > >
> > > Signed-off-by: David Engraf <david.engraf@xxxxxxxxx>
> > > ---
> > > Âarch/powerpc/platforms/Kconfig.cputype | 6 ++++--
> > > Â1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/powerpc/platforms/Kconfig.cputype
> > > b/arch/powerpc/platforms/Kconfig.cputype
> > > index f32edec..0382da7 100644
> > > --- a/arch/powerpc/platforms/Kconfig.cputype
> > > +++ b/arch/powerpc/platforms/Kconfig.cputype
> > > @@ -125,11 +125,13 @@ config POWER8_CPU
> > >
> > > Âconfig E5500_CPU
> > > Â bool "Freescale e5500"
> > > - depends on E500
> > > + select E500
> > > + select PPC_E500MC
> > >
> > > Âconfig E6500_CPU
> > > Â bool "Freescale e6500"
> > > - depends on E500
> > > + select E500
> > > + select PPC_E500MC
> > These config symbols are for setting -mcpu.ÂÂKernels built with
> > CONFIG_GENERIC_CPU should also work on e5500/e6500.
> I don't think so.

I do think so. ÂIt's what you get when you run "make corenet64_smp_defconfig"
and that kernel works on e5500/e6500.

> At least on QEMU it is not working because e5500/e6500Â
> is based on the e500mc core and the option CONFIG_PPC_E500MC alsoÂ
> controls the cpu features (check cputable.h).

Again, this is only a problem when you have CONFIG_PPC_QEMU_E500 without
CONFIG_CORENET_GENERIC, and the fix for that is to have CONFIG_PPC_QEMU_E500
select CONFIG_E500 (and you need to manually turn on CONFIG_PPC_E500MC if
applicable, since CONFIG_PPC_QEMU_E500 can also be used with e500v2).

I wouldn't be opposed to also adding "select PPC_E500MC if PPC64" to
CONFIG_PPC_QEMU_E500.

> >
> > The problem is that CONFIG_PPC_QEMU_E500 doesn't select E500 (I didn't
> > notice it before because usually CORENET_GENERIC is enabled as well).
> I noticed that as well, but I think it makes more sense to selectÂ
> E500/PPC_E500MC within the cputype menu instead of having a dependencyÂ
> which might be not clear for the user.

Again, that breaks CONFIG_GENERIC_CPU. ÂUnlike 32-bit, all 64-bit book3e
targets are supposed to be supportable with a single kernel image.

-Scott