diff mbox

powerpc64: Enable CONFIG_E500 and CONFIG_PPC_E500MC for e5500/e6500

Message ID 87664de8-7aea-96a8-9906-cf2ce8d325a2@sysgo.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

David Engraf Sept. 26, 2016, 8:48 a.m. UTC
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@sysgo.com>
>> ---
>>  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. 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).

> 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. Right now the way how to 
configure such a BSP is not clear, you need to open "Processor support" 
and select the "Processor Type", then switch to "Platform support" to 
select the BSP and afterward got back to "Processor support" to switch 
from the generic CPU type to e5500/e6500.

> Note that your patch, by eliminating the dependency on E500, would make
> it possible to build a book3s kernel with E5500_CPU/E6500_CPU, which
> doesn't make any sense.

You're right. The attached version fixes this.

- David

Comments

Crystal Wood Sept. 26, 2016, 11:08 p.m. UTC | #1
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@sysgo.com>
> > > ---
> > >  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
diff mbox

Patch

diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index f32edec..abd345e 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -125,11 +125,15 @@  config POWER8_CPU
 
 config E5500_CPU
 	bool "Freescale e5500"
-	depends on E500
+	depends on PPC_BOOK3E_64
+	select E500
+	select PPC_E500MC
 
 config E6500_CPU
 	bool "Freescale e6500"
-	depends on E500
+	depends on PPC_BOOK3E_64
+	select E500
+	select PPC_E500MC
 
 endchoice