|
|
@@ -1,44 +1,47 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!--
|
|
|
-
|
|
|
+<!--
|
|
|
+
|
|
|
Copyright (c) 2013-2016 ARM Limited. All rights reserved.
|
|
|
-
|
|
|
+
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
|
-
|
|
|
+
|
|
|
Licensed under the Apache License, Version 2.0 (the License); you may
|
|
|
not use this file except in compliance with the License.
|
|
|
You may obtain a copy of the License at
|
|
|
-
|
|
|
+
|
|
|
www.apache.org/licenses/LICENSE-2.0
|
|
|
-
|
|
|
+
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
See the License for the specific language governing permissions and
|
|
|
limitations under the License.
|
|
|
-
|
|
|
- $Date: 03. September 2018
|
|
|
- $Revision: 1.3.4
|
|
|
+
|
|
|
+ $Date: 04. September 2018
|
|
|
+ $Revision: 1.3.5
|
|
|
+
|
|
|
+ Version 1.3.5:
|
|
|
+ - add CM35P as enumeration value for cpuNameType.
|
|
|
|
|
|
Version 1.3.4:
|
|
|
- add dspPresent element to cpuType as SIMD instructions became optional for new processors.
|
|
|
-
|
|
|
+
|
|
|
Version 1.3.3:
|
|
|
- update file header to Apache 2.0 License
|
|
|
- add dimableIdentifierType, as a copy of previous identifierType adding "%s",
|
|
|
- update identifierType to only allow names without %s included.
|
|
|
- remove enumerationNameType.
|
|
|
- - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays
|
|
|
+ - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays
|
|
|
overwriting hierarchically generated names
|
|
|
- add dimName to dimElementGroup. Only valid in <cluster> context, ignored otherwise.
|
|
|
-
|
|
|
+
|
|
|
Version 1.3.2:
|
|
|
adding dimIndexArray to peripheral-, cluster- and register-array to describe
|
|
|
enumeration of array indices.
|
|
|
|
|
|
Version 1.3.1:
|
|
|
fixed peripheral name element type to identifierType to support %s for peripheral arrays
|
|
|
- added optional protection element to addressBlockType and added p=privileged
|
|
|
+ added optional protection element to addressBlockType and added p=privileged
|
|
|
|
|
|
Version 1.3:
|
|
|
added dim to peripherals to describe an array of peripherals.
|
|
|
@@ -46,16 +49,16 @@
|
|
|
added protection element as part of the registerPropertiesGroup indicating
|
|
|
special permissions are required for accessing a register.
|
|
|
CPU Section extended with description of the Secure Attribution Unit.
|
|
|
-
|
|
|
+
|
|
|
Version 1.2:
|
|
|
Cortex-M7 support items have been added as optional tags for the device header file generation:
|
|
|
fpuDP, icachePresent, dcachePresent, itcmPresent, dtcmPresent
|
|
|
-
|
|
|
+
|
|
|
Version 1.1:
|
|
|
For backward compatibility all additional tags have been made optional.
|
|
|
Extensions may be mandatory for successful device header file generation
|
|
|
Other changes are related to some restructuring of the schema.
|
|
|
-
|
|
|
+
|
|
|
Note that the memory section has been removed since this would limit the
|
|
|
reuse of descriptions for a series of devices.
|
|
|
-->
|
|
|
@@ -73,7 +76,7 @@
|
|
|
<xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]*" />
|
|
|
</xs:restriction>
|
|
|
</xs:simpleType>
|
|
|
-
|
|
|
+
|
|
|
<!-- cpuType specifies a selection of Cortex-M and Secure-Cores. This list will get extended as new processors are released -->
|
|
|
<xs:simpleType name="cpuNameType">
|
|
|
<xs:restriction base="xs:token">
|
|
|
@@ -85,6 +88,7 @@
|
|
|
<xs:enumeration value="CM23"/>
|
|
|
<xs:enumeration value="CM3"/>
|
|
|
<xs:enumeration value="CM33"/>
|
|
|
+ <xs:enumeration value="CM35P"/>
|
|
|
<xs:enumeration value="SC300"/>
|
|
|
<xs:enumeration value="CM4"/>
|
|
|
<xs:enumeration value="CM7"/>
|
|
|
@@ -283,8 +287,8 @@
|
|
|
<xs:element name="value" type="xs:integer"/>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
- <!-- register properties group specifies register size, access permission and reset value
|
|
|
- this is used in multiple locations. Settings are inherited downstream. -->
|
|
|
+ <!-- register properties group specifies register size, access permission and reset value
|
|
|
+ this is used in multiple locations. Settings are inherited downstream. -->
|
|
|
<xs:group name="registerPropertiesGroup">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/>
|
|
|
@@ -295,7 +299,7 @@
|
|
|
<xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/>
|
|
|
</xs:sequence>
|
|
|
</xs:group>
|
|
|
- <!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register
|
|
|
+ <!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register
|
|
|
by specifying the least significant and the most significant bit position -->
|
|
|
<xs:group name="bitRangeLsbMsbStyle">
|
|
|
<xs:sequence>
|
|
|
@@ -308,12 +312,12 @@
|
|
|
<xs:group name="bitRangeOffsetWidthStyle">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="bitOffset" type="scaledNonNegativeInteger"/>
|
|
|
- <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>
|
|
|
- </xs:sequence>
|
|
|
+ <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>
|
|
|
+ </xs:sequence>
|
|
|
</xs:group>
|
|
|
-
|
|
|
+
|
|
|
<!-- dimElementGroup specifies the number of array elements (dim), the address offset
|
|
|
- between to consecutive array elements and an a comma seperated list of strings
|
|
|
+ between to consecutive array elements and an a comma seperated list of strings
|
|
|
being used for identifying each element in the array -->
|
|
|
<xs:group name="dimElementGroup">
|
|
|
<xs:sequence>
|
|
|
@@ -401,7 +405,7 @@
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
-
|
|
|
+
|
|
|
<xs:complexType name="enumerationType">
|
|
|
<xs:sequence>
|
|
|
<!-- name specfies a reference to this enumeratedValues section for reuse purposes
|
|
|
@@ -409,7 +413,7 @@
|
|
|
<xs:element name="name" type="identifierType" minOccurs="0"/>
|
|
|
<!-- overrides the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description -->
|
|
|
<xs:element name="headerEnumName" type="identifierType" minOccurs="0"/>
|
|
|
- <!-- usage specifies whether this enumeration is to be used for read or write or
|
|
|
+ <!-- usage specifies whether this enumeration is to be used for read or write or
|
|
|
(read and write) accesses -->
|
|
|
<xs:element name="usage" type="enumUsageType" minOccurs="0"/>
|
|
|
<!-- enumeratedValue derivedFrom=<identifierType> -->
|
|
|
@@ -431,7 +435,7 @@
|
|
|
<!-- name specifies a field's name. The System Viewer and the device header file will
|
|
|
use the name of the field as identifier -->
|
|
|
<xs:element name="name" type="dimableIdentifierType"/>
|
|
|
- <!-- description contains reference manual level information about the function and
|
|
|
+ <!-- description contains reference manual level information about the function and
|
|
|
options of a field -->
|
|
|
<xs:element name="description" type="stringType" minOccurs="0"/>
|
|
|
<!-- alternative specifications of the bit position of the field within the register -->
|
|
|
@@ -554,16 +558,16 @@
|
|
|
<xs:element name="alternatePeripheral" type="dimableIdentifierType" minOccurs="0"/>
|
|
|
<!-- groupName assigns this peripheral to a group of peripherals. This is only used bye the System View -->
|
|
|
<xs:element name="groupName" type="xs:Name" minOccurs="0"/>
|
|
|
- <!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral.
|
|
|
+ <!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral.
|
|
|
The device header file will show the registers in a C-Struct of the peripheral without the prefix. -->
|
|
|
<xs:element name="prependToName" type="identifierType" minOccurs="0"/>
|
|
|
- <!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header
|
|
|
+ <!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header
|
|
|
file will sho the registers in a C-Struct of the peripheral without the postfix -->
|
|
|
<xs:element name="appendToName" type="identifierType" minOccurs="0"/>
|
|
|
<!-- V1.1: headerStructName specifies the name for the peripheral structure typedef
|
|
|
used in the device header generation instead of the peripheral name -->
|
|
|
<xs:element name="headerStructName" type="dimableIdentifierType" minOccurs="0"/>
|
|
|
- <!-- disableCondition contains a logical expression based on constants and register or bit-field values
|
|
|
+ <!-- disableCondition contains a logical expression based on constants and register or bit-field values
|
|
|
if the condition is evaluated to true, the peripheral display will be disabled -->
|
|
|
<xs:element name="disableCondition" type="stringType" minOccurs="0"/>
|
|
|
<!-- baseAddress specifies the absolute base address of a peripheral. For derived peripherals it is mandatory
|
|
|
@@ -572,21 +576,21 @@
|
|
|
<!-- registerPropertiesGroup elements specify the default values for register size, access permission and
|
|
|
reset value. These default values are inherited to all registers contained in this peripheral -->
|
|
|
<xs:group ref="registerPropertiesGroup" minOccurs="0"/>
|
|
|
- <!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral.
|
|
|
+ <!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral.
|
|
|
derived peripherals may have no addressBlock, however none-derived peripherals are required to specify
|
|
|
at least one address block -->
|
|
|
<xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
<!-- interrupt specifies can specify one or more interrtupts by name, description and value -->
|
|
|
<xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
<!-- registers section contains all registers owned by the peripheral. In case a peripheral gets derived it does
|
|
|
- not have its own registers section, hence this section is optional. A unique peripheral without a
|
|
|
+ not have its own registers section, hence this section is optional. A unique peripheral without a
|
|
|
registers section is not allowed -->
|
|
|
<xs:element name="registers" type="registersType" minOccurs="0" maxOccurs="1">
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
|
|
|
</xs:complexType>
|
|
|
-
|
|
|
+
|
|
|
<!-- ==================================================== -->
|
|
|
<!-- The top level element of a description is the device -->
|
|
|
<!-- ==================================================== -->
|
|
|
@@ -612,7 +616,7 @@
|
|
|
<!-- V1.1: the tag specifies the filename without extension of the CMSIS System Device include file.
|
|
|
This tag is used by the header file generator for customizing the include statement referencing the
|
|
|
CMSIS system file within the CMSIS device header file. By default the filename is "system_<device.name>"
|
|
|
- In cases a device series shares a single system header file, the name of the series shall be used
|
|
|
+ In cases a device series shares a single system header file, the name of the series shall be used
|
|
|
instead of the individual device name. -->
|
|
|
<xs:element name="headerSystemFilename" type="identifierType" minOccurs="0"/>
|
|
|
<!-- V1.1: headerDefinitionPrefix specifies the string being prepended to all names of types defined in
|