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>