diff --git a/CMSIS/DoxyGen/SVD/src/svd.txt b/CMSIS/DoxyGen/SVD/src/svd.txt
index efa26dc..8430730 100644
--- a/CMSIS/DoxyGen/SVD/src/svd.txt
+++ b/CMSIS/DoxyGen/SVD/src/svd.txt
@@ -4,68 +4,42 @@
 Introduction
 ------------
 The CMSIS System View Description format(CMSIS-SVD) formalizes the description of the system
-contained in ARM Cortex-M processor-based microcontrollers, in particular, the memory mapped
-registers of peripherals.
-The detail contained in system view descriptions is comparable to the data in device 
+contained in ARM processor-based devices, in particular, the memory mapped registers of peripherals.
+The detail contained in system view descriptions is similar to the data in device 
 reference manuals. The information ranges from high level functional 
-descriptions of a peripheral all the way down to the definition and purpose of an individual bit
-field in a memory mapped register. 
+descriptions of a peripheral all the way down to the definition and purpose of an individual 
+bit field in a memory mapped register. 
 
 CMSIS-SVD files are developed and maintained by silicon vendors.
-Silicon vendors manage their descriptions in a central, web-based Device Database. The CMSIS-SVD
-files are down-loadable via a public web interface once they have been released by the silicon
-vendor. Tool vendors use CMSIS-SVD files for providing device-specific debug views of peripherals in 
-their debugger. Last but not least, CMSIS-compliant device header files are generated from CMSIS-SVD
-files.
+Many silicon vendors manage their device descriptions in a central, web-based Device Database. 
+The CMSIS-SVD files are supposed to be shipped as part of the CMSIS-Pack for the respective Device
+Family. CMSIS-Packs are developed, maintained and hosted by the Silicon Vendors.
+Tool vendors use CMSIS-SVD files for providing device-specific debug views of peripherals in 
+their debugger. Last but not least, CMSIS-compliant device header files can be generated 
+from CMSIS-SVD files using the SVDConv utility.
 
 CMSIS-SVD Benefits
 ------------------
 - For Software Developers:
-  - Consistency between device header file and what is being displayed by the debugger.
+  - Consistency between device header file and peripheral register display in debuggers.
   - Detailed information about peripherals, registers, fields, and bit values from within the debugger,
-  without the need to reference device documentation.
-  - Public access via a web interface to new and updated descriptions as they become available from silicon vendors.
+  without the need to look it up in device documentation.
+  - Distribution as part of Device Family Packs developed and maintained by silicon vendors.
   - Improved software development efficiency.
 
 - For Silicon Vendors:
-  - A tool vendor independent file format enables early device support by a wide range of toolchains with limited effort.
-  - The XML-based format helps ease the integration into in-house design flows.
+  - A tool vendor independent file format that enables early device support by a wide range of 
+    toolchains distributed as part of the Device Family Packs
+  - Generation friendly XML-based forma suitable for integration into in-house design flows.
+  - Description can be validate using Schema file and SVDConv utility consistency checking
   - Automated generation of CMSIS compliant device header files.
-  - Full control throughout the life cycle of the CMSIS-SVD files from creation to maintenance via the web-based Device Database.
+  - Full control throughout the life cycle of the CMSIS-SVD files as part of Device Family Packs
 
 - For Tool Vendors:
