On Jun 17, 2008, at 8:56 AM, Kumar Gala wrote:


On Jun 16, 2008, at 2:26 PM, Olof Johansson wrote:

On Jun 16, 2008, at 10:46 AM, Kumar Gala wrote:
+               .machine_check          = machine_check_e500,
+               .platform               = "ppc4080",

Do you really want the platform to be this specific?

I need to look at how this is being used. I remember having a discussion with Paul about this when introduced platform.

It's used by the AUX vector (AT_PLATFORM), i.e. ld.so can use it to load platform-optimized libraries. As such, you probably want it to be e500mc instead.

diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/ platforms/Kconfig.cputype
index f7efaa9..9e67cf1 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -95,6 +95,12 @@ config E500
        select FSL_EMB_PERFMON
        bool

+config PPC_E500MC
+       bool "e500mc Support"
+       select PPC_FPU
+       depends on E500
+       default n
+
config PPC_FPU
        bool
        default y if PPC64
@@ -157,7 +163,7 @@ config ALTIVEC

config SPE
        bool "SPE Support"
-       depends on E200 || E500
+       depends on E200 || (E500 && !PPC_E500MC)

Why make E500MC a config option, if it's so similar? This way you can't make a kernel with SPE support that can boot on both e500{,v2} and e500mc...

I need it for the various things that are compile time, like cache line size, and lwsync support. If we can get rid of it in the future great.

I got away without doing that on pa6t since we had the same cacheline size but ppc64 has a larger value by default so all that hurt by it was some padding/alignment being larger than required. I'm sure some of the lowend guys won't be happy if you increase the alignment so raising the default is out of the picture, I agree with that.

But: since the cacheline is available in cputable, it can still be used at runtime, so as long as the alignments are large enough, stuff like the dcbz loops should still be OK (might need an audit though to make sure there's nothing missed). With that, you could at least still boot an E500MC kernel on E500.

Since I have to have PPC_E500MC I might as well not provide the option to enable SPE since it doesnt exist on e500mc.

With the above, if the line size is used from cputable you should be able to boot an e500mc kernel on e500.


-Olof
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to