Message ID | 20191208122312.12837-1-npiggin@gmail.com |
---|---|
Headers | show |
Series | little endian skiboot | expand |
On Sun, Dec 8, 2019 at 11:24 PM Nicholas Piggin <npiggin@gmail.com> wrote: > > A few reasons for this: > - The rest of the software is moving (moved) to LE. BE is still > supported, but the fact is LE will be better tested from now on in > terms of toolchain. > - ELFv2 ABI is a smaller image, nicer asm code. We can use ELFv2 with BE > but toolchain won't officially support or test it. > - Some levels of OpenPOWER ISA allow a conforming implementation to > implement LE only. > - Less stack usage of ELFv2 facilitates OPAL call convention that uses > the host kernel stack (which is a whole different story but has > benefits). > - Common endian with the host kernel can help with debugging skiboot > with host kernel facilities (like BUG, xmon). We could achieve the > same by teaching kernel about different endianness, but it's more work. Thanks, merged to master as 266573939475c2ad4c93182a0775b8aaff348642 Going forwards we probably want some more CI to check for BE vs LE regressions. I'm not too sure what to do there other than more boot testing though.
Oliver O'Halloran's on January 20, 2020 4:21 pm: > On Sun, Dec 8, 2019 at 11:24 PM Nicholas Piggin <npiggin@gmail.com> wrote: >> >> A few reasons for this: >> - The rest of the software is moving (moved) to LE. BE is still >> supported, but the fact is LE will be better tested from now on in >> terms of toolchain. >> - ELFv2 ABI is a smaller image, nicer asm code. We can use ELFv2 with BE >> but toolchain won't officially support or test it. >> - Some levels of OpenPOWER ISA allow a conforming implementation to >> implement LE only. >> - Less stack usage of ELFv2 facilitates OPAL call convention that uses >> the host kernel stack (which is a whole different story but has >> benefits). >> - Common endian with the host kernel can help with debugging skiboot >> with host kernel facilities (like BUG, xmon). We could achieve the >> same by teaching kernel about different endianness, but it's more work. > > Thanks, merged to master as 266573939475c2ad4c93182a0775b8aaff348642 > > Going forwards we probably want some more CI to check for BE vs LE > regressions. I'm not too sure what to do there other than more boot > testing though. > Booting to Linux should be a pretty good start for CI if you have some PHB and XIVE. Beyond that there's a lot of obscure and/or crufty features that'll be hard to get tested without flipping the default I guess. Thanks, Nick
On 1/21/20 12:33 PM, Nicholas Piggin wrote: > Oliver O'Halloran's on January 20, 2020 4:21 pm: >> On Sun, Dec 8, 2019 at 11:24 PM Nicholas Piggin <npiggin@gmail.com> wrote: >>> >>> A few reasons for this: >>> - The rest of the software is moving (moved) to LE. BE is still >>> supported, but the fact is LE will be better tested from now on in >>> terms of toolchain. >>> - ELFv2 ABI is a smaller image, nicer asm code. We can use ELFv2 with BE >>> but toolchain won't officially support or test it. >>> - Some levels of OpenPOWER ISA allow a conforming implementation to >>> implement LE only. >>> - Less stack usage of ELFv2 facilitates OPAL call convention that uses >>> the host kernel stack (which is a whole different story but has >>> benefits). >>> - Common endian with the host kernel can help with debugging skiboot >>> with host kernel facilities (like BUG, xmon). We could achieve the >>> same by teaching kernel about different endianness, but it's more work. >> >> Thanks, merged to master as 266573939475c2ad4c93182a0775b8aaff348642 >> >> Going forwards we probably want some more CI to check for BE vs LE >> regressions. I'm not too sure what to do there other than more boot >> testing though. >> > > Booting to Linux should be a pretty good start for CI if you have > some PHB and XIVE. Beyond that there's a lot of obscure and/or crufty > features that'll be hard to get tested without flipping the default > I guess. I gave it a try on a boston. host and guest boot fine. QEMU boots correctly also. Here is the command line : qemu-system-ppc64 -m 4G -machine powernv9 -smp 2,cores=2,threads=1 -accel tcg,thread=single \ -kernel ./witherspoon-latest/zImage.epapr -initrd ./witherspoon-latest/rootfs.cpio.xz -bios ./skiboot.lid \ -device ich9-ahci,id=sata0,bus=pcie.1,addr=0x0 \ -drive file=./ubuntu-ppc64le-powernv.raw,if=none,id=drive0,format=raw,cache=none \ -device ide-hd,bus=sata0.0,unit=0,drive=drive0,id=ide,bootindex=1 \ -device e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.2,addr=0x0 \ -netdev bridge,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=net0 \ -device nec-usb-xhci,bus=pcie.1,addr=0x7 -serial mon:stdio -nographic -nodefaults Thanks, C.