xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Initial support for Power
@ 2023-06-07 15:06 Shawn Anastasio
  2023-06-07 15:06 ` [PATCH 1/3] xen: Add files needed for minimal Power build Shawn Anastasio
                   ` (3 more replies)
  0 siblings, 4 replies; 27+ messages in thread
From: Shawn Anastasio @ 2023-06-07 15:06 UTC (permalink / raw)
  To: xen-devel
  Cc: tpearson, Shawn Anastasio, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu

Hello all,

This patch series adds support for building a minimal image
(head.o-only) for Power ISA 2.07B+ (POWER8+) systems. The first patch
boots to an infinite loop and the second adds early serial console
support on pseries VMs, with bare metal support planned next.

Since Xen previously had support for a much older version of the ISA in
version 3.2.3, we were able to carry over some headers and support
routines from that version. Unlike that initial port though, this effort
focuses solely on POWER8+ CPUs that are capable of running in Little
Endian mode.

With an appropriate powerpc64le-linux-gnu cross-toolchain, the minimal
image can be built with:

$ make XEN_TARGET_ARCH=ppc64 -C xen openpower_defconfig
$ make XEN_TARGET_ARCH=ppc64 SUBSYSTEMS=xen -C xen TARGET=ppc64/head.o

The resulting head.o can then be booted in a standard QEMU/pseries VM:

$ qemu-system-ppc64 -M pseries-5.2 -m 256M -kernel xen/ppc64/head.o \
	-vga none -serial mon:stdio -nographic

Thanks,
Shawn

Shawn Anastasio (3):
  xen: Add files needed for minimal Power build
  xen/ppc: Implement early serial printk on PaPR/pseries
  maintainers: Add PPC64 maintainer

 MAINTAINERS                              |   3 +
 config/ppc64.mk                          |   5 +
 xen/Makefile                             |   5 +-
 xen/arch/ppc/Kconfig                     |  42 +++++
 xen/arch/ppc/Kconfig.debug               |   5 +
 xen/arch/ppc/Makefile                    |  18 ++
 xen/arch/ppc/Rules.mk                    |   0
 xen/arch/ppc/arch.mk                     |  11 ++
 xen/arch/ppc/boot_of.c                   | 122 +++++++++++++
 xen/arch/ppc/configs/openpower_defconfig |  14 ++
 xen/arch/ppc/early_printk.c              |  36 ++++
 xen/arch/ppc/include/asm/boot.h          |  31 ++++
 xen/arch/ppc/include/asm/bug.h           |   6 +
 xen/arch/ppc/include/asm/byteorder.h     |  74 ++++++++
 xen/arch/ppc/include/asm/cache.h         |   6 +
 xen/arch/ppc/include/asm/config.h        |  66 +++++++
 xen/arch/ppc/include/asm/early_printk.h  |  14 ++
 xen/arch/ppc/include/asm/msr.h           |  67 +++++++
 xen/arch/ppc/include/asm/page-bits.h     |   7 +
 xen/arch/ppc/include/asm/processor.h     | 223 +++++++++++++++++++++++
 xen/arch/ppc/include/asm/reg_defs.h      | 218 ++++++++++++++++++++++
 xen/arch/ppc/include/asm/string.h        |   6 +
 xen/arch/ppc/include/asm/types.h         |  64 +++++++
 xen/arch/ppc/ppc64/Makefile              |   1 +
 xen/arch/ppc/ppc64/asm-offsets.c         |  55 ++++++
 xen/arch/ppc/ppc64/head.S                | 126 +++++++++++++
 xen/arch/ppc/setup.c                     |  32 ++++
 xen/arch/ppc/xen.lds.S                   | 173 ++++++++++++++++++
 28 files changed, 1428 insertions(+), 2 deletions(-)
 create mode 100644 config/ppc64.mk
 create mode 100644 xen/arch/ppc/Kconfig
 create mode 100644 xen/arch/ppc/Kconfig.debug
 create mode 100644 xen/arch/ppc/Makefile
 create mode 100644 xen/arch/ppc/Rules.mk
 create mode 100644 xen/arch/ppc/arch.mk
 create mode 100644 xen/arch/ppc/boot_of.c
 create mode 100644 xen/arch/ppc/configs/openpower_defconfig
 create mode 100644 xen/arch/ppc/early_printk.c
 create mode 100644 xen/arch/ppc/include/asm/boot.h
 create mode 100644 xen/arch/ppc/include/asm/bug.h
 create mode 100644 xen/arch/ppc/include/asm/byteorder.h
 create mode 100644 xen/arch/ppc/include/asm/cache.h
 create mode 100644 xen/arch/ppc/include/asm/config.h
 create mode 100644 xen/arch/ppc/include/asm/early_printk.h
 create mode 100644 xen/arch/ppc/include/asm/msr.h
 create mode 100644 xen/arch/ppc/include/asm/page-bits.h
 create mode 100644 xen/arch/ppc/include/asm/processor.h
 create mode 100644 xen/arch/ppc/include/asm/reg_defs.h
 create mode 100644 xen/arch/ppc/include/asm/string.h
 create mode 100644 xen/arch/ppc/include/asm/types.h
 create mode 100644 xen/arch/ppc/ppc64/Makefile
 create mode 100644 xen/arch/ppc/ppc64/asm-offsets.c
 create mode 100644 xen/arch/ppc/ppc64/head.S
 create mode 100644 xen/arch/ppc/setup.c
 create mode 100644 xen/arch/ppc/xen.lds.S

-- 
2.30.2



^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-06-13 14:59 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-07 15:06 [PATCH 0/3] Initial support for Power Shawn Anastasio
2023-06-07 15:06 ` [PATCH 1/3] xen: Add files needed for minimal Power build Shawn Anastasio
2023-06-09  9:15   ` Jan Beulich
2023-06-09 15:34     ` Shawn Anastasio
2023-06-07 15:06 ` [PATCH 2/3] xen/ppc: Implement early serial printk on PaPR/pseries Shawn Anastasio
2023-06-09  9:22   ` Jan Beulich
2023-06-09  9:29     ` Andrew Cooper
2023-06-09  9:38       ` Jan Beulich
2023-06-09  9:43         ` Julien Grall
2023-06-09  9:43         ` Andrew Cooper
2023-06-09  9:46           ` Julien Grall
2023-06-09  9:54             ` Andrew Cooper
2023-06-09 10:12               ` Julien Grall
2023-06-09 15:01                 ` Shawn Anastasio
2023-06-09 16:07                   ` Julien Grall
2023-06-09 16:20                     ` Shawn Anastasio
2023-06-12 15:19                     ` George Dunlap
2023-06-12 15:31                       ` Julien Grall
2023-06-13 14:59                       ` Shawn Anastasio
2023-06-09 15:36     ` Shawn Anastasio
2023-06-07 15:06 ` [PATCH 3/3] maintainers: Add PPC64 maintainer Shawn Anastasio
2023-06-09  9:04   ` Jan Beulich
2023-06-09 15:40     ` Shawn Anastasio
2023-06-07 18:07 ` [PATCH 0/3] Initial support for Power Andrew Cooper
2023-06-07 19:01   ` Shawn Anastasio
2023-06-07 19:30     ` Andrew Cooper
2023-06-08 15:19       ` Shawn Anastasio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).