[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: PowerPC port for the e500 core



Hi,

On Tue, Feb 24, 2009 at 03:16:02PM +0100, Sebastian Andrzej Siewior wrote:
> Hello PowerPC team,
>  
> I have a Lenny snapshot of a new Debian architecture called gnuspe
> located at [0]. I haven't announced it anywhere (until now). It is
> called gnuspe because the gcc triplet is powerpc-linux-gnuspe-. This
> port is for all PowerPCs which have an E500 core [1]. The main important
> differences between PowerPC and this one are:

Are you building userspace with SPE instructions enabled, or are you
using only the base power ISA for the binaries?

> - the "normal" FPU unit is not present. Instead the APU offers float
>   point operations. This is _not_ SW-emulation it is HW support but
>   different at the assembly level. The ABI is also different (there are
>   no dedicated FPU regs).
> - those opcodes (or some of them) have the same binary representation
>   like AltiVec. The spec forbids AltiVec.

No BookE cores have altivec, besides I don't think the base distro uses
any altivec since it would not be usable on IBM big iron before power6,
nor on 603/604 (G3) systems.

> - It is not 100% compatible with the PowerPC ISA. An opcode, lwsync,
>   is not supported by the core and raises an invalid opcode exception.
>   This is a core bug.

This is not a core bug per se, but somewhat annoying interpretation of
the spec by FSL, as far as I know?

> In the past I used the normal PowerPC port which was sufficient for most
> things, however it got very slowly once it came to floating point.
> Starting with gcc 4.2 (I think but starting with Lenny is correct) the
> gcc starts using the lwsync opcode more frequently and every C++ program
> is effected via libstdc++ as you can see in #495120. Replacing the opcode
> in the PowerPc port would cost performance on all other PowerPCs.

Another alternative is to have the kernel rewrite the instruction to be
a sync instead (which is the expected behaviour on cores not implementing
lwsync), when the fault is taken.

> Now, I wanted to ask if there are more people that could be interrested
> in this port.
> 
> Any comments are welcome.

I don't have a personal stake in this, but I think a regular booke port
(compiled for softfpu and no SPE) would be more valuable, since that
would also run on IBM/AMCC 4xx CPUs.


-Olof


Reply to: