s390x System emulator — QEMU documentation

# s390x System emulator

QEMU can emulate z/Architecture (in particular, 64 bit) s390x systems via the `qemu-system-s390x` binary. Only one machine type, `s390-ccw-virtio`, is supported (with versioning for compatibility handling).

When using KVM as accelerator, QEMU can emulate CPUs up to the generation of the host. When using the default cpu model with TCG as accelerator, QEMU will emulate a subset of z13 cpu features that should be enough to run distributions built for the z13.

## Device support

QEMU will not emulate most of the traditional devices found under LPAR or z/VM; virtio devices (especially using virtio-ccw) make up the bulk of the available devices. Passthrough of host devices via vfio-pci, vfio-ccw, or vfio-ap is also available.

- Adjunct Processor (AP) Device
  - Introduction
  - AP Architectural Overview
  - Start Interpretive Execution (SIE) Instruction
    - Example 1: Valid configuration
    - Example 2: Valid configuration
    - Example 3: Invalid configuration
  - AP Matrix Configuration on Linux Host
    - Binding AP devices to device drivers
    - Configuring an AP matrix for a linux guest
    - Starting a Linux Guest Configured with an AP Matrix
    - Hot plug a vfio-ap device into a running guest
    - Hot unplug a vfio-ap device from a running guest
  - Example: Configure AP Matrices for Three Linux Guests
  - Limitations
- The virtual channel subsystem
  - Examples
- 3270 devices
  - Example configuration
  - Restrictions
- Subchannel passthrough via vfio-ccw
  - Example configuration
    - Step 1: configure the host device
    - Step 2: configure QEMU
- PCI devices on s390x

## Architectural features

- Boot devices on s390x
  - Booting with bootindex parameter
  - Booting without bootindex parameter
  - Selecting kernels with the `loadparm` property
  - Booting from a network device
- Protected Virtualization on s390x
  - Prerequisites
  - Running a Protected Virtual Machine
  - Boot Process
- CPU topology on s390x
  - Prerequisites
  - Enabling CPU topology
  - Default topology usage
    - Hot plug
    - Examples
  - Polarization, entitlement and dedication
    - Polarization
    - Entitlement
  - Defining the topology on the command line