1 /*
2  * Copyright (c) 2024, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 /**
9  * \file sam_reg_map.h
10  * \brief Register map of Arm Security Alarm Manager (SAM).
11  */
12 
13 #ifndef __SAM_REG_MAP_H__
14 #define __SAM_REG_MAP_H__
15 
16 #include <stdint.h>
17 #include "tfm_hal_device_header.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 /**
23  * \brief SAM register map.
24  */
25 struct sam_reg_map_t {
26     __IM uint32_t sambc;
27         /**< Offset: 0x000 (R/ ) SAM Build Configuration register */
28     __IM uint32_t sames[2];
29         /**< Offset: 0x004 (R/ ) SAM Event Status registers */
30     __OM uint32_t samecl[2];
31         /**< Offset: 0x00C ( /W) SAM Event Clear registers */
32     __IOM uint32_t samem[2];
33         /**< Offset: 0x014 (R/W) SAM Export Mask registers */
34     __IOM uint32_t samim[2];
35         /**< Offset: 0x01C (R/W) SAM Input Mask registers */
36     __IOM uint32_t samrrls[8];
37         /**< Offset: 0x024 (R/W) SAM Response Routing Logic Setup registers */
38     __IOM uint32_t samec[8];
39         /**< Offset: 0x044 (R/W) SAM Event Counter registers */
40     __IOM uint32_t samectiv;
41         /**< Offset: 0x064 (R/W) SAM Event Counters Timer Initial Value register */
42     __IOM uint32_t samwdciv;
43         /**< Offset: 0x068 (R/W) SAM Watchdog Counter Initial Value register */
44     __IOM uint32_t samrl;
45         /**< Offset: 0x06C (R/W) SAM Registers Lock register */
46     __IOM uint32_t samicv;
47         /**< Offset: 0x070 (R/W) SAM Integrity Check Value register */
48     __IOM uint32_t samcdres;
49         /**< Offset: 0x074 (R/W) SAM Processor DCLS Reported Errors Status registers */
50     __IOM uint32_t samrres[3];
51         /**< Offset: 0x078 (R/W) SAM Processor RAS Reported Errors Status registers */
52     __IOM uint32_t vmpwca[4];
53         /**< Offset: 0x084 (R/W) VM<n> Partial Write Captured Address registers */
54     __IOM uint32_t vmsceeca[4];
55         /**< Offset: 0x094 (R/W) VM<n> Single Corrected ECC Error Captured Address registers */
56     __IOM uint32_t vmdueeca[4];
57         /**< Offset: 0x0A4 (R/W) VM<n> Double Uncorrected ECC Error Captured Address registers */
58     __IOM uint32_t tramsceeca;
59         /**< Offset: 0x0B4 (R/W) TRAM Single Corrected ECC Error Captured Address register */
60     __IOM uint32_t tramdueeca;
61         /**< Offset: 0x0B8 (R/W) TRAM Double Uncorrected ECC Error Captured Address register */
62     const volatile uint32_t _reserved0[0x3C5];
63         /**< Offset: 0x0BC (RAZ/WI) Reserved */
64     __IM uint32_t pidr4;
65         /**< Offset: 0xFD0 (R/ ) Peripheral ID 4 register */
66     const volatile uint32_t _reserved1[0x3];
67         /**< Offset: 0xFD4 (RAZ/WI) Reserved */
68     __IM uint32_t pidr[4];
69         /**< Offset: 0xFE0 (R/ ) Peripheral ID 0-3 registers */
70     __IM uint32_t cidr[4];
71         /**< Offset: 0xFF0 (R/ ) Component ID 0-3 registers */
72 };
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif /* __SAM_REG_MAP_H__ */
78