[Skiboot] [PATCH v2 00/13] little endian skiboot
Nicholas Piggin
npiggin at gmail.com
Wed Oct 2 20:40:21 AEST 2019
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.
Mostly missing from conversion:
- PHB3
- NPU and CAPI code
XICS, XICS-on-XIVE, KVM, VAS, and niche features have not been tested
yet, but at this point it's complete enough that it's easy to work on
and improve so I think it is ready for proper submission now.
Since v1:
- Addressed review comments
- Added a missed endian conversion in hw/fsp/fsp.c
- Added a patch on the end to tidy up dt access
- xive patch is not for merge, (pending Cedric's stuff) but included
so the series can boot on real hardware.
Nicholas Piggin (13):
capp: fix endian conversion
cpu: use dt accessor device tree access
opal-api: add endian conversions to most opal calls
spira: fix endian conversions in spira data structures
fixup_spira remove incorrect endian conversion
naca: move naca definition from asm to C
io: endian conversions for io accessors
xive: make endian-clean
phb4: make endian-clean
occ sensors: make endian-clean
memconsole: make endian-clean
add little endian support
dt: assorted cleanups
Makefile.main | 38 ++-
asm/asm-offsets.c | 2 -
asm/cvc_entry.S | 39 +--
asm/head.S | 132 ++++----
core/console.c | 41 ++-
core/cpu.c | 26 +-
core/device.c | 8 +
core/fdt.c | 4 +-
core/init.c | 1 +
core/interrupts.c | 12 +-
core/ipmi-opal.c | 6 +-
core/pci-opal.c | 98 ++++--
core/pci.c | 36 +--
core/powercap.c | 14 +-
core/psr.c | 14 +-
core/sensor.c | 36 ++-
hdata/Makefile.inc | 2 +-
hdata/fsp.c | 7 +-
hdata/hdata.h | 2 +
hdata/iohub.c | 21 +-
hdata/memory.c | 10 +-
hdata/naca.c | 34 ++
hdata/naca.h | 56 ++++
hdata/paca.c | 12 +-
hdata/spira.c | 68 ++--
hdata/spira.h | 2 +
hw/capp.c | 2 +-
hw/fake-rtc.c | 11 +-
hw/fsp/fsp-console.c | 26 +-
hw/fsp/fsp-rtc.c | 26 +-
hw/fsp/fsp-sysparam.c | 4 +-
hw/fsp/fsp.c | 2 +-
hw/imc.c | 4 +-
hw/ipmi/ipmi-rtc.c | 12 +-
hw/lpc-rtc.c | 12 +-
hw/lpc-uart.c | 16 +-
hw/lpc.c | 6 +-
hw/npu2-opencapi.c | 12 +-
hw/occ-sensor.c | 100 +++---
hw/occ.c | 24 +-
hw/phb4.c | 323 +++++++++----------
hw/psi.c | 8 +-
hw/vas.c | 9 +-
hw/xive.c | 386 ++++++++++++-----------
hw/xscom.c | 19 +-
include/asm-utils.h | 22 +-
include/console.h | 22 +-
include/cpu.h | 3 +
include/device.h | 1 +
include/elf.h | 4 +
include/io.h | 72 ++++-
include/mem-map.h | 2 +
include/occ.h | 50 +--
include/phb4.h | 2 +-
include/xive.h | 50 +--
libflash/ipmi-hiomap.c | 18 +-
libflash/mbox-flash.c | 18 +-
libpore/p9_cpu_reg_restore_instruction.H | 23 +-
libstb/cvc.c | 2 +-
platforms/ibm-fsp/common.c | 4 +-
platforms/ibm-fsp/hostservices.c | 12 +-
platforms/mambo/mambo.c | 7 +-
skiboot.lds.S | 5 +
63 files changed, 1211 insertions(+), 829 deletions(-)
create mode 100644 hdata/naca.c
create mode 100644 hdata/naca.h
--
2.23.0
More information about the Skiboot
mailing list