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.
+ CCW bus addresses have the following additional attributes:
+ <code>cssid</code> (a hex value between 0 and 0xfe, inclusive),
+ <code>ssid</code> (a value between 0 and 3, inclusive) and
+ <code>schid</code> (a hex value between 0 and 0xffff, inclusive).
+ Partially specified bus addresses are not allowed.
+ If omitted, libvirt will assign a free bus address with
+ cssid=0xfe and ssid=0. Virtio devices for s390 must have their
+ cssid set to 0xfe in order to be recognized by the guest
+ operating system.
+ <span class="since">Since 1.0.3.</span>
+ </dd>
</dl>
<h4><a name="elementsControllers">Controllers</a></h4>
<optional>
<attribute name="machine">
<choice>
+ <value>s390</value>
<value>s390-virtio</value>
+ <value>s390-ccw</value>
+ <value>s390-ccw-virtio</value>
</choice>
</attribute>
</optional>
</attribute>
</optional>
</define>
+ <define name="ccwaddress">
+ <optional>
+ <attribute name="cssid">
+ <ref name="ccwCssidRange"/>
+ </attribute>
+ <attribute name="ssid">
+ <ref name="ccwSsidRange"/>
+ </attribute>
+ <attribute name="schid">
+ <ref name="ccwSchidRange"/>
+ </attribute>
+ </optional>
+ </define>
<define name="driveaddress">
<optional>
<attribute name="controller">
</attribute>
<ref name="spaprvioaddress"/>
</group>
+ <group>
+ <attribute name="type">
+ <value>ccw</value>
+ </attribute>
+ <ref name="ccwaddress"/>
+ </group>
</choice>
</element>
</define>
</element>
<empty/>
</define>
+ <define name="ccwCssidRange">
+ <choice>
+ <data type="string">
+ <param name="pattern">0x[0-9a-eA-E][0-9a-fA-F]?</param>
+ </data>
+ <data type="string">
+ <param name="pattern">0x[fF][0-9a-eA-E]?</param>
+ </data>
+ <data type="int">
+ <param name="minInclusive">0</param>
+ <param name="maxInclusive">254</param>
+ </data>
+ </choice>
+ </define>
+ <define name="ccwSsidRange">
+ <data type="string">
+ <param name="pattern">(0x)?[0-3]</param>
+ </data>
+ </define>
+ <define name="ccwSchidRange">
+ <choice>
+ <data type="string">
+ <param name="pattern">0x[0-9a-fA-F]{1,4}</param>
+ </data>
+ <data type="int">
+ <param name="minInclusive">0</param>
+ <param name="maxInclusive">65535</param>
+ </data>
+ </choice>
+ </define>
</grammar>