bootlin / toolchains-builder

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

configs/arch: add powerpc64 e5500 arch #9

Closed jmbents closed 4 years ago

jmbents commented 6 years ago

Update to add toolchains for powerpc64 e5500

Signed-off-by: Jared Bents jared.bents@rockwellcollins.com

jmbents commented 6 years ago

I am still working on getting the environment setup to verify the toolchain build works

tpetazzoni commented 6 years ago

Thanks for this contribution. Is there a suitable Qemu emulation that can be used to test such a toolchain ? If I understand correctly, it's based on the e500mc CPU core, so qemu-system-ppc64 -cpu e500mc -M ppc64-series should do the trick. I'll give it a try.

tpetazzoni commented 6 years ago

Build started at https://gitlab.com/free-electrons/toolchains-builder/pipelines/18271134. We'll see what it gives :-)

jmbents commented 6 years ago

Yes, it is based on the e500mc so that should work.

jmbents commented 6 years ago

Ah looks like it still needs work. I'll work through it today.

tpetazzoni commented 6 years ago

Yeah, the Qemu emulation didn't boot up:

qemu-system-ppc64 -M pseries -cpu POWER7 -m 256 -kernel /builds/free-electrons/toolchains-builder/build/opt/test-powerpc64-e5500--glibc--stable/images/vmlinux -append console=hvc0 root=/dev/sda  -drive file=/builds/free-electrons/toolchains-builder/build/opt/test-powerpc64-e5500--glibc--stable/images/rootfs.ext2,if=scsi,index=0,format=raw -display curses -cpu e500mc -nographic

failed with:

qemu-system-ppc64: Unable to find sPAPR CPU Core definition

Could you have a look into this ?

matthew-l-weber commented 6 years ago

E500mc is the compatibility mode for a e5500 chip. We'll have to setup for a e5500 core and I hope NXP Upstreamed that like they should. I know it's on their public Fork of qemu.

We will also be submitting a e6500 which was the last of the power architecture from nxp.

tpetazzoni commented 6 years ago

Qemu does have E5500 in its list of CPUs:

$ qemu-system-ppc64 -cpu ? | grep 5500
PowerPC e5500            PVR 80240020

However, I've not been able to use it so far. For now, I'll include the E5500 as another architecture variant, without Qemu testing. If we can add Qemu testing later on, it'd be nice.

tpetazzoni commented 6 years ago

@jmbents @matthew-l-weber Any news on this topic ?

matthew-l-weber commented 6 years ago

Haven't looked at it. I will see able kicking off a build this weekend to see if I can figure out the QEMU args to make it work.

matthew-l-weber commented 6 years ago

Tested a build of the t1040rdbd4 target in buildroot with the bootlin toolchain and a kernel tweek to enable e500 support. Then I could boot with the following command below. I'll take a look at a pull request in a bit, should I propose a buildroot qemu target for e5500? I haven't dug to see how you're building the test target's defconfig for the toolchains.

qemu-system-ppc64 -cpu e5500 -m 256 -M ppce500 -nographic -s erial mon:stdio -append 'console=ttyS0 root=/dev/ram' -kernel uImage -initrd rootfs.cpio.gz

-- Thanks, Matt


“Scientists investigate that which already is. Engineers create that which has never existed.” -Albert Einstein

tpetazzoni commented 6 years ago

@matthew-l-weber Cool, thanks for following up on this! The defconfig testing is based on an association between an architecture variant name and the corresponding defconfig in Buildroot, see https://github.com/free-electrons/toolchains-builder/blob/master/build.sh#L63

tpetazzoni commented 4 years ago

The PowerPC64 E5500 architecture config fragment has been merged a while ago, and we have been building such toolchains for some time, so I'll close this pull request. There is another pull request opened to add Qemu testing.