summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPeter Maydell2017-08-31 12:29:41 +0200
committerPeter Maydell2017-08-31 12:29:41 +0200
commit1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129 (patch)
tree205bb4ccc831f6db1866e45985d96137457f42f6 /include
parentslirp: fix clearing ifq_so from pending packets (diff)
parents390x/pci: fixup trap_msix() (diff)
downloadqemu-1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129.tar.gz
qemu-1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129.tar.xz
qemu-1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129.zip
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20170830' into staging
First batch of s390x patches: - 2.11 compat machine - support the new --s390-pgste linker option, making it possible to avoid enabling the global vm.allocate_pgste systl if all pieces are in place - correctly identify some devices as not hotpluggable - clean up some tests and enable them for s390x - wire up the diag288 watchdog in tcg - clean up dependencies on CONFIG_PCI, making it possible to disable it by hand - lots of cleanup in target/s390x/ - fix alignment of the ccw1 structure in the s390-ccw bios - and some more bugfixes # gpg: Signature made Wed 30 Aug 2017 17:40:34 BST # gpg: using RSA key 0xDECF6B93C6F02FAF # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" # gpg: aka "Cornelia Huck <cohuck@kernel.org>" # gpg: aka "Cornelia Huck <cohuck@redhat.com>" # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * remotes/cohuck/tags/s390x-20170830: (44 commits) s390x/pci: fixup trap_msix() pc-bios/s390-ccw.img: update image s390-ccw: Fix alignment for CCW1 s390x/s390-stattrib: Mark the storage attribute as not user_creatable target/s390x: cleanup cpu.h s390x/kvm: move KVM declarations and stubs to separate files s390x: avoid calling kvm_ functions outside of target/s390x/ target/s390x: move a couple of functions to cpu.c target/s390x: introduce internal.h target/s390x: move get_per_in_range() to misc_helper.c target/s390x: move s390_do_cpu_reset() to diag.c target/s390x: move psw_key_valid() to mem_helper.c target/s390x: move cpu_mmu_idx_to_asc() to excp_helper.c target/s390x: move cc_name() to helper.c target/s390x: move gtod_*() declarations to s390-virtio.h s390x: drop inclusion of sysemu/kvm.h from some files s390x/cpumodel: factor out determination of default model name target/s390x: no need to pass kvm_state to savevm_gtod handlers target/s390x: simplify gs_allowed() target/s390x: simplify ri_allowed() ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/hw/compat.h3
-rw-r--r--include/hw/pci/pci.h2
-rw-r--r--include/hw/s390x/css.h4
-rw-r--r--include/hw/s390x/ioinst.h12
-rw-r--r--include/hw/s390x/sclp.h17
5 files changed, 31 insertions, 7 deletions
diff --git a/include/hw/compat.h b/include/hw/compat.h
index 08f36004da..3e101f8f67 100644
--- a/include/hw/compat.h
+++ b/include/hw/compat.h
@@ -1,6 +1,9 @@
#ifndef HW_COMPAT_H
#define HW_COMPAT_H
+#define HW_COMPAT_2_10 \
+ /* empty */
+
#define HW_COMPAT_2_9 \
{\
.driver = "pci-bridge",\
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index e598b095eb..8bb6449dd7 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -10,6 +10,8 @@
#include "hw/pci/pcie.h"
+extern bool pci_available;
+
/* PCI bus */
#define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07))
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 5c5fe6b202..0653d3c9be 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -16,6 +16,7 @@
#include "hw/s390x/adapter.h"
#include "hw/s390x/s390_flic.h"
#include "hw/s390x/ioinst.h"
+#include "sysemu/kvm.h"
/* Channel subsystem constants. */
#define MAX_DEVNO 65535
@@ -150,7 +151,8 @@ void copy_scsw_to_guest(SCSW *dest, const SCSW *src);
void css_inject_io_interrupt(SubchDev *sch);
void css_reset(void);
void css_reset_sch(SubchDev *sch);
-void css_queue_crw(uint8_t rsc, uint8_t erc, int chain, uint16_t rsid);
+void css_queue_crw(uint8_t rsc, uint8_t erc, int solicited,
+ int chain, uint16_t rsid);
void css_generate_sch_crws(uint8_t cssid, uint8_t ssid, uint16_t schid,
int hotplugged, int add);
void css_generate_chp_crws(uint8_t cssid, uint8_t chpid);
diff --git a/include/hw/s390x/ioinst.h b/include/hw/s390x/ioinst.h
index 92d15655e4..5f2db6949d 100644
--- a/include/hw/s390x/ioinst.h
+++ b/include/hw/s390x/ioinst.h
@@ -201,8 +201,16 @@ typedef struct CRW {
#define CRW_FLAGS_MASK_A 0x0080
#define CRW_FLAGS_MASK_ERC 0x003f
-#define CRW_ERC_INIT 0x02
-#define CRW_ERC_IPI 0x04
+#define CRW_ERC_EVENT 0x00 /* event information pending */
+#define CRW_ERC_AVAIL 0x01 /* available */
+#define CRW_ERC_INIT 0x02 /* initialized */
+#define CRW_ERC_TERROR 0x03 /* temporary error */
+#define CRW_ERC_IPI 0x04 /* installed parm initialized */
+#define CRW_ERC_TERM 0x05 /* terminal */
+#define CRW_ERC_PERRN 0x06 /* perm. error, facility not init */
+#define CRW_ERC_PERRI 0x07 /* perm. error, facility init */
+#define CRW_ERC_PMOD 0x08 /* installed parameters modified */
+#define CRW_ERC_IPR 0x0A /* installed parameters restored */
#define CRW_RSC_SUBCH 0x3
#define CRW_RSC_CHP 0x4
diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h
index e71d526605..a72d096081 100644
--- a/include/hw/s390x/sclp.h
+++ b/include/hw/s390x/sclp.h
@@ -44,10 +44,10 @@
#define SCLP_CMDW_DECONFIGURE_CPU 0x00100001
/* SCLP PCI codes */
-#define SCLP_HAS_PCI_RECONFIG 0x0000000040000000ULL
-#define SCLP_CMDW_CONFIGURE_PCI 0x001a0001
-#define SCLP_CMDW_DECONFIGURE_PCI 0x001b0001
-#define SCLP_RECONFIG_PCI_ATPYE 2
+#define SCLP_HAS_IOA_RECONFIG 0x0000000040000000ULL
+#define SCLP_CMDW_CONFIGURE_IOA 0x001a0001
+#define SCLP_CMDW_DECONFIGURE_IOA 0x001b0001
+#define SCLP_RECONFIG_PCI_ATYPE 2
/* SCLP response codes */
#define SCLP_RC_NORMAL_READ_COMPLETION 0x0010
@@ -59,6 +59,7 @@
#define SCLP_RC_INSUFFICIENT_SCCB_LENGTH 0x0300
#define SCLP_RC_STANDBY_READ_COMPLETION 0x0410
#define SCLP_RC_ADAPTER_IN_RESERVED_STATE 0x05f0
+#define SCLP_RC_ADAPTER_TYPE_NOT_RECOGNIZED 0x06f0
#define SCLP_RC_ADAPTER_ID_NOT_RECOGNIZED 0x09f0
#define SCLP_RC_INVALID_FUNCTION 0x40f0
#define SCLP_RC_NO_EVENT_BUFFERS_STORED 0x60f0
@@ -167,6 +168,14 @@ typedef struct AssignStorage {
uint16_t rn;
} QEMU_PACKED AssignStorage;
+typedef struct IoaCfgSccb {
+ SCCBHeader header;
+ uint8_t atype;
+ uint8_t reserved1;
+ uint16_t reserved2;
+ uint32_t aid;
+} QEMU_PACKED IoaCfgSccb;
+
typedef struct SCCB {
SCCBHeader h;
char data[SCCB_DATA_LEN];