diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2017-08-31 11:29:41 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2017-08-31 11:29:41 +0100 |
| commit | 1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129 (patch) | |
| tree | 205bb4ccc831f6db1866e45985d96137457f42f6 /include | |
| parent | 1201d308519f1e915866d7583d5136d03cc1d384 (diff) | |
| parent | 2f21b8d431030bcb7478ee9521bdfd3d0ef3901d (diff) | |
| download | focaccia-qemu-1415e8ea1fa24ad94b49a03aaf9d21fc95aaa129.tar.gz focaccia-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.h | 3 | ||||
| -rw-r--r-- | include/hw/pci/pci.h | 2 | ||||
| -rw-r--r-- | include/hw/s390x/css.h | 4 | ||||
| -rw-r--r-- | include/hw/s390x/ioinst.h | 12 | ||||
| -rw-r--r-- | include/hw/s390x/sclp.h | 17 |
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]; |