CMSIS Driver: removed volatile from status related typedefs APIs
diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc
index 8f2f1a4..06e791c 100644
--- a/ARM.CMSIS.pdsc
+++ b/ARM.CMSIS.pdsc
@@ -14,6 +14,8 @@
          - Enhanced MVE support for Armv8.1-MML
       CMSIS-RTOS2:
         - RTX 5.5.2 (see revision history for details)
+      CMSIS-Driver: 2.8.0
+        - removed volatile from status related typedefs in APIs
       CMSIS-Pack: 
         - added custom attribute to components that require custom implementation
       Devices:
@@ -823,63 +825,63 @@
       </files>
     </api>
     <!-- CMSIS Driver API -->
-    <api Cclass="CMSIS Driver" Cgroup="USART" Capiversion="2.3.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="USART" Capiversion="2.4.0" exclusive="0">
       <description>USART Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__usart__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_USART.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="SPI" Capiversion="2.2.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="SPI" Capiversion="2.3.0" exclusive="0">
       <description>SPI Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__spi__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_SPI.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="SAI" Capiversion="1.1.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="SAI" Capiversion="1.2.0" exclusive="0">
       <description>SAI Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__sai__interface__gr.html"/>
         <file category="header" name="CMSIS/Driver/Include/Driver_SAI.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="I2C" Capiversion="2.3.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="I2C" Capiversion="2.4.0" exclusive="0">
       <description>I2C Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__i2c__interface__gr.html"/>
         <file category="header" name="CMSIS/Driver/Include/Driver_I2C.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="CAN" Capiversion="1.2.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="CAN" Capiversion="1.3.0" exclusive="0">
       <description>CAN Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__can__interface__gr.html"/>
         <file category="header" name="CMSIS/Driver/Include/Driver_CAN.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="Flash" Capiversion="2.2.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="Flash" Capiversion="2.3.0" exclusive="0">
       <description>Flash Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__flash__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_Flash.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="MCI" Capiversion="2.3.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="MCI" Capiversion="2.4.0" exclusive="0">
       <description>MCI Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__mci__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_MCI.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="NAND" Capiversion="2.3.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="NAND" Capiversion="2.4.0" exclusive="0">
       <description>NAND Flash Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__nand__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_NAND.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="Ethernet" Capiversion="2.1.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="Ethernet" Capiversion="2.2.0" exclusive="0">
       <description>Ethernet MAC and PHY Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__eth__interface__gr.html" />
@@ -887,28 +889,28 @@
         <file category="header" name="CMSIS/Driver/Include/Driver_ETH_PHY.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Capiversion="2.1.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Capiversion="2.2.0" exclusive="0">
       <description>Ethernet MAC Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__eth__mac__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_ETH_MAC.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Capiversion="2.1.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Capiversion="2.2.0" exclusive="0">
       <description>Ethernet PHY Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__eth__phy__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_ETH_PHY.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="USB Device" Capiversion="2.2.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="USB Device" Capiversion="2.3.0" exclusive="0">
       <description>USB Device Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__usbd__interface__gr.html" />
         <file category="header" name="CMSIS/Driver/Include/Driver_USBD.h" />
       </files>
     </api>
-    <api Cclass="CMSIS Driver" Cgroup="USB Host" Capiversion="2.2.0" exclusive="0">
+    <api Cclass="CMSIS Driver" Cgroup="USB Host" Capiversion="2.3.0" exclusive="0">
       <description>USB Host Driver API for Cortex-M</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/Driver/html/group__usbh__interface__gr.html" />
diff --git a/CMSIS/DoxyGen/Driver/Driver.dxy b/CMSIS/DoxyGen/Driver/Driver.dxy
index 2f0bc40..525da8a 100644
--- a/CMSIS/DoxyGen/Driver/Driver.dxy
+++ b/CMSIS/DoxyGen/Driver/Driver.dxy
@@ -38,7 +38,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version 2.7.1"
+PROJECT_NUMBER         = "Version 2.8.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
diff --git a/CMSIS/DoxyGen/Driver/src/General.txt b/CMSIS/DoxyGen/Driver/src/General.txt
index bb9d81e..f9db680 100644
--- a/CMSIS/DoxyGen/Driver/src/General.txt
+++ b/CMSIS/DoxyGen/Driver/src/General.txt
@@ -62,50 +62,56 @@
       <th>Description</th>
     </tr>
     <tr>
