1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4
<xsd:element name="model">
7
<xsd:element name="banks" type="banks_type"/>
8
<xsd:element name="views" type="views_type" minOccurs="0" maxOccurs="1"/>
11
<xsd:key name="Registerkey">
12
<xsd:selector xpath="views/view/name"/>
13
<xsd:field xpath="."/>
15
<xsd:keyref refer="Registerkey" name="RegisterkeyRef">
16
<xsd:selector xpath="banks/bank/registers/register/views/view"/>
17
<xsd:field xpath="."/>
19
<xsd:key name="Registerbitskey">
20
<xsd:selector xpath="views/view/name"/>
21
<xsd:field xpath="."/>
23
<xsd:keyref refer="Registerbitskey" name="RegisterbitskeyRef">
24
<xsd:selector xpath="banks/bank/registers/register/registers_bits/register_bits/views/view"/>
25
<xsd:field xpath="."/>
30
<xsd:complexType name="views_type">
32
<xsd:element name="view" type="view_type" maxOccurs="unbounded"/>
37
<xsd:complexType name="banks_type">
39
<xsd:element name="bank" type="banktype" minOccurs="1" maxOccurs="12"/>
43
<xsd:complexType name="banktype">
45
<xsd:element name="bank_description" type="bank_description_t"/>
46
<xsd:element name="registers" type="registerstype" minOccurs="0" maxOccurs="1"/>
50
<xsd:complexType name="bank_description_t">
52
<xsd:element name="bar" type="bar_type"/>
53
<xsd:element name="size" type="hexa_and_integer64_t"/>
54
<xsd:element name="protocol" type="xsd:string"/>
55
<xsd:element name="read_address" type="hex64_t"/>
56
<xsd:element name="write_address" type="hex64_t"/>
57
<xsd:element name="word_size" type="uint8_t"/>
58
<xsd:element name="endianess" type="endianess_type"/>
59
<xsd:element name="format" type="xsd:string"/>
60
<xsd:element name="name" type="xsd:string"/>
61
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
66
<xsd:complexType name="registerstype">
68
<xsd:element name="register" type="register_type" minOccurs="0" maxOccurs="256"/>
72
<xsd:complexType name="register_type">
74
<xsd:element name="address" type="hexa_and_integer32_t"/>
75
<xsd:element name="offset" type="uint8_t"/>
76
<xsd:element name="size" type="uint8_t"/>
77
<xsd:element name="default" type="hexa_and_integer32_t"/>
78
<xsd:element name="rwmask" type="rwmask_type"/>
79
<xsd:element name="mode" type="pcilib_register_mode_t"/>
80
<xsd:element name="name" type="xsd:string"/>
81
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
82
<xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
83
<xsd:element name="registers_bits" type="registers_bits_type" minOccurs="0" maxOccurs="1"/>
84
<xsd:element name="value_min" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
85
<xsd:element name="value_max" type="hexa_and_integer32_t" minOccurs="0" maxOccurs="1"/>
89
<xsd:complexType name="registers_bits_type">
91
<xsd:element name="register_bits" type="register_bits_type" minOccurs="1" maxOccurs="32"/>
95
<xsd:complexType name="reg_to_views_type">
97
<xsd:element name="view" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
101
<xsd:complexType name="register_bits_type">
103
<xsd:element name="offset" type="uint8_t"/>
104
<xsd:element name="size" type="uint8_t"/>
105
<xsd:element name="mode" type="pcilib_register_mode_t"/>
106
<xsd:element name="name" type="xsd:string"/>
107
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
108
<xsd:element name="views" type="reg_to_views_type" minOccurs="0" maxOccurs="1"/>
113
<xsd:simpleType name="uint8_t">
114
<xsd:restriction base="xsd:integer">
115
<xsd:minInclusive value="0"/>
116
<xsd:maxInclusive value="255"/>
120
<xsd:simpleType name="size_t">
121
<xsd:restriction base="xsd:integer">
122
<xsd:minInclusive value="0"/>
123
<xsd:maxInclusive value="18446744073709551615"/>
127
<xsd:simpleType name="uintptr_t">
128
<xsd:restriction base="xsd:integer">
129
<xsd:minInclusive value="0"/>
130
<xsd:maxInclusive value="18446744073709551615"/>
134
<xsd:simpleType name="uint32_t">
135
<xsd:restriction base="xsd:integer">
136
<xsd:minInclusive value="0"/>
137
<xsd:maxInclusive value="4294967295"/>
141
<xsd:simpleType name="pcilib_register_mode_t">
142
<xsd:restriction base="xsd:string">
143
<xsd:enumeration value="R"/>
144
<xsd:enumeration value="W"/>
145
<xsd:enumeration value="RW"/>
146
<xsd:enumeration value="W1C"/>
147
<xsd:enumeration value="RW1C"/>
151
<xsd:simpleType name="bank_adress_type">
152
<xsd:restriction base="xsd:string">
153
<xsd:enumeration value="bank 0"/>
154
<xsd:enumeration value="bank 1"/>
155
<xsd:enumeration value="bank 2"/>
156
<xsd:enumeration value="bank 3"/>
157
<xsd:enumeration value="DMA bank"/>
161
<xsd:simpleType name="endianess_type">
162
<xsd:restriction base="xsd:string">
163
<xsd:enumeration value="little"/>
164
<xsd:enumeration value="big"/>
165
<xsd:enumeration value="host"/>
169
<xsd:simpleType name="bar_type">
170
<xsd:restriction base="xsd:integer">
171
<xsd:enumeration value="0"/>
172
<xsd:enumeration value="1"/>
176
<xsd:simpleType name="space_adress_type">
177
<xsd:restriction base="xsd:string">
178
<xsd:enumeration value="write adress"/>
179
<xsd:enumeration value="read adress"/>
180
<xsd:enumeration value="space adress"/>
181
<xsd:enumeration value="0"/>
185
<xsd:simpleType name="rwmask_type">
186
<xsd:restriction base="xsd:string">
187
<xsd:enumeration value="all"/>
188
<xsd:enumeration value="0"/>
192
<xsd:simpleType name="hexa_and_integer32_t">
193
<xsd:union memberTypes="uint32_t hex32_t"/>
196
<xsd:simpleType name="hex32_t">
197
<xsd:restriction base="xsd:string">
198
<xsd:pattern value="0x([a-fA-F0-9]){0,8}"/>
202
<xsd:simpleType name="hexa_and_integer64_t">
203
<xsd:union memberTypes="size_t hex64_t"/>
206
<xsd:simpleType name="hex64_t">
207
<xsd:restriction base="xsd:string">
208
<xsd:pattern value="0x([a-fA-F0-9]){0,16}"/>
212
<xsd:complexType name="view_type">
214
<xsd:element name="name" type="xsd:ID"/>
215
<xsd:element name="unit" type="xsd:string" minOccurs="0" maxOccurs="1"/>
216
<xsd:element name="read_from_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
217
<xsd:element name="write_to_register" type="xsd:string" minOccurs="0" maxOccurs="1"/>
218
<xsd:element name="enum" type="enum_t" minOccurs="0" maxOccurs="unbounded"/>
219
<xsd:element name="description" type="xsd:string"/>
221
<xsd:attribute name="type" type="viewtype_type" use="required"/>
224
<xsd:complexType name="enum_t">
226
<xsd:extension base="xsd:string">
227
<xsd:attribute name="value" type="hexa_and_integer64_t" use="required"/>
228
<xsd:attribute name="min" type="hexa_and_integer64_t"/>
229
<xsd:attribute name="max" type="hexa_and_integer64_t"/>
234
<xsd:simpleType name="viewtype_type">
235
<xsd:restriction base="xsd:string">
236
<xsd:enumeration value="enum"/>
237
<xsd:enumeration value="formula"/>