11/*
2- * Copyright (c) 2009-2024 Arm Limited. All rights reserved.
2+ * Copyright (c) 2009-2025 Arm Limited. All rights reserved.
33 *
44 * SPDX-License-Identifier: Apache-2.0
55 *
@@ -1734,6 +1734,124 @@ typedef struct
17341734
17351735/*@} end of group CMSIS_DCB */
17361736
1737+ /**
1738+ \ingroup CMSIS_core_register
1739+ \defgroup CMSIS_ERRBNK Error Banking Registers (IMPLEMENTATION DEFINED)
1740+ \brief Type definitions for the Error Banking Registers (ERRBNK)
1741+ @{
1742+ */
1743+
1744+ /**
1745+ \brief Structure type to access the Error Banking Registers (ERRBNK).
1746+ */
1747+ typedef struct {
1748+ __IOM uint32_t IEBR0 ; /*!< Offset: 0x000 (R/W) Instruction Cache Error Bank Register 0 */
1749+ __IOM uint32_t IEBR1 ; /*!< Offset: 0x004 (R/W) Instruction Cache Error Bank Register 1 */
1750+ __IOM uint32_t DEBR0 ; /*!< Offset: 0x008 (R/W) Data Cache Error Bank Register 0 */
1751+ __IOM uint32_t DEBR1 ; /*!< Offset: 0x00C (R/W) Data Cache Error Bank Register 1 */
1752+ } ErrBnk_Type ;
1753+
1754+ /** \brief IEBR0 bit position and mask definitions */
1755+ #define ERRBNK_IEBR0_USER_Pos 30U /*!< IEBR0: USER Position */
1756+ #define ERRBNK_IEBR0_USER_Msk (0x3UL << ERRBNK_IEBR0_USER_Pos) /*!< IEBR0: USER Mask */
1757+
1758+ #define ERRBNK_IEBR0_TYPE_Pos 17U /*!< IEBR0: TYPE Position */
1759+ #define ERRBNK_IEBR0_TYPE_Msk (0x1UL << ERRBNK_IEBR0_TYPE_Pos) /*!< IEBR0: TYPE Mask */
1760+
1761+ #define ERRBNK_IEBR0_RAMBank_Pos 16U /*!< IEBR0: RAMBANK Position */
1762+ #define ERRBNK_IEBR0_RAMBank_Msk (0x1UL << ERRBNK_IEBR0_RAMBank_Pos) /*!< IEBR0: RAMBANK Mask */
1763+
1764+ #define ERRBNK_IEBR0_WAY_Pos 14U /*!< IEBR0: WAY Position */
1765+ #define ERRBNK_IEBR0_WAY_Msk (0x1UL << ERRBNK_IEBR0_WAY_Pos) /*!< IEBR0: WAY Mask */
1766+
1767+ #define ERRBNK_IEBR0_INDEX_Pos 4U /*!< IEBR0: INDEX Position */
1768+ #define ERRBNK_IEBR0_INDEX_Msk (0x3FFUL << ERRBNK_IEBR0_INDEX_Pos) /*!< IEBR0: INDEX Mask */
1769+
1770+ #define ERRBNK_IEBR0_LDO_Pos 2U /*!< IEBR0: LDO Position */
1771+ #define ERRBNK_IEBR0_LDO_Msk (0x3UL << ERRBNK_IEBR0_LDO_Pos) /*!< IEBR0: LDO Mask */
1772+
1773+ #define ERRBNK_IEBR0_LOCK_Pos 1U /*!< IEBR0: LOCK Position */
1774+ #define ERRBNK_IEBR0_LOCK_Msk (0x1UL << ERRBNK_IEBR0_LOCK_Pos) /*!< IEBR0: LOCK Mask */
1775+
1776+ #define ERRBNK_IEBR0_VALID_Pos 0U /*!< IEBR0: VALID Position */
1777+ #define ERRBNK_IEBR0_VALID_Msk (0x1UL << ERRBNK_IEBR0_VALID_Pos) /*!< IEBR0: VALID Mask */
1778+
1779+ /** \brief IEBR1 bit position and mask definitions */
1780+ #define ERRBNK_IEBR1_USER_Pos 30U /*!< IEBR1: USER Position */
1781+ #define ERRBNK_IEBR1_USER_Msk (0x3UL << ERRBNK_IEBR1_USER_Pos) /*!< IEBR1: USER Mask */
1782+
1783+ #define ERRBNK_IEBR1_TYPE_Pos 17U /*!< IEBR1: TYPE Position */
1784+ #define ERRBNK_IEBR1_TYPE_Msk (0x1UL << ERRBNK_IEBR1_TYPE_Pos) /*!< IEBR1: TYPE Mask */
1785+
1786+ #define ERRBNK_IEBR1_RAMBank_Pos 16U /*!< IEBR1: RAMBANK Position */
1787+ #define ERRBNK_IEBR1_RAMBank_Msk (0x1UL << ERRBNK_IEBR1_RAMBank_Pos) /*!< IEBR1: RAMBANK Mask */
1788+
1789+ #define ERRBNK_IEBR1_WAY_Pos 14U /*!< IEBR1: WAY Position */
1790+ #define ERRBNK_IEBR1_WAY_Msk (0x1UL << ERRBNK_IEBR1_WAY_Pos) /*!< IEBR1: WAY Mask */
1791+
1792+ #define ERRBNK_IEBR1_INDEX_Pos 4U /*!< IEBR1: INDEX Position */
1793+ #define ERRBNK_IEBR1_INDEX_Msk (0x3FFUL << ERRBNK_IEBR1_INDEX_Pos) /*!< IEBR1: INDEX Mask */
1794+
1795+ #define ERRBNK_IEBR1_LDO_Pos 2U /*!< IEBR1: LDO Position */
1796+ #define ERRBNK_IEBR1_LDO_Msk (0x3UL << ERRBNK_IEBR1_LDO_Pos) /*!< IEBR1: LDO Mask */
1797+
1798+ #define ERRBNK_IEBR1_LOCK_Pos 1U /*!< IEBR1: LOCK Position */
1799+ #define ERRBNK_IEBR1_LOCK_Msk (0x1UL << ERRBNK_IEBR1_LOCK_Pos) /*!< IEBR1: LOCK Mask */
1800+
1801+ #define ERRBNK_IEBR1_VALID_Pos 0U /*!< IEBR1: VALID Position */
1802+ #define ERRBNK_IEBR1_VALID_Msk (0x1UL << ERRBNK_IEBR1_VALID_Pos) /*!< IEBR1: VALID Mask */
1803+
1804+ /** \brief DEBR0 bit position and mask definitions */
1805+ #define ERRBNK_DEBR0_USER_Pos 30U /*!< DEBR0: USER Position */
1806+ #define ERRBNK_DEBR0_USER_Msk (0x3UL << ERRBNK_DEBR0_USER_Pos) /*!< DEBR0: USER Mask */
1807+
1808+ #define ERRBNK_DEBR0_TYPE_Pos 17U /*!< DEBR0: TYPE Position */
1809+ #define ERRBNK_DEBR0_TYPE_Msk (0x1UL << ERRBNK_DEBR0_TYPE_Pos) /*!< DEBR0: TYPE Mask */
1810+
1811+ #define ERRBNK_DEBR0_RAMBank_Pos 16U /*!< DEBR0: RAMBANK Position */
1812+ #define ERRBNK_DEBR0_RAMBank_Msk (0x1UL << ERRBNK_DEBR0_RAMBank_Pos) /*!< DEBR0: RAMBANK Mask */
1813+
1814+ #define ERRBNK_DEBR0_WAY_Pos 14U /*!< DEBR0: WAY Position */
1815+ #define ERRBNK_DEBR0_WAY_Msk (0x1UL << ERRBNK_DEBR0_WAY_Pos) /*!< DEBR0: WAY Mask */
1816+
1817+ #define ERRBNK_DEBR0_INDEX_Pos 4U /*!< DEBR0: INDEX Position */
1818+ #define ERRBNK_DEBR0_INDEX_Msk (0x3FFUL << ERRBNK_DEBR0_INDEX_Pos) /*!< DEBR0: INDEX Mask */
1819+
1820+ #define ERRBNK_DEBR0_LDO_Pos 2U /*!< DEBR0: LDO Position */
1821+ #define ERRBNK_DEBR0_LDO_Msk (0x3UL << ERRBNK_DEBR0_LDO_Pos) /*!< DEBR0: LDO Mask */
1822+
1823+ #define ERRBNK_DEBR0_LOCK_Pos 1U /*!< DEBR0: LOCK Position */
1824+ #define ERRBNK_DEBR0_LOCK_Msk (0x1UL << ERRBNK_DEBR0_LOCK_Pos) /*!< DEBR0: LOCK Mask */
1825+
1826+ #define ERRBNK_DEBR0_VALID_Pos 0U /*!< DEBR0: VALID Position */
1827+ #define ERRBNK_DEBR0_VALID_Msk (0x1UL << ERRBNK_DEBR0_VALID_Pos) /*!< DEBR0: VALID Mask */
1828+
1829+ /** \brief DEBR1 bit position and mask definitions */
1830+ #define ERRBNK_DEBR1_USER_Pos 30U /*!< DEBR1: USER Position */
1831+ #define ERRBNK_DEBR1_USER_Msk (0x3UL << ERRBNK_DEBR1_USER_Pos) /*!< DEBR1: USER Mask */
1832+
1833+ #define ERRBNK_DEBR1_TYPE_Pos 17U /*!< DEBR1: TYPE Position */
1834+ #define ERRBNK_DEBR1_TYPE_Msk (0x1UL << ERRBNK_DEBR1_TYPE_Pos) /*!< DEBR1: TYPE Mask */
1835+
1836+ #define ERRBNK_DEBR1_RAMBank_Pos 16U /*!< DEBR1: RAMBANK Position */
1837+ #define ERRBNK_DEBR1_RAMBank_Msk (0x1UL << ERRBNK_DEBR1_RAMBank_Pos) /*!< DEBR1: RAMBANK Mask */
1838+
1839+ #define ERRBNK_DEBR1_WAY_Pos 14U /*!< DEBR1: WAY Position */
1840+ #define ERRBNK_DEBR1_WAY_Msk (0x1UL << ERRBNK_DEBR1_WAY_Pos) /*!< DEBR1: WAY Mask */
1841+
1842+ #define ERRBNK_DEBR1_INDEX_Pos 4U /*!< DEBR1: INDEX Position */
1843+ #define ERRBNK_DEBR1_INDEX_Msk (0x3FFUL << ERRBNK_DEBR1_INDEX_Pos) /*!< DEBR1: INDEX Mask */
1844+
1845+ #define ERRBNK_DEBR1_LDO_Pos 2U /*!< DEBR1: LDO Position */
1846+ #define ERRBNK_DEBR1_LDO_Msk (0x3UL << ERRBNK_DEBR1_LDO_Pos) /*!< DEBR1: LDO Mask */
1847+
1848+ #define ERRBNK_DEBR1_LOCK_Pos 1U /*!< DEBR1: LOCK Position */
1849+ #define ERRBNK_DEBR1_LOCK_Msk (0x1UL << ERRBNK_DEBR1_LOCK_Pos) /*!< DEBR1: LOCK Mask */
1850+
1851+ #define ERRBNK_DEBR1_VALID_Pos 0U /*!< DEBR1: VALID Position */
1852+ #define ERRBNK_DEBR1_VALID_Msk (0x1UL << ERRBNK_DEBR1_VALID_Pos) /*!< DEBR1: VALID Mask */
1853+
1854+ /*@} end of group CMSIS_ERRBNK */
17371855
17381856/**
17391857 \ingroup CMSIS_core_register
@@ -1777,6 +1895,7 @@ typedef struct
17771895#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
17781896#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
17791897#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
1898+ #define ERRBNK_BASE (SCS_BASE + 0x0FB0UL) /*!< Error Banking Base Address */
17801899
17811900#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */
17821901#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
@@ -1786,6 +1905,7 @@ typedef struct
17861905#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */
17871906#define TPIU ((TPIU_Type *) TPIU_BASE ) /*!< TPIU configuration struct */
17881907#define DCB ((DCB_Type *) DCB_BASE ) /*!< DCB configuration struct */
1908+ #define ERRBNK ((ErrBnk_Type *) ERRBNK_BASE ) /*!< Error Banking configuration struct */
17891909
17901910#if defined (__MPU_PRESENT ) && (__MPU_PRESENT == 1U )
17911911 #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */
0 commit comments