+      <td>2.8.0</td>
+      <td>
+        - Changed: removed volatile from status related typedefs
+      </td>
+    </tr>
+    <tr>
       <td>2.7.1</td>
-      <td>Modifications compared to Version 2.7.0:
+      <td>
         - Finalized WiFi Interface API 1.0.0.
       </td>
     </tr>
     <tr>
       <td>2.7.0</td>
-      <td>Modifications compared to Version 2.6.0:
+      <td>
         - Added WiFi Interface API 1.0.0-beta.
         - Added custom driver selection to simplify implementation of new CMSIS-Driver.
       </td>
     </tr>
     <tr>
       <td>2.6.0</td>
-      <td>Modifications compared to Version 2.05:
-- Enhanced CAN-Driver API with explicit BUSOFF state.
-- Enhanced NAND-Driver API for ECC handling.
+      <td>
+        - Enhanced CAN-Driver API with explicit BUSOFF state.
+        - Enhanced NAND-Driver API for ECC handling.
       </td>
     </tr>
     <tr>
       <td>2.05</td>
-      <td>Modifications compared to Version 2.04:
- - Changed: All typedefs related to status have been made volatile. 
+      <td>
+        - Changed: All typedefs related to status have been made volatile. 
       </td>
     </tr>
     <tr>
       <td>2.04</td>
-      <td>Modifications compared to Version 2.03:
- - Added: template files for CAN interface driver.
+      <td>
+        - Added: template files for CAN interface driver.
       </td>
     </tr>
     <tr>
       <td>2.03</td>
-      <td>Modifications compared to Version 2.02:
- - Added: CAN API for an interface to CAN peripherals
- - Added: Overview of the \ref driverValidation "CMSIS-Driver Validation" Software Pack.
- - Enhanced: documentation and clarified behavior of the \ref CallSequence.
+      <td>
+        - Added: CAN API for an interface to CAN peripherals
+        - Added: Overview of the \ref driverValidation "CMSIS-Driver Validation" Software Pack.
+        - Enhanced: documentation and clarified behavior of the \ref CallSequence.
       </td>
     </tr>
     <tr>
       <td>2.02</td>
-      <td>Modifications compared to Version 2.00:
- - Minor API changes, for exact details refer to the header file of each driver.
- - Added: Flash Interface, NAND interface.
+      <td>
+        - Minor API changes, for exact details refer to the header file of each driver.
+        - Added: Flash Interface, NAND interface.
       </td>
     </tr>
     <tr>
diff --git a/CMSIS/Driver/Include/Driver_CAN.h b/CMSIS/Driver/Include/Driver_CAN.h
index 5c567e6..eb13f1e 100644
--- a/CMSIS/Driver/Include/Driver_CAN.h
+++ b/CMSIS/Driver/Include/Driver_CAN.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2015-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        13. Sept 2017
- * $Revision:    V1.2
+ * $Date:        24. January 2020
+ * $Revision:    V1.3
  *
  * Project:      CAN (Controller Area Network) Driver definitions
  */
 
 /* History:
+ *  Version 1.3
+ *    Removed volatile from ARM_CAN_STATUS
  *  Version 1.2
  *    Added ARM_CAN_UNIT_STATE_BUS_OFF unit state and
  *    ARM_CAN_EVENT_UNIT_INACTIVE unit event
@@ -41,7 +43,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_CAN_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,2)  /* API version */
+#define ARM_CAN_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,3)  /* API version */
 
 
 /****** CAN Bitrate selection codes *****/
@@ -168,7 +170,7 @@
 /**
 \brief CAN Status
 */
-typedef volatile struct _ARM_CAN_STATUS {
+typedef struct _ARM_CAN_STATUS {
   uint32_t unit_state       : 4;        ///< Unit bus state
   uint32_t last_error_code  : 4;        ///< Last error code
   uint32_t tx_error_count   : 8;        ///< Transmitter error count
diff --git a/CMSIS/Driver/Include/Driver_ETH.h b/CMSIS/Driver/Include/Driver_ETH.h
index d60f5fd..23f5fd3 100644
--- a/CMSIS/Driver/Include/Driver_ETH.h
+++ b/CMSIS/Driver/Include/Driver_ETH.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.1
+ * $Date:        24. January 2020
+ * $Revision:    V2.2
  *
  * Project:      Ethernet PHY and MAC Driver common definitions
  */
 
 /* History:
+ *  Version 2.2
+ *    Removed volatile from ARM_ETH_LINK_INFO
  *  Version 2.1
  *    ARM_ETH_LINK_INFO made volatile
  *  Version 2.0
@@ -69,7 +71,7 @@
 /**
 \brief Ethernet link information
 */
-typedef volatile struct _ARM_ETH_LINK_INFO {
+typedef struct _ARM_ETH_LINK_INFO {
   uint32_t speed    : 2;                ///< Link speed: 0= 10 MBit, 1= 100 MBit, 2= 1 GBit
   uint32_t duplex   : 1;                ///< Duplex mode: 0= Half, 1= Full
   uint32_t reserved : 29;
diff --git a/CMSIS/Driver/Include/Driver_ETH_MAC.h b/CMSIS/Driver/Include/Driver_ETH_MAC.h
index e26019f..7677432 100644
--- a/CMSIS/Driver/Include/Driver_ETH_MAC.h
+++ b/CMSIS/Driver/Include/Driver_ETH_MAC.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.1
+ * $Date:        24. January 2020
+ * $Revision:    V2.2
  *
  * Project:      Ethernet MAC (Media Access Control) Driver definitions
  */
 
 /* History:
+ *  Version 2.2
+ *    Removed volatile from ARM_ETH_LINK_INFO
  *  Version 2.1
  *    Added ARM_ETH_MAC_SLEEP Control
  *  Version 2.0
@@ -59,7 +61,7 @@
 
 #include "Driver_ETH.h"
 
-#define ARM_ETH_MAC_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,1)  /* API version */
+#define ARM_ETH_MAC_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
 
 
 #define _ARM_Driver_ETH_MAC_(n)      Driver_ETH_MAC##n
diff --git a/CMSIS/Driver/Include/Driver_ETH_PHY.h b/CMSIS/Driver/Include/Driver_ETH_PHY.h
index 95635ed..cb7c0f5 100644
--- a/CMSIS/Driver/Include/Driver_ETH_PHY.h
+++ b/CMSIS/Driver/Include/Driver_ETH_PHY.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.1
+ * $Date:        24. January 2020
+ * $Revision:    V2.2
  *
  * Project:      Ethernet PHY (Physical Transceiver) Driver definitions
  */
 
 /* History:
+ *  Version 2.2
+ *    Removed volatile from ARM_ETH_LINK_INFO
  *  Version 2.1
  *    ARM_ETH_LINK_INFO made volatile
  *  Version 2.0
@@ -44,7 +46,7 @@
 
 #include "Driver_ETH.h"
 
-#define ARM_ETH_PHY_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,1)  /* API version */
+#define ARM_ETH_PHY_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
 
 
 #define _ARM_Driver_ETH_PHY_(n)      Driver_ETH_PHY##n
diff --git a/CMSIS/Driver/Include/Driver_Flash.h b/CMSIS/Driver/Include/Driver_Flash.h
index 7053be2..91c8114 100644
--- a/CMSIS/Driver/Include/Driver_Flash.h
+++ b/CMSIS/Driver/Include/Driver_Flash.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        19. Apr 2018
- * $Revision:    V2.2
+ * $Date:        24. January 2020
+ * $Revision:    V2.3
  *
  * Project:      Flash Driver definitions
  */
 
 /* History:
+ *  Version 2.3
+ *    Removed volatile from ARM_FLASH_STATUS
  *  Version 2.2
  *    Padding bytes added to ARM_FLASH_INFO
  *  Version 2.1
@@ -49,7 +51,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_FLASH_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
+#define ARM_FLASH_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
 
 
 #define _ARM_Driver_Flash_(n)      Driver_Flash##n
@@ -83,7 +85,7 @@
 /**
 \brief Flash Status
 */
-typedef volatile struct _ARM_FLASH_STATUS {
+typedef struct _ARM_FLASH_STATUS {
   uint32_t busy     : 1;                ///< Flash busy flag
   uint32_t error    : 1;                ///< Read/Program/Erase error flag (cleared on start of next operation)
   uint32_t reserved : 30;
diff --git a/CMSIS/Driver/Include/Driver_I2C.h b/CMSIS/Driver/Include/Driver_I2C.h
index b9ba9d0..d4e58d2 100644
--- a/CMSIS/Driver/Include/Driver_I2C.h
+++ b/CMSIS/Driver/Include/Driver_I2C.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.3
+ * $Date:        24. January 2020
+ * $Revision:    V2.4
  *
  * Project:      I2C (Inter-Integrated Circuit) Driver definitions
  */
 
 /* History:
+ *  Version 2.4
+ *    Removed volatile from ARM_I2C_STATUS
  *  Version 2.3
  *    ARM_I2C_STATUS made volatile
  *  Version 2.2
@@ -60,7 +62,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_I2C_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
+#define ARM_I2C_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,4)  /* API version */
 
 
 /****** I2C Control Codes *****/
@@ -86,7 +88,7 @@
 /**
 \brief I2C Status
 */
-typedef volatile struct _ARM_I2C_STATUS {
+typedef struct _ARM_I2C_STATUS {
   uint32_t busy             : 1;        ///< Busy flag
   uint32_t mode             : 1;        ///< Mode: 0=Slave, 1=Master
   uint32_t direction        : 1;        ///< Direction: 0=Transmitter, 1=Receiver
diff --git a/CMSIS/Driver/Include/Driver_MCI.h b/CMSIS/Driver/Include/Driver_MCI.h
index 59caa11..df532cd 100644
--- a/CMSIS/Driver/Include/Driver_MCI.h
+++ b/CMSIS/Driver/Include/Driver_MCI.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.3
+ * $Date:        24. January 2020
+ * $Revision:    V2.4
  *
  * Project:      MCI (Memory Card Interface) Driver definitions
  */
 
 /* History:
+ *  Version 2.4
+ *    Removed volatile from ARM_MCI_STATUS
  *  Version 2.3
  *    ARM_MCI_STATUS made volatile
  *  Version 2.2
@@ -69,7 +71,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_MCI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
+#define ARM_MCI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,4)  /* API version */
 
 
 /****** MCI Send Command Flags *****/
@@ -168,7 +170,7 @@
 /**
 \brief MCI Status
 */
-typedef volatile struct _ARM_MCI_STATUS {
+typedef struct _ARM_MCI_STATUS {
   uint32_t command_active   : 1;        ///< Command active flag
   uint32_t command_timeout  : 1;        ///< Command timeout flag (cleared on start of next command)
   uint32_t command_error    : 1;        ///< Command error flag (cleared on start of next command)
diff --git a/CMSIS/Driver/Include/Driver_NAND.h b/CMSIS/Driver/Include/Driver_NAND.h
index 827fd4b..91f5753 100644
--- a/CMSIS/Driver/Include/Driver_NAND.h
+++ b/CMSIS/Driver/Include/Driver_NAND.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        14. Nov 2017
- * $Revision:    V2.3
+ * $Date:        24. January 2020
+ * $Revision:    V2.4
  *
  * Project:      NAND Flash Driver definitions
  */
 
 /* History:
+ *  Version 2.4
+ *    Removed volatile from ARM_NAND_STATUS
  *  Version 2.3
  *    Extended ARM_NAND_ECC_INFO structure
  *  Version 2.2
@@ -53,7 +55,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_NAND_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
+#define ARM_NAND_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,4)  /* API version */
 
 
 /****** NAND Device Power *****/
@@ -197,7 +199,7 @@
 /**
 \brief NAND Status
 */
-typedef volatile struct _ARM_NAND_STATUS {
+typedef struct _ARM_NAND_STATUS {
   uint32_t busy      : 1;               ///< Driver busy flag
   uint32_t ecc_error : 1;               ///< ECC error detected (cleared on next Read/WriteData or ExecuteSequence)
   uint32_t reserved  : 30;
diff --git a/CMSIS/Driver/Include/Driver_SAI.h b/CMSIS/Driver/Include/Driver_SAI.h
index bff3b95..9f34567 100644
--- a/CMSIS/Driver/Include/Driver_SAI.h
+++ b/CMSIS/Driver/Include/Driver_SAI.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V1.1
+ * $Date:        24. January 2020
+ * $Revision:    V1.2
  *
  * Project:      SAI (Serial Audio Interface) Driver definitions
  */
 
 /* History:
+ *  Version 1.2
+ *    Removed volatile from ARM_SAI_STATUS
  *  Version 1.1
  *    ARM_SAI_STATUS made volatile
  *  Version 1.0
@@ -38,7 +40,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_SAI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,1)  /* API version */
+#define ARM_SAI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,2)  /* API version */
 
 
 /****** SAI Control Codes *****/
@@ -183,7 +185,7 @@
 /**
 \brief SAI Status
 */
-typedef volatile struct _ARM_SAI_STATUS {
+typedef struct _ARM_SAI_STATUS {
   uint32_t tx_busy          : 1;        ///< Transmitter busy flag
   uint32_t rx_busy          : 1;        ///< Receiver busy flag
   uint32_t tx_underflow     : 1;        ///< Transmit data underflow detected (cleared on start of next send operation)
diff --git a/CMSIS/Driver/Include/Driver_SPI.h b/CMSIS/Driver/Include/Driver_SPI.h
index 61b4d80..64f4025 100644
--- a/CMSIS/Driver/Include/Driver_SPI.h
+++ b/CMSIS/Driver/Include/Driver_SPI.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.2
+ * $Date:        24. January 2020
+ * $Revision:    V2.3
  *
  * Project:      SPI (Serial Peripheral Interface) Driver definitions
  */
 
 /* History:
+ *  Version 2.3
+ *    Removed volatile from ARM_SPI_STATUS
  *  Version 2.2
  *    ARM_SPI_STATUS made volatile
  *  Version 2.1
@@ -54,7 +56,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_SPI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
+#define ARM_SPI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
 
 
 /****** SPI Control Codes *****/
@@ -127,7 +129,7 @@
 /**
 \brief SPI Status
 */
-typedef volatile struct _ARM_SPI_STATUS {
+typedef struct _ARM_SPI_STATUS {
   uint32_t busy       : 1;              ///< Transmitter/Receiver busy flag
   uint32_t data_lost  : 1;              ///< Data lost: Receive overflow / Transmit underflow (cleared on start of transfer operation)
   uint32_t mode_fault : 1;              ///< Mode fault detected; optional (cleared on start of transfer operation)
diff --git a/CMSIS/Driver/Include/Driver_Storage.h b/CMSIS/Driver/Include/Driver_Storage.h
index 573d628c..d9488c5 100644
--- a/CMSIS/Driver/Include/Driver_Storage.h
+++ b/CMSIS/Driver/Include/Driver_Storage.h
@@ -1,18 +1,33 @@
 /*
- * Copyright (c) 2006-2017, ARM Limited, All Rights Reserved
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
+ *
  * SPDX-License-Identifier: Apache-2.0
  *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * 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
+ * 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:        24. January 2020
+ * $Revision:    V1.2
+ *
+ * Project:      Storage Driver definitions
+ */
+
+/* History:
+ *  Version 1.2
+ *    Removed volatile from ARM_STORAGE_STATUS
+ *  Version 1.1
+ *    ARM_STORAGE_STATUS made volatile
+ *  Version 1.00
+ *    Initial release
  */
 
 #ifndef DRIVER_STORAGE_H_
@@ -24,7 +39,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_STORAGE_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,1)  /* API version */
+#define ARM_STORAGE_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1,2)  /* API version */
 
 
 #define _ARM_Driver_Storage_(n)      Driver_Storage##n
@@ -161,7 +176,7 @@
 /**
 \brief Operating status of the storage controller.
 */
-typedef volatile struct _ARM_STORAGE_STATUS {
+typedef struct _ARM_STORAGE_STATUS {
   uint32_t busy     : 1;                ///< Controller busy flag
   uint32_t error    : 1;                ///< Read/Program/Erase error flag (cleared on start of next operation)
   uint32_t reserved : 30;
diff --git a/CMSIS/Driver/Include/Driver_USART.h b/CMSIS/Driver/Include/Driver_USART.h
index e60bf51..013a8a9 100644
--- a/CMSIS/Driver/Include/Driver_USART.h
+++ b/CMSIS/Driver/Include/Driver_USART.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,14 +15,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.3
+ * $Date:        24. January 2020
+ * $Revision:    V2.4
  *
  * Project:      USART (Universal Synchronous Asynchronous Receiver Transmitter)
  *               Driver definitions
  */
 
 /* History:
+ *  Version 2.4
+ *    Removed volatile from ARM_USART_STATUS and ARM_USART_MODEM_STATUS
  *  Version 2.3
  *    ARM_USART_STATUS and ARM_USART_MODEM_STATUS made volatile
  *  Version 2.2
@@ -62,7 +64,7 @@
 
 #include "Driver_Common.h"
 
-#define ARM_USART_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
+#define ARM_USART_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,4)  /* API version */
 
 
 /****** USART Control Codes *****/
@@ -152,7 +154,7 @@
 /**
 \brief USART Status
 */
-typedef volatile struct _ARM_USART_STATUS {
+typedef struct _ARM_USART_STATUS {
   uint32_t tx_busy          : 1;        ///< Transmitter busy flag
   uint32_t rx_busy          : 1;        ///< Receiver busy flag
   uint32_t tx_underflow     : 1;        ///< Transmit data underflow detected (cleared on start of next send operation)
@@ -176,7 +178,7 @@
 /**
 \brief USART Modem Status
 */
-typedef volatile struct _ARM_USART_MODEM_STATUS {
+typedef struct _ARM_USART_MODEM_STATUS {
   uint32_t cts      : 1;                ///< CTS state: 1=Active, 0=Inactive
   uint32_t dsr      : 1;                ///< DSR state: 1=Active, 0=Inactive
   uint32_t dcd      : 1;                ///< DCD state: 1=Active, 0=Inactive
diff --git a/CMSIS/Driver/Include/Driver_USBD.h b/CMSIS/Driver/Include/Driver_USBD.h
index f6b230a..7127346 100644
--- a/CMSIS/Driver/Include/Driver_USBD.h
+++ b/CMSIS/Driver/Include/Driver_USBD.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- * $Date:        2. Feb 2017
- * $Revision:    V2.2
+ * $Date:        24. January 2020
+ * $Revision:    V2.3
  *
  * Project:      USB Device Driver definitions
  */
 
 /* History:
+ *  Version 2.3
+ *    Removed volatile from ARM_USBD_STATE
  *  Version 2.2
  *    ARM_USBD_STATE made volatile
  *  Version 2.1
@@ -51,13 +53,13 @@
 
 #include "Driver_USB.h"
 
-#define ARM_USBD_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
+#define ARM_USBD_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
 
 
 /**
 \brief USB Device State
 */
-typedef volatile struct _ARM_USBD_STATE {
+typedef struct _ARM_USBD_STATE {
   uint32_t vbus     : 1;                ///< USB Device VBUS flag
   uint32_t speed    : 2;                ///< USB Device speed setting (ARM_USB_SPEED_xxx)
   uint32_t active   : 1;                ///< USB Device active flag
diff --git a/CMSIS/Driver/Include/Driver_USBH.h b/CMSIS/Driver/Include/Driver_USBH.h
index a30eaca..20ae8a2 100644
--- a/CMSIS/Driver/Include/Driver_USBH.h
+++ b/CMSIS/Driver/Include/Driver_USBH.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
+ * Copyright (c) 2013-2020 ARM Limited. All rights reserved.
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,13 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
   *
- * $Date:        2. Feb 2017
- * $Revision:    V2.2
+ * $Date:        24. January 2020
+ * $Revision:    V2.3
  *
  * Project:      USB Host Driver definitions
 */
 
 /* History:
+ *  Version 2.3
+ *    Removed volatile from ARM_USBH_PORT_STATE
  *  Version 2.2
  *    ARM_USBH_PORT_STATE made volatile
  *  Version 2.1
@@ -56,13 +58,13 @@
 
 #include "Driver_USB.h"
 
-#define ARM_USBH_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,2)  /* API version */
+#define ARM_USBH_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,3)  /* API version */
 
 
 /**
 \brief USB Host Port State
 */
-typedef volatile struct _ARM_USBH_PORT_STATE {
+typedef struct _ARM_USBH_PORT_STATE {
   uint32_t connected   : 1;             ///< USB Host Port connected flag
   uint32_t overcurrent : 1;             ///< USB Host Port overcurrent flag
   uint32_t speed       : 2;             ///< USB Host Port speed setting (ARM_USB_SPEED_xxx)