1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<device xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.1" xs:noNamespaceSchemaLocation="svd_schema.xsd">
3 <peripheral>
4  <name>SEMA</name>
5  <description>The Semaphore peripheral allows multiple cores in a system to cooperate when accessing shred resources.
6                                     The peripheral contains eight semaphores that can be atomically set and cleared. It is left to the discretion of the software
7                                     architect to decide how and when the semaphores are used and how they are allocated. Existing hardware does not have to be
8
9                                     modified for this type of cooperative sharing, and the use of semaphores is exclusively within the software domain.</description>
10  <baseAddress>0x4003E000</baseAddress>
11  <addressBlock>
12   <offset>0x00</offset>
13   <size>0x1000</size>
14   <usage>registers</usage>
15  </addressBlock>
16  <registers>
17   <register>
18    <dim>8</dim>
19    <dimIncrement>4</dimIncrement>
20    <name>SEMAPHORES[%s]</name>
21    <description>Read to test and set, returns prior value. Write 0 to clear semaphore.</description>
22    <addressOffset>0x00</addressOffset>
23    <size>32</size>
24    <fields>
25     <field>
26      <name>sema</name>
27      <bitOffset>0</bitOffset>
28      <bitWidth>1</bitWidth>
29     </field>
30    </fields>
31   </register>
32   <register>
33    <name>irq0</name>
34    <description>Semaphore IRQ0 register.</description>
35    <addressOffset>0x40</addressOffset>
36    <size>32</size>
37    <fields>
38     <field>
39      <name>en</name>
40      <bitOffset>0</bitOffset>
41      <bitWidth>1</bitWidth>
42     </field>
43     <field>
44      <name>cm4_irq</name>
45      <bitOffset>16</bitOffset>
46      <bitWidth>1</bitWidth>
47     </field>
48    </fields>
49   </register>
50   <register>
51    <name>mail0</name>
52    <description>Semaphore Mailbox 0 register.</description>
53    <addressOffset>0x44</addressOffset>
54    <size>32</size>
55    <fields>
56     <field>
57      <name>data</name>
58      <bitOffset>0</bitOffset>
59      <bitWidth>32</bitWidth>
60     </field>
61    </fields>
62   </register>
63   <register>
64    <name>irq1</name>
65    <description>Semaphore IRQ1 register.</description>
66    <addressOffset>0x48</addressOffset>
67    <size>32</size>
68    <fields>
69     <field>
70      <name>en</name>
71      <bitOffset>0</bitOffset>
72      <bitWidth>1</bitWidth>
73     </field>
74     <field>
75      <name>rv32_irq</name>
76      <bitOffset>16</bitOffset>
77      <bitWidth>1</bitWidth>
78     </field>
79    </fields>
80   </register>
81   <register>
82    <name>mail1</name>
83    <description>Semaphore Mailbox 1 register.</description>
84    <addressOffset>0x4C</addressOffset>
85    <size>32</size>
86    <fields>
87     <field>
88      <name>data</name>
89      <bitOffset>0</bitOffset>
90      <bitWidth>32</bitWidth>
91     </field>
92    </fields>
93   </register>
94   <register>
95    <name>status</name>
96    <description>Semaphore status bits. 0 indicates the semaphore is free, 1 indicates taken.</description>
97    <addressOffset>0x100</addressOffset>
98    <size>32</size>
99    <fields>
100     <field>
101      <name>status0</name>
102      <bitOffset>0</bitOffset>
103      <bitWidth>1</bitWidth>
104     </field>
105     <field>
106      <name>status1</name>
107      <bitOffset>1</bitOffset>
108      <bitWidth>1</bitWidth>
109     </field>
110     <field>
111      <name>status2</name>
112      <bitOffset>2</bitOffset>
113      <bitWidth>1</bitWidth>
114     </field>
115     <field>
116      <name>status3</name>
117      <bitOffset>3</bitOffset>
118      <bitWidth>1</bitWidth>
119     </field>
120     <field>
121      <name>status4</name>
122      <bitOffset>4</bitOffset>
123      <bitWidth>1</bitWidth>
124     </field>
125     <field>
126      <name>status5</name>
127      <bitOffset>5</bitOffset>
128      <bitWidth>1</bitWidth>
129     </field>
130     <field>
131      <name>status6</name>
132      <bitOffset>6</bitOffset>
133      <bitWidth>1</bitWidth>
134     </field>
135     <field>
136      <name>status7</name>
137      <bitOffset>7</bitOffset>
138      <bitWidth>1</bitWidth>
139     </field>
140    </fields>
141   </register>
142  </registers>
143 </peripheral>
144<!-- SEMA:
145                                         Semaphore                            -->
146</device>
147