bootlin / toolchains-builder

http://toolchains.free-electrons.com
94 stars 26 forks source link

Add more powerpc flavors #2

Open eibach opened 7 years ago

eibach commented 7 years ago

We are actively using 405, e300 and e500v2. Would be great if you could add support for those.

tpetazzoni commented 7 years ago

Thanks for your feedback. We know our range of PowerPC flavors would have to be improved, but we were waiting for feedback such as yours. Can you comment on how such flavors can be emulated by Qemu, and which kernel configurations should be used to build a kernel that will run under Qemu for those flavors?

eibach commented 7 years ago

We have no experience using Qemu for these PowerPC flavors. I only see that qemu has support for these CPUs. At least for 405 there is a platform defined. If it would be helpful for you we could certainly supply hardware and kernel configurations for these systems.

tpetazzoni commented 6 years ago

I'm finally looking into this. I noticed one strange thing in Buildroot: we have "405" and "405 with FPU" variants, but for both we make it an option to use "Soft float". However, I don't see how a 405 without FPU could work without soft float. It would be nice if you could comment on that :-)

tpetazzoni commented 6 years ago

Could you comment which specific gcc -mcpu value you're interested in ?

Indeed for 405, there is 405 and 405fp.

For e300, there is e300c2 and e300c3.

There is nothing like e500v2 in gcc, but in Buildroot we have an option 8548 / e500v2 that uses -mcpu=8548, but this doesn't seem to exist in gcc anymore.

tpetazzoni commented 6 years ago

@eibach Ping ? :-)

eibach commented 6 years ago

@tpetazzoni Sorry for the delay. I can give you our current gcc configurations, hope this helps:

Target: powerpc-405-linux-gnu Configured with: /home/bah/crosstool-ng/build/.build/src/gcc-6.3.0/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=powerpc-405-linux-gnu --prefix=/opt/powerpc-405-linux-gnu/6.3.0 --with-sysroot=/opt/powerpc-405-linux-gnu/6.3.0/powerpc-405-linux-gnu/sysroot --enable-languages=c,c++ --with-cpu=405 --with-float=soft --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-700-g80daed9' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --enable-libsanitizer --disable-libmpx --with-gmp=/home/bah/crosstool-ng/build/.build/powerpc-405-linux-gnu/buildtools --with-mpfr=/home/bah/crosstool-ng/build/.build/powerpc-405-linux-gnu/buildtools --with-mpc=/home/bah/crosstool-ng/build/.build/powerpc-405-linux-gnu/buildtools --with-isl=/home/bah/crosstool-ng/build/.build/powerpc-405-linux-gnu/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --enable-plugin --disable-nls --disable-multilib --with-local-prefix=/opt/powerpc-405-linux-gnu/6.3.0/powerpc-405-linux-gnu/sysroot --enable-long-long Thread model: posix gcc version 6.3.0 (crosstool-NG crosstool-ng-1.22.0-700-g80daed9)

Target: powerpc-e300c3-linux-gnu Configured with: /home/bah/crosstool-ng/build/.build/src/gcc-6.3.0/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=powerpc-e300c3-linux-gnu --prefix=/opt/powerpc-e300c3-linux-gnu/6.3.0 --with-sysroot=/opt/powerpc-e300c3-linux-gnu/6.3.0/powerpc-e300c3-linux-gnu/sysroot --enable-languages=c,c++ --with-cpu=e300c3 --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-463-g7609996' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --enable-libsanitizer --disable-libmpx --with-gmp=/home/bah/crosstool-ng/build/.build/powerpc-e300c3-linux-gnu/buildtools --with-mpfr=/home/bah/crosstool-ng/build/.build/powerpc-e300c3-linux-gnu/buildtools --with-mpc=/home/bah/crosstool-ng/build/.build/powerpc-e300c3-linux-gnu/buildtools --with-isl=/home/bah/crosstool-ng/build/.build/powerpc-e300c3-linux-gnu/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-plugin --disable-nls --disable-multilib --with-local-prefix=/opt/powerpc-e300c3-linux-gnu/6.3.0/powerpc-e300c3-linux-gnu/sysroot --enable-long-long Thread model: posix gcc version 6.3.0 (crosstool-NG crosstool-ng-1.22.0-463-g7609996)

Target: powerpc-e500v2-linux-gnuspe Configured with: /home/bah/crosstool-ng/build/.build/src/gcc-6.3.0/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=powerpc-e500v2-linux-gnuspe --prefix=/opt/powerpc-e500v2-linux-gnuspe/6.3.0 --with-sysroot=/opt/powerpc-e500v2-linux-gnuspe/6.3.0/powerpc-e500v2-linux-gnuspe/sysroot --enable-languages=c,c++ --with-cpu=8548 --with-float=hard --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-463-g7609996' --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --enable-libsanitizer --disable-libmpx --with-gmp=/home/bah/crosstool-ng/build/.build/powerpc-e500v2-linux-gnuspe/buildtools --with-mpfr=/home/bah/crosstool-ng/build/.build/powerpc-e500v2-linux-gnuspe/buildtools --with-mpc=/home/bah/crosstool-ng/build/.build/powerpc-e500v2-linux-gnuspe/buildtools --with-isl=/home/bah/crosstool-ng/build/.build/powerpc-e500v2-linux-gnuspe/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --without-long-double-128 --enable-plugin --disable-nls --disable-multilib --with-local-prefix=/opt/powerpc-e500v2-linux-gnuspe/6.3.0/powerpc-e500v2-linux-gnuspe/sysroot --enable-long-long --enable-e500_double Thread model: posix gcc version 6.3.0 (crosstool-NG crosstool-ng-1.22.0-463-g7609996)

skochinsky commented 4 years ago

e200 toolchain is available from NXP: https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-power-architecture:S32DS-PA?tab=Design_Tools_Tab (click "More").

Direct links:

1.1.3 2017.R1 2017.R1 Update 2

eibach commented 4 years ago

e200 toolchain is available from NXP:

???

skochinsky commented 4 years ago

e200 is a Power core with some peculiarities (some core versions have only VLE, custom instructions available (SPE, LSP) and so on). It would be nice to have it available too in addition to the generic powerpc and e500.

eibach commented 4 years ago

It would be nice to have it available too in addition to the generic powerpc and e500.

Thanks, now I understand.