Skip to content

Commit f1538f3

Browse files
authored
Add missing ERRBNK definitions (#253)
Added missing L1 cache (Instruction & Data) Error bank register definitions from DDI0489B 3.3.10-11 Signed-off-by: Anubhav Raina <anubhav.raina@arm.com>
1 parent 5506831 commit f1538f3

1 file changed

Lines changed: 121 additions & 1 deletion

File tree

CMSIS/Core/Include/core_cm7.h

Lines changed: 121 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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

Comments
 (0)