-  - Unified file format across silicon vendors helps the efficiency of supporting a wide range of new devices in a timely manner.
-  - Silicon vendors provide early review access to individuals ahead of the publishing date.
-  - Updated descriptions are available over the web simplifying the maintenance of device support.
-
-The Web Infrastructure
-----------------------
-
-\image html "CMSIS_SVD_WEB_DATABASE.png" "CMSIS-SVD Management Processes"
-
-The diagram illustrates the management process steps for uploading, validating, reviewing, publishing, and downloading 
-CMSIS-SVD files. 
-
-- <b>Managing Files:</b>
-A CMSIS-SVD file is uploaded by a silicon vendor via the web interface (<a href="https://cmsis.arm.com/user/index.php" target="_blank">
-<b>Device Database</b></a>). The system performs a check against the CMSIS-SVD Schema and runs the SVDConv consistency checker. 
-Only if both checks were successful the file will be stored in the SVD Storage. Files can be added, replaced, and deleted. 
-
-- <b>Managing Devices:</b> 
-The silicon vendor creates an entry for each of his devices in the database by defining a name and associating it with a 
-CMSIS-SVD file from the SVD Storage. The publishing date set forth for a device is used by the system to determine
-when this device becomes visible in the public device database. Prior to the publishing date, the silicon vendor can
-grant review access to individuals for an individual device. Reviewers get notified by e-mail about a device being made
-available for review.
-
-- <b>Public Download:</b>
-Public access to the silicon vendor specific CMSIS-SVD download pages is provided from <a href="http://cmsis.arm.com" target="_blank">cmsis.arm.com</a> or
- <a href="http://www.arm.com/cmsis" target="_blank">www.arm.com/cmsis</a>. Select the CMSIS-SVD tab and select the Silicon Vendor of interest from the list.
-For the public download of the CMSIS-SVD files of published devices it is mandatory to:
-  - Be logged in on the ARM web site.
-  - Have accepted a silicon vendor specific End Users License Agreement (EULA).
-
-More information about the web infrastructure can be found in the \subpage svd_web_pg
+  - Unified file format across silicon vendors helps the efficiency of supporting a wide range of
+    devices in a timely and scalable manner.
+  - Silicon vendors can distribute Device Family Packs without publishing for review access prio to 
+    device publishing.
 
 Language Outline
 ----------------
@@ -84,7 +58,8 @@
 |File/Folder                   |Content                                                                
 |------------------------------|-----------------------------------------------------------------------
 |\b CMSIS\\Documentation\\SVD  | This documentation                                                    
-|\b CMSIS\\SVD                 | Exemplary SVD file (\ref svd_Example_pg "ARM_Example.svd") and generated header file (ARM_Example.h).
+|\b CMSIS\\Utilities           | Exemplary SVD file (\ref svd_Example_pg "ARM_Example.svd") and 
+generated header file (ARM_Example.h).
 
 <p>&nbsp;</p>
 <hr>
@@ -95,17 +70,52 @@
 /**
 \page svd_revisionHistory Revision History of CMSIS-SVD
 
-Version   |  Description
-:---------|:----------------------
-V1.3.2    | Extended commandline of SVDConv.exe for partition.h file generation
-V1.3.1    | Added protection element - Fixed peripheral name type to allow array format - Added Cortex A class CPUs to enumeration
-V1.3      | Added array of peripherals and nesting of clusters
-V1.2      | Added optional tags for Cortex-M7 in \ref cpuSection_gr
-V1.1      | Added extensions as documented under \ref svd_Format_1_1_gr
-V1.0      | Initial revision
+<table class="cmtable" summary="CMSIS-SVD Revision History">
+    <tr>
+      <th>Version</th>
+      <th>Description</th>
+    </tr>
+    <tr>
+      <td>V1.3.3</td>
+      <td>
+        - now all CMSIS components are licensed under Apache 2.0 License
+        - add dimableIdentifierType, as a copy of previous identifierType adding "%s" \n
+        - update identifierType to only allow names without %s included \n
+        - remove enumerationNameType \n
+        - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays 
+          overwriting hierarchically generated names \n
+        - add dimName to dimElementGroup. Only valid in \<cluster\> context, ignored otherwise.
+      </td>
+    </tr>
+    <tr>
+      <td>V1.3.2</td>
+      <td>Extended commandline of SVDConv utility for partition.h file generation </td>
+    </tr>
+    <tr>
+      <td>V1.3.1/td>
+      <td>Added protection element - Fixed peripheral name type to allow array format - Added Cortex A class CPUs to enumeration/td>
+    </tr>
+    <tr>
+      <td>V1.3/td>
+      <td>Added array of peripherals and nesting of clusters/td>
+    </tr>
+    <tr>
+      <td>V1.2/td>
+      <td>Added optional tags for Cortex-M7 in \ref cpuSection_gr /td>
+    </tr>
+    <tr>
+      <td>V1.1/td>
+      <td>Added extensions as documented under \ref svd_Format_1_1_gr /td>
+    </tr>
+    <tr>
+      <td>V1.0/td>
+      <td>Initial revision
+    </tr>
+</table>
 
 <p>&nbsp;</p>
 <hr>
+
 */
 
 
@@ -218,7 +228,7 @@
 \n\n
 -# <b>SVD Conversion Utility:</b> ARM provides the conversion utility \ref svd_SVDConv_pg to 
 check the semantics and consistency of the data contained in a CMSIS-SVD file. 
-\b SVDConv.exe is included in the CMSIS distribution. 
+\b SVDConv utility is included in the CMSIS distribution. 
 
 CMSIS-SVD files can be used to generate:
  -# CMSIS-compliant device header files from a CMSIS-SVD description. Refer to the conversion tool \ref svd_SVDConv_pg for details.
@@ -228,8 +238,10 @@
  
 <b>System Views</b>
 \n\n A number of tool vendors support the CMSIS-SVD format with their products.
-  Refer to the tools documentation to find out how to use CMSIS-SVD descriptions with the debugger of your choice.
-  You can download the latest versions of available CMSIS-SVD files from the  \ref svd_web_public_pg on the ARM web.
+  Refer to the tools documentation of these product to find out how to use CMSIS-SVD descriptions 
+  with the debugger of your choice.
+  SVD files are contained in Device Family Packs. Information about available CMSIS-Packs can be found
+  e.g. here: <a href="www.keil.com/pack" target="_blank"><b>Available CMSIS-Packs</b></a>
   \n \n
   <b>Generated Debug Dialog:</b>
   \image html "SystemViewer_Generated.png" "uVision Debug Window generated from ARM_Example.svd"
@@ -248,10 +260,10 @@
 
 /**************************************************************************************************/
 /**
-\page svd_SVDConv_pg SVDConv.exe
+\page svd_SVDConv_pg SVDConv Utility
 
-\b SVDConv.exe is a command-line utility to validate CMSIS-SVD files and to generate CMSIS-compliant device header files.
-\b SVDConv.exe is distributed with the \b ARM::CMSIS Pack (in the CMSIS\\Utilities directory) together with the CMSIS-SVD schema file. 
+\b SVDConv is a command-line utility to validate CMSIS-SVD files and to generate CMSIS-compliant device header files.
+\b SVDConv is distributed with the \b ARM::CMSIS Pack (in the CMSIS\\Utilities directory) together with the CMSIS-SVD schema file. 
 
 \b SVDConv.exe performs the following operations:
   - Checks the syntactical and structural compliance with the specified CMSIS-SVD format.
@@ -261,9 +273,9 @@
 
 Operation
 ---------
-\b SVDConv.exe is invoked form the command line. The general command format is:
+\b SVDConv is invoked form the command line. The general command format is:
 \code
-SVDConv.exe <SVD_file> <options>
+SVDConv <SVD_file> <options>
 \endcode
 
 <p>&nbsp;</p>
@@ -335,7 +347,7 @@
 Return Codes
 -------------
 
-\b SVDConv.exe returns the following codes:
+\b SVDConv returns the following codes:
 \n
 Code | Description             | Action
 :---:|:------------------------|:--------------------
@@ -347,12 +359,12 @@
 <b>Examples</b> \n
 -# Retrieve help information on screen.
    \code 
-     SVDConv.exe 
+     SVDConv
    \endcode
    \n
 -# Perform a consistency check by passing only the SVD file name. Errors and warnings are printed on screen. 
    \code 
-     SVDConv.exe ARM_Example.svd 
+     SVDConv ARM_Example.svd 
    \endcode
    \n
    The result is printed on screen:
@@ -371,7 +383,7 @@
    \n
 -# Generate the header file. Performs a consistency check. Errors and warnings are printed on screen. 
    \code 
-     SVDConv.exe ARM_Example.svd --generate=header
+     SVDConv ARM_Example.svd --generate=header
    \endcode
    \n
    Code snippet from the generated header file showing the structure for \b TIMER0.
@@ -380,7 +392,7 @@
    \n
 -# Generate the header file containing bit fields. Performs a consistency check. Errors and warnings are printed on screen. 
    \code 
-     SVDConv.exe ARM_Example.svd --generate=header --fields=struct
+     SVDConv ARM_Example.svd --generate=header --fields=struct
    \endcode
    \n
    Code snippet from the generated header file showing the structure for \b TIMER0.
@@ -391,129 +403,6 @@
 
 
 
-/**************************************************************************************************/
-/**
-\page svd_web_pg CMSIS-SVD Web Interface User Guide
-
-The CMSIS Web Interface provides functionalities for downloading and managing the CMSIS-SVD files.
-    - \subpage svd_web_public_pg - Users can download CMSIS-SVD files.
-    - \subpage svd_web_restricted_pg - Silicon Vendors can manage their devices and associated CMSIS-SVD files.
-    
-In any case, the ARM web page requires login credentials to grant access to the content. 
-    - Registration starts here: <a href="https://login.arm.com/register.php" target="_blank"><b>ARM Registration</b></a>.
-*/
-
-
-/**************************************************************************************************/
-/**
-\page svd_web_public_pg Public Download Area
-
-Public access to the Device Database is provided from <a href="http://cmsis.arm.com" target="_blank">cmsis.arm.com</a>. For the public download of the CMSIS-SVD files of published devices it is mandatory to:
-    - Be logged in on the ARM web site.
-    - Have accepted a silicon vendor specific End Users License Agreement (EULA).
-
-\section login_downl_sec Logging in
-   - Use your credentials to <a href="https://login.arm.com/login.php" target="_blank"><b>Login</b></a>.
-
-\section  open_downl_sec Opening the CMSIS-SVD Download page
-
-   \image html Access_SVD_Vendor.png "Access Silicon Vendor Device Database"
-
-   - Access the CMSIS webpage at <a href="http://cmsis.arm.com" target="_blank"><b>cmsis.arm.com</b></a>.
-   - Select the "CMSIS-SVD" tab.
-   - Click on a Silicon Vendor's name for getting redirected to the respective vendor device database.
- 
- 
-\section accept_EULA_sec Accepting the Silicon Vendor's License terms
-   On your first visit to a vendor database page you will be asked to review and accept the 
-   vendor-specific "End User License Agreement" (EULA).
-   If you do not accept the EULA, you will see the list of devices and associated CMSIS-SVD files,
-   but you will not be able to download any of the files.
-   Note, in case the EULA has changed, you will be asked to review and accept the EULA again.
-
-\section  downl_downl_sec Downloading CMSIS-SVD files
-
-   \image html CMSIS_SVD_Vendor_DD.png "Download Device Database Files"
-
-   - Select one, multiple, or all devices from the table.
-   - Click the "download" button.
-
-   You will be asked to open or save the zip archive file containing the files.
-   If you have selected multiple devices, the file \em contents.txt included in the archive will list the
-   mapping between devices and CMSIS-SVD files. Multiple devices can share the same CMSIS-SVD file.
-*/
-
-
-/**************************************************************************************************/
-/**
-\page svd_web_restricted_pg Restricted Management Area
-
-  Access to the CMSIS-SVD device database management system is restricted to:
-    - Silicon Vendors.
-    - Companies who have signed an agreement with ARM about using the CMSIS-SVD device database.
-    - ARM Cortex-M based microcontroller devices.
-
-\section sign_agreement_sec   Signing the agreement
-   - The Silicon Vendor contacts the ARM sales representative or sends an email to cmsis@arm.com requesting 
-   to contribute to the CMSIS-SVD Database. 
-   - An agreement needs to be signed between the Silicon Vendor and ARM
-   defining the terms of use and specifying the representatives authorized for managing the files and devices.
-   - The login e-mail addresses for www.arm.com get listed in the contract. The representatives need to ensure that
-   their login already exists. 
-   - As part of exercising the contract the representatives will be given CMSIS-SVD Upload
-   permissions in the system.
-
-\section  login_mgmnt_dd_sec  Logging in
-   - Use your credentials to <a href="https://login.arm.com/login.php" target="_blank"><b>Login</b></a>.
-
-\section open_mgmnt_ss_sec Opening the CMSIS-SVD Device Database page
-
-   \image html Access_SVD_DD_Manage.png "Management Access to Device Database"
-
-   - Access the CMSIS web page at <a href="http://cmsis.arm.com" target="_blank"><b>cmsis.arm.com</b></a>.
-   - Click the button "Device Database"
-   \note  If you do not see this button, you are either not logged in or you have not been granted CMSIS-SVD Upload
-   permissions.
-
-   
-\section manage_dd_entries_sec Managing the Device Database
-   The database lists microcontroller devices and their associated CMSIS-SVD files and, optionally, resource files.
-   Multiple devices may share the same CMSIS-SVD and the optional resource file. For this reason, files and devices are 
-   managed separately. Files need to be uploaded and have to pass the check against the CMSIS-SVD Schema as well as the
-   plausibility and consistency check by the SVDConv utility before they can be used to define a device. The SVDConv
-   checking is scheduled. Therefore, it can take up to 15 minutes before the file status gets updated.
-
-   \image html Manage_SVD_DD.png "Manage Device Database Entries"
-
-    - a) Manage Files
-      - Add file: Select the CMSIS-SVD file and start the upload process. The schema check will run immediately
-        after the file upload is complete. If the check fails the file will not be stored and you are asked to  
-        upload a corrected file. The SVDConv check for this file is automatically scheduled and will take place
-        within 15 minutes. The status of the file will be updated and reports errors and warnings in a text file
-        that can be downloaded (click on error/warning respectively).
-      - Delete file: Files can only be deleted if they are not associated with a device otherwise the system will
-        list the devices the file is still associated with.
-      - Replace file: Replace files allows you to update a file without the need to edit the device definition.
-
-    - b) Manage Devices
-      \n New devices can be added or existing devices can be edited.
-      A device defines:
-       - Name of device
-       - Filename CMSIS-SVD
-       - Filename Resource zip archive
-       - Reviewer List
-       - Publishing Date <br>
-      A checkbox is in front of each device to enable and disable a device. A disabled device will not 
-      show in the vendor-specific download area.
-   
-    - c) Review Devices
-       \n Ask you reviewer for the login email address being used for the login on the ARM web. Add this email address
-       into the field, one email address per line.
-       You can add some text to the e-mail body however the email template already contains all relevant information
-       like the device name as well as a link to the device database.
-
-*/
-
 
 /**************************************************************************************************/
 /**
@@ -2072,7 +1961,11 @@
         <td>identifierType </td>
         <td>0..1 </td>
     </tr>
-</table>
+  </table>
+
+  <p>&nbsp;</p>
+  <hr>
+
 \section deviceSectionExtensions_ex Example:
 \code
 ...
@@ -2277,8 +2170,7 @@
         </td>
         <td>SauRegionsConfigType</td>
         <td>0..1 </td>
-    </tr>        
-    
+    </tr>            
 </table>
 
 \section cpuSection_ex Example:
