diff options
Diffstat (limited to 'utils/regtools/desc/spec-2.0.txt')
-rw-r--r-- | utils/regtools/desc/spec-2.0.txt | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/utils/regtools/desc/spec-2.0.txt b/utils/regtools/desc/spec-2.0.txt index 79b9f6be44..be97fbc41a 100644 --- a/utils/regtools/desc/spec-2.0.txt +++ b/utils/regtools/desc/spec-2.0.txt | |||
@@ -120,6 +120,23 @@ usual arithmetic operators. The example below illustrate such a use: | |||
120 | </instance> | 120 | </instance> |
121 | </node> | 121 | </node> |
122 | 122 | ||
123 | In the case when the addresses do not follow a regular pattern or a formula would | ||
124 | be too complicated, it is always possible to specify the addresses as a list: | ||
125 | |||
126 | <node> | ||
127 | <name>N</name> | ||
128 | <instance> | ||
129 | <name>F</name> | ||
130 | <range> | ||
131 | <first>0</first> | ||
132 | <address>0x50</address> | ||
133 | <address>0x60</address> | ||
134 | <address>0x90</address> | ||
135 | <address>0x110</address> | ||
136 | </range> | ||
137 | </instance> | ||
138 | </node> | ||
139 | |||
123 | In this example we generate four nodes F[0], ..., F[3] with a formula. Here "/" | 140 | In this example we generate four nodes F[0], ..., F[3] with a formula. Here "/" |
124 | is the euclidian division and "%" is the modulo operator. Note the use of an | 141 | is the euclidian division and "%" is the modulo operator. Note the use of an |
125 | attribute to specify which variable represents the index. The generated addresses | 142 | attribute to specify which variable represents the index. The generated addresses |
@@ -177,6 +194,7 @@ and an optional description. The example below illustrates all these concepts: | |||
177 | 194 | ||
178 | <register> | 195 | <register> |
179 | <width>8</width> | 196 | <width>8</width> |
197 | <desc>This register controls the parameters of the interrupt: priority, IRQ/FIQ and enable</desc> | ||
180 | <field> | 198 | <field> |
181 | <name>MODE</name> | 199 | <name>MODE</name> |
182 | <desc>Interrupt mode</desc> | 200 | <desc>Interrupt mode</desc> |
@@ -218,6 +236,10 @@ and an optional description. The example below illustrates all these concepts: | |||
218 | <value>1</value> | 236 | <value>1</value> |
219 | </enum> | 237 | </enum> |
220 | </field> | 238 | </field> |
239 | <variant> | ||
240 | <type>set</type> | ||
241 | <offset>0x4</offset> | ||
242 | </variant> | ||
221 | </register> | 243 | </register> |
222 | 244 | ||
223 | In this example, the 8-bit registers has three fields: | 245 | In this example, the 8-bit registers has three fields: |
@@ -350,7 +372,15 @@ Element: register | |||
350 | It can contain at most one of each of the following tags: | 372 | It can contain at most one of each of the following tags: |
351 | - width: width in bits (positive number) | 373 | - width: width in bits (positive number) |
352 | It can contain any number of the following tags: | 374 | It can contain any number of the following tags: |
375 | - desc: free form description of the register | ||
353 | - field: field description | 376 | - field: field description |
377 | - variant: variant description | ||
378 | |||
379 | Element: variant | ||
380 | -------------- | ||
381 | It must contain the following tags: | ||
382 | - type: name of type, only made of alphanumerical characters | ||
383 | - offset: offset with respect to register address | ||
354 | 384 | ||
355 | Element: field | 385 | Element: field |
356 | -------------- | 386 | -------------- |