The native bus for s390 I/O is called CCW (channel command word).
As QEMU has added basic support for the CCW bus, i.e. the
ability to assign CCW devnos (bus addresses) to devices.
Domains with the new machine type s390-ccw-virtio can use the
CCW bus. Currently QEMU will only allow to define virtio
devices on the CCW bus.
Here we add the new machine type and the new device address to the
schema definition and add a new paragraph to the domain XML
documentation.
Signed-off-by: Viktor Mihajlovski <mihajlov(a)linux.vnet.ibm.com>
---
docs/formatdomain.html.in | 12 ++++++++++++
docs/schemas/domaincommon.rng | 21 +++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index c01f564..1dac880 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2018,6 +2018,18 @@
of the starting register). <span class="since">Since
0.9.9.</span>
</dd>
+ <dt><code>type='ccw'</code></dt>
+ <dd>s390 guests with a <code>machine</code> value of
+ s390-ccw-virtio use the native CCW bus for I/O devices.
+ A CCW bus address can be specified using the additional
+ attribute: <code>devno</code> consisting of three dot-seperated
+ numbers composed of 2, 1 and 4 hex digits, e.g., 'fe.0.1234'.
+ Since the current implemention of QEMU only supports virtio
+ devices for s390 and this class of devices is restricted to
+ channel subsystem number 'fe' by the s390 architecture, a valid
+ devno lies in the range from 'fe.0.0000' to 'fe.3.ffff'.
+ <span class="since">Since 1.0.3.</span>
+ </dd>
</dl>
<h4><a
name="elementsControllers">Controllers</a></h4>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 049f232..744ab23 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -401,7 +401,10 @@
<optional>
<attribute name="machine">
<choice>
+ <value>s390</value>
<value>s390-virtio</value>
+ <value>s390-ccw</value>
+ <value>s390-ccw-virtio</value>
</choice>
</attribute>
</optional>
@@ -3037,6 +3040,13 @@
</attribute>
</optional>
</define>
+ <define name="ccwaddress">
+ <optional>
+ <attribute name="devno">
+ <ref name="ccwDevno"/>
+ </attribute>
+ </optional>
+ </define>
<define name="driveaddress">
<optional>
<attribute name="controller">
@@ -3469,6 +3479,12 @@
</attribute>
<ref name="spaprvioaddress"/>
</group>
+ <group>
+ <attribute name="type">
+ <value>ccw</value>
+ </attribute>
+ <ref name="ccwaddress"/>
+ </group>
</choice>
</element>
</define>
@@ -3856,4 +3872,9 @@
</element>
<empty/>
</define>
+ <define name="ccwDevno">
+ <data type="string">
+ <param
name="pattern">[0-9a-fA-F]{1,2}\.[0-3]\.[0-9a-fA-F]{4}</param>
+ </data>
+ </define>
</grammar>
--
1.7.9.5