qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/19] s390x emulation support
@ 2011-03-29 13:29 Alexander Graf
  2011-03-29 13:29 ` [Qemu-devel] [PATCH 01/19] Only build ivshmem when CONFIG_PCI && CONFIG_KVM Alexander Graf
                   ` (20 more replies)
  0 siblings, 21 replies; 29+ messages in thread
From: Alexander Graf @ 2011-03-29 13:29 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, aurelien, rth

We've had support for running s390x guests with KVM for a
while now. This patch set also enables support for running
s390x guests in system as well as linux-user mode in emulation!

Within this scope, I again want to stress that this is _not_
supposed to replace Hercules - the s390 emulator - in any way.
The only target supported by qemu is Linux. You can only run
Linux applications with linux-user emulation and Linux guest OSs
with the system emulation. All the device logic (and 24 bit mode)
for running legacy stuff is missing. Use Hercules for those!

I have successfully run the following guest OSs:

  - SUSE Linux Enterprise Server 11 SP1
  - Debian Lenny

Both of which work just fine on x86_64 and ppc hosts. Other hosts
should also work. The only thing that did not work for me is network.
Somehow networking only works with KVM enabled, so there is probably
some bug involved still.

Either way - rejoice! As with this patch set you can finally fulfill
your mainframe desires on your local workstation. And - most importantly -
finally test patches to virtio against s390!

For images, I'm hoping for Aurelien to provide Debian images that run
in qemu. Other distributions only provide S390x target support in their
enterprise variants, keeping me from redistributing images :(.

If you're trying to get things rolling yourself, make sure to use a
recent kernel that has support for the virtio architecture and virtio
console support - otherwise you won't see output.

The linux user mode emulation part only support 64bit binaries, so
running Debian binaries with that one is out of question for now. Use
the system emulation mode if you really need to run Debian binaries.

For the lazy ones:

    git://repo.or.cz/qemu/agraf.git s390-tcg-v2

v1 -> v2:

  - fix broken s390-virtio-serial
  - fix broken s390 kvm target
  - always set 64bit flag for s390x binaries in elf loader
  - remove redundant EXECUTE_SVC
  - advance psw.addr in syscall execution path
  - remove FPReg definition
  - add descriptions to more cc_ops
  - add comment on time2tod
  - describe EXCP_EXT
  - use new clock syntax
  - use float_chs
  - use float compare built-ins
  - remove redundant EXECUTE_SVC
  - don't pass env into DisasContext
  - remove if 0'd code
  - truncate at 80 chars
  - enable disas debug by default (-d in_asm)
  - remove explicit psw.addr advancing on SVC

Alexander Graf (14):
  Only build ivshmem when CONFIG_PCI && CONFIG_KVM
  virtio: use generic name when possible
  s390x: fix KVM target
  s390x: fix s390-virtio-serial
  s390x: Enable s390x-softmmu target
  s390x: Dispatch interrupts to KVM or the real CPU
  s390x: Adjust GDB stub
  s390x: virtio machine storage keys
  s390x: Prepare cpu.h for emulation
  s390x: helper functions for system emulation
  s390x: Implement opcode helpers
  s390x: Adjust internal kvm code
  s390x: translate engine for s390x CPU
  s390x: build s390x by default

Ulrich Hecht (5):
  s390x: Enable disassembler for s390x
  s390x: Enable nptl for s390x
  s390x: enable CPU_QuadU
  s390x: s390x-linux-user support
  linux-user: define a couple of syscalls for non-uid16 targets

 Makefile.target                      |    8 +-
 blockdev.c                           |    2 +-
 configure                            |    3 +
 cpu-all.h                            |    2 +-
 cpu-exec.c                           |    8 +
 default-configs/s390x-linux-user.mak |    1 +
 disas.c                              |    6 +
 gdbstub.c                            |    8 +-
 hw/s390-virtio-bus.c                 |   18 +-
 hw/s390-virtio-bus.h                 |    4 +-
 hw/s390-virtio.c                     |   21 +-
 hw/virtio-pci.c                      |    3 +
 linux-user/elfload.c                 |   19 +
 linux-user/main.c                    |   83 +
 linux-user/s390x/syscall.h           |   25 +
 linux-user/s390x/syscall_nr.h        |  349 +++
 linux-user/s390x/target_signal.h     |   26 +
 linux-user/s390x/termbits.h          |  283 ++
 linux-user/signal.c                  |  314 +++
 linux-user/syscall.c                 |  143 +-
 linux-user/syscall_defs.h            |   56 +-
 s390x.ld                             |  194 ++
 scripts/qemu-binfmt-conf.sh          |    4 +-
 target-s390x/cpu.h                   |  770 +++++-
 target-s390x/exec.h                  |   20 +
 target-s390x/helper.c                |  581 ++++-
 target-s390x/helpers.h               |  151 +
 target-s390x/kvm.c                   |   62 +-
 target-s390x/op_helper.c             | 2880 +++++++++++++++++++-
 target-s390x/translate.c             | 5116 +++++++++++++++++++++++++++++++++-
 vl.c                                 |    6 +-
 31 files changed, 11005 insertions(+), 161 deletions(-)
 create mode 100644 default-configs/s390x-linux-user.mak
 create mode 100644 linux-user/s390x/syscall.h
 create mode 100644 linux-user/s390x/syscall_nr.h
 create mode 100644 linux-user/s390x/target_signal.h
 create mode 100644 linux-user/s390x/termbits.h
 create mode 100644 s390x.ld
 create mode 100644 target-s390x/helpers.h

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

end of thread, other threads:[~2011-04-04  9:29 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-29 13:29 [Qemu-devel] [PATCH 00/19] s390x emulation support Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 01/19] Only build ivshmem when CONFIG_PCI && CONFIG_KVM Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 02/19] virtio: use generic name when possible Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 03/19] s390x: fix KVM target Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 04/19] s390x: fix s390-virtio-serial Alexander Graf
2011-03-29 14:17   ` [Qemu-devel] " Amit Shah
2011-03-29 13:29 ` [Qemu-devel] [PATCH 05/19] s390x: Enable disassembler for s390x Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 06/19] s390x: Enable nptl " Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 07/19] s390x: enable CPU_QuadU Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 08/19] s390x: s390x-linux-user support Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 09/19] linux-user: define a couple of syscalls for non-uid16 targets Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 10/19] s390x: Enable s390x-softmmu target Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 11/19] s390x: Dispatch interrupts to KVM or the real CPU Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 12/19] s390x: Adjust GDB stub Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 13/19] s390x: virtio machine storage keys Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 14/19] s390x: Prepare cpu.h for emulation Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 15/19] s390x: helper functions for system emulation Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 16/19] s390x: Implement opcode helpers Alexander Graf
2011-03-29 16:13   ` [Qemu-devel] " Richard Henderson
2011-03-29 16:25     ` Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 17/19] s390x: Adjust internal kvm code Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 18/19] s390x: translate engine for s390x CPU Alexander Graf
2011-03-29 13:29 ` [Qemu-devel] [PATCH 19/19] s390x: build s390x by default Alexander Graf
2011-03-30 10:23 ` [Qemu-devel] Re: [PATCH 00/19] s390x emulation support Peter Maydell
2011-03-30 10:46   ` Alexander Graf
2011-03-30 15:14     ` Peter Maydell
2011-04-03 22:37 ` [Qemu-devel] " Aurelien Jarno
2011-04-03 22:43   ` Alexander Graf
2011-04-04  9:29     ` Alexander Graf

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).