Преглед на файлове

tz_setup added to FreeMarker output

reinhardkeil преди 7 години
родител
ревизия
4b6254a8d0
променени са 3 файла, в които са добавени 190 реда и са изтрити 37 реда
  1. 84 18
      CMSIS/DoxyGen/Zone/src/GenDataModel.txt
  2. 105 18
      CMSIS/DoxyGen/Zone/src/XML_Format.txt
  3. 1 1
      CMSIS/DoxyGen/Zone/zone.dxy

+ 84 - 18
CMSIS/DoxyGen/Zone/src/GenDataModel.txt

@@ -10,12 +10,12 @@ various files that can be used to configure development tools or hardware compon
 
 \section fp_toplevel FreeMarker top-level format
 
-\section fm_system /fm/system element
+\section fm_system system element
 
 The \ref fm_system provides the memory layout and the interrupt configuration of the complete system. 
 This information can be used for example, to create a linker script that defines the memory setup of the SoC system.
 
-<table class="cmtable" summary="Element: zone">
+<table class="cmtable" summary="Element: system">
   <tr>
     <th>Child Elements</th>
     <th>Description</th>
@@ -26,19 +26,36 @@ This information can be used for example, to create a linker script that defines
     <td>A sequence of all memory regions available in the system resource file.</td>
     <td>sequence</td>
   </tr>
+</table>
+
+\section fm_setup_tz setup_tz element
+
+The \ref fm_setup_tz provides the setup information for the initial TrustZone-M configuration.
+
+<table class="cmtable" summary="Element: setup_tz">
+  <tr>
+    <th>Child Elements</th>
+    <th>Description</th>
+    <th>Type</th>
+  </tr>
+  <tr>
+    <td>\subpage fm_sau ".sau"</td>
+    <td>A sequence of all SAU regions for initialization.</td>
+    <td>sequence</td>
+  </tr>
   <tr>
     <td>\subpage fm_interrupt ".interrupt"</td>
     <td>A sequence of all interrupt sources available.</td>
     <td>sequence</td>
   </tr>
   <tr>
-    <td>\subpage fm_irq_setup ".irq_setup"</td>
-    <td>Contains device specific configuration for the setup of the interrupts.</td>
+    <td>\subpage fm_reg_setup ".reg_setup"</td>
+    <td>Contains the device specific configuration registers for the setup of the peripherals.</td>
     <td>sequence</td>
   </tr>
 </table>
   
-\section fm_zone /fm/zone element
+\section fm_zone zone element
 
 The \ref fm_zone provides the setup information of a zone (or system partition) along with related peripherals.
 This information can be used for example, to create the MPU setup that is required for various execution zones along with
@@ -114,7 +131,7 @@ Printing a sorted list of all available memory entries by start address
 
 /**************************************************************************************************/
 /**
-\page fm_memory /fm/../memory[n] sequence element
+\page fm_memory ../memory[n] sequence element
 
 The \ref fm_memory provides a sequence of memory information.
 
@@ -201,9 +218,14 @@ The \ref fm_memory provides a sequence of memory information.
 
 /**************************************************************************************************/
 /**
-\page fm_interrupt /fm/system/interrupt[n] sequence element
+\page fm_sau setup_tz/sau[n] sequence element
 
-The \ref fm_interrupt lists all interrupt sources available in the system.
+The \ref fm_sau lists all SAU regions for initialization in this system.
+
+It lists all SAU regions that require either non-secure access or non-secure callable attribute.
+The SAU region list is generated from:
+  - setup information from \ref xml_si_region
+  - memory regions that are assigned to zones with non-secure domain.
 
 <table class="cmtable" summary="Element: interrupt[n]">
   <tr>
@@ -211,14 +233,58 @@ The \ref fm_interrupt lists all interrupt sources available in the system.
     <th colspan="2">Element Chain</th>
   </tr>
   <tr>
-    <td>\ref fm_system "system"</td>
-    <td colspan=3>\ref fm_system</td>
+    <td>\ref fm_setup_tz "setup_tz"</td>
+    <td colspan=3>\ref fm_setup_tz</td>
   </tr>
   <tr>
     <th>Child Elements</th>
     <th>Description</th>
     <th>Type</th>
   </tr>
+  <tr>
+    <td>.start</td>
+    <td>The logical start address for the region.</td>
+    <td>xs:string</td>
+  </tr>
+  <tr>
+    <td>.end</td>
+    <td>The logical end address for the region.</td>
+    <td>xs:string</td>
+  </tr>
+  <tr>
+    <td>.nsc</td>
+    <td>If set to 1 the region is secure, non-secure callable.</td>
+    <td>SecurityTypeEnum/xs:string</td>
+  </tr>
+  <tr>
+    <td>.info</td>
+    <td>List of memory regions or info from \ref xml_si_region.</td>
+    <td>xs:string</td>
+  </tr>
+</table>
+*/
+
+
+/**************************************************************************************************/
+/**
+\page fm_interrupt setup_tz/interrupt[n] sequence element
+
+The \ref fm_interrupt lists all interrupt sources available in the system.
+
+<table class="cmtable" summary="Element: interrupt[n]">
+  <tr>
+    <th>Parent Element</th>
+    <th colspan="2">Element Chain</th>
+  </tr>
+  <tr>
+    <td>\ref fm_setup_tz "setup_tz"</td>
+    <td colspan=3>\ref fm_setup_tz</td>
+  </tr>s
+  <tr>
+    <th>Child Elements</th>
+    <th>Description</th>
+    <th>Type</th>
+  </tr>
   <tr>
     <td>.name</td>
     <td>The name of this interrupt.</td>
@@ -244,18 +310,18 @@ The \ref fm_interrupt lists all interrupt sources available in the system.
 
 /**************************************************************************************************/
 /**
-\page fm_irq_setup /fm/system/irq_setup[n] element
+\page fm_reg_setup setup_tz/reg_setup[n] element
 
-The \ref fm_irq_setup contains a sequence of device specific configuration for the setup of the interrupts.
+The \ref fm_reg_setup contains a sequence of device specific configuration for the setup of the interrupts.
 
-<table class="cmtable" summary="Element: irq_setup[n]">
+<table class="cmtable" summary="Element: reg_setup[n]">
   <tr>
     <th>Parent Element</th>
     <th colspan="2">Element Chain</th>
   </tr>
   <tr>
-    <td>\ref fm_system "system"</td>
-    <td colspan=3>\ref fm_system</td>
+    <td>\ref fm_setup_tz "setup_tz"</td>
+    <td colspan=3>\ref fm_setup_tz</td>
   </tr>
   <tr>
     <th>Child Elements</th>
@@ -263,7 +329,7 @@ The \ref fm_irq_setup contains a sequence of device specific configuration for t
     <th>Type</th>
   </tr>
   <tr>
-    <td>.irq</td>
+    <td>.peripheral</td>
     <td>The name of the interrupt that this setup belongs too.</td>
     <td>xs:string</td>
   </tr>
@@ -298,7 +364,7 @@ The \ref fm_irq_setup contains a sequence of device specific configuration for t
 
 /**************************************************************************************************/
 /**
-\page fm_peripheral /fm/zone/peripheral[n] element
+\page fm_peripheral zone/peripheral[n] element
 
 The \ref fm_peripheral contains a sequence of all peripherals that are accessible in the zone (or system partition).
 
@@ -376,7 +442,7 @@ The \ref fm_peripheral contains a sequence of all peripherals that are accessibl
 
 /**************************************************************************************************/
 /**
-\page fm_mpu_setup /fm/zone/mpu_setup element
+\page fm_mpu_setup zone/mpu_setup element
 
 The \ref fm_mpu_setup contains the configuration information for the Memory Protection Unit (MPU).
 

+ 105 - 18
CMSIS/DoxyGen/Zone/src/XML_Format.txt

@@ -12,6 +12,7 @@ contains the resources available for this project. It is therefore possible to s
 
 A <b>Resource File</b> can therefore describe: 
  - A complete embedded system including device with one or more processors, external memory and/or external peripheral components.
+ - TrustZone definition and initial setting for Secure Attribute Unit
  - A resource partition for an independent software project (i.e. boot loader, user application, secure partition) that implement the application for the system.
 
 A <b>Assignment File</b> allows to specify either:
@@ -51,6 +52,10 @@ Structure of .rzone XML file
     <package/>           // software pack that defines device
     <processor/>         // processor information
   </device>
+
+  <sau_init>             // fixed SAU settings required for system
+    <region/>            // region setting for SAU
+  </sau_init>
   
   <resources>            // physical resources off-chip 
     <memories>           // memories section  
@@ -60,9 +65,8 @@ Structure of .rzone XML file
     <peripherals>        // peripheral resources off-chip
       { <group> }        // peripheral group (optional)
       <peripheral>       // peripheral description
-         <interrupt>     // optional interrupts
-           <setup/>      // setup information for interrupt
-         </interrupt>
+         <interrupt/>    // optional interrupts for peripheral
+         <setup/>        // optional register setup for peripheral
       </peripheral>
       { </group> }       // peripheral group (optional)
     </peripherals>
@@ -184,6 +188,12 @@ The \ref xml_rzone_pg element is the root element of the .rzone file which descr
     <td>DeviceType</td>
     <td>1..1 </td>
   </tr>
+  <tr>
+    <td>\subpage xml_sau_init "sau_init"</td>
+    <td>Fixed SAU settings required for this system, i.e. to access peripherals.</td>
+    <td>SauInitType</td>
+    <td>0..1 </td>
+  </tr>
   <tr>
     <td>\subpage xml_resources "resources"</td>
     <td>Physical resources (memory and peripherals) that are available in the system.</td>
@@ -440,6 +450,89 @@ The information in this element is identical with CMSIS-Pack, except that it pro
 
 */
 
+/**************************************************************************************************/
+/**
+\page xml_sau_init /rzone/sau_init element
+
+The \ref xml_sau_init specifies fixed Secure Attribute Unit (SAU) settings required for this system, for example a configuration that is required to access peripherals.
+
+<table class="cmtable" summary="Element: sau_init">
+  <tr>
+    <th>Parent Element</th>
+    <th colspan="3">Element Chain</th>
+  </tr>
+  <tr>
+    <td>\ref xml_rzone_pg "rzone"</td>
+    <td colspan=3>\ref xml_rzone_pg</td>
+  </tr>
+  <tr>
+    <th>Child Elements</th>
+    <th>Description</th>
+    <th>Type</th>
+    <th>Occurrence</th>
+  </tr>
+  <tr>
+    <td>\ref xml_si_region "region"</td>
+    <td>Region settings for the SAU.</td>
+    <td>complexType</td>
+    <td>1..*</td>
+  </tr>
+</table>
+
+
+\section xml_si_region /rzone/sau_init/region element
+
+The \ref xml_si_region contains the region setting for SAU initialization. 
+
+<table class="cmtable" summary="Element: region">
+  <tr>
+    <th>Parent Element</th>
+    <th colspan="3">Element Chain</th>
+  </tr>
+  <tr>
+    <td>\ref xml_sau_init "sau_init"</td>
+    <td colspan=3>\ref xml_sau_init</td>
+  </tr>
+  <tr>
+    <th>Attributes</th>
+    <th>Description</th>
+    <th>Type</th>
+    <th>Use</th>
+  </tr>
+  <tr>
+    <td>Pref</td>
+    <td>The processor(s) that require this setting. If omitted all processors get this setting.</td>
+    <td>xs:string</td>
+    <td>optional</td>
+  </tr>
+  <tr>
+    <td>start</td>
+    <td>The logical start address for the region.</td>
+    <td>NonNegativeInteger</td>
+    <td>required</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>The size for the region.</td>
+    <td>NonNegativeInteger</td>
+    <td>required</td>
+  </tr>
+  <tr>
+    <td>security</td>
+    <td>\ref security "Security" attributes for this memory region.</td>
+    <td>\ref security "SecurityType"</td>
+    <td>optional</td>
+  </tr>
+  <tr>
+    <td>info</td>
+    <td>Brief description of region setting (for comments in source code).</td>
+    <td>xs:string</td>
+    <td>optional</td>
+  </tr>  
+</table>
+
+*/
+
 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
 /**
 \page xml_resources /rzone/resources element
@@ -898,6 +991,12 @@ The \ref xml_peripheral is used to define an address mapping for one peripheral.
     <td>complexType</td>
     <td>0..*</td>
   </tr>
+  <tr>
+    <td>\ref xml_irq_setup "setup"</td>
+    <td>Setup information for the interrupt.</td>
+    <td>complexType</td>
+    <td>0..*</td>
+  </tr>
 </table>
 
 
@@ -938,21 +1037,9 @@ The \ref xml_interrupt defines the interrupts that are generated by a peripheral
     <td>xs:string</td>
     <td>optional</td>
   </tr>  
-  <tr>
-    <th>Child Elements</th>
-    <th>Description</th>
-    <th>Type</th>
-    <th>Occurrence</th>
-  </tr>
-  <tr>
-    <td>\ref xml_irq_setup "setup"</td>
-    <td>Setup information for the interrupt.</td>
-    <td>complexType</td>
-    <td>0..*</td>
-  </tr>
 </table>
 
-\section xml_irq_setup /rzone/resources/peripherals/.../peripheral/interrupt/setup element
+\section xml_irq_setup /rzone/resources/peripherals/.../peripheral/setup element
 
 The \ref xml_irq_setup defines the setup information for this interrupt. The attributes \em security and \em privilege specifies conditions.
 When the peripheral is specified for on the the conditions, the \em value is assigned to the \em register name (with an optional \em index).
@@ -963,8 +1050,8 @@ When the peripheral is specified for on the the conditions, the \em value is ass
     <th colspan="3">Element Chain</th>
   </tr>
   <tr>
-    <td>\ref xml_interrupt "interrupt"</td>
-    <td colspan=3>\ref xml_interrupt</td>
+    <td>\ref xml_peripheral "peripheral"</td>
+    <td colspan=3>\ref xml_peripheral</td>
   </tr>
   <tr>
     <th>Attributes</th>

+ 1 - 1
CMSIS/DoxyGen/Zone/zone.dxy

@@ -38,7 +38,7 @@ PROJECT_NAME           = "CMSIS-Zone (Preview)"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version 0.9.0"
+PROJECT_NUMBER         = "Version 0.10.0"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a