Software APIs
dif_soc_dbg_ctrl_autogen.h
Go to the documentation of this file.
1
// Copyright lowRISC contributors (OpenTitan project).
2
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3
// SPDX-License-Identifier: Apache-2.0
4
5
6
7
#ifndef OPENTITAN_SW_DEVICE_LIB_DIF_AUTOGEN_DIF_SOC_DBG_CTRL_AUTOGEN_H_
8
#define OPENTITAN_SW_DEVICE_LIB_DIF_AUTOGEN_DIF_SOC_DBG_CTRL_AUTOGEN_H_
9
10
// THIS FILE HAS BEEN GENERATED, DO NOT EDIT MANUALLY. COMMAND:
11
// util/autogen_dif.py -i hw/ip/soc_dbg_ctrl/data/soc_dbg_ctrl.hjson -o
12
// bazel-out/k8-fastbuild-ST-ae23cdef058d/bin/sw/device/lib/dif/autogen
13
14
15
/**
16
* @file
17
* @brief <a href="/book/hw/ip/soc_dbg_ctrl/">SOC_DBG_CTRL</a> Device Interface Functions
18
*/
19
20
#include <stdbool.h>
21
#include <stdint.h>
22
23
#include "
sw/device/lib/base/macros.h
"
24
#include "
sw/device/lib/base/mmio.h
"
25
#include "
sw/device/lib/dif/dif_base.h
"
26
#include "
dt/dt_soc_dbg_ctrl.h
"
// Generated.
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
// __cplusplus
31
32
/**
33
* A handle to soc_dbg_ctrl.
34
*
35
* This type should be treated as opaque by users.
36
*/
37
typedef
struct
dif_soc_dbg_ctrl
{
38
/**
39
* The base address for the soc_dbg_ctrl hardware registers.
40
*/
41
mmio_region_t
base_addr
;
42
/**
43
* The instance, set to `kDtSocDbgCtrlCount` if not initialized
44
* through `dif_soc_dbg_ctrl_init_from_dt`.
45
*/
46
dt_soc_dbg_ctrl_t
dt
;
47
}
dif_soc_dbg_ctrl_t
;
48
49
/**
50
* Creates a new handle for a(n) soc_dbg_ctrl peripheral.
51
*
52
* This function does not actuate the hardware.
53
*
54
* @param base_addr The MMIO base address of the soc_dbg_ctrl peripheral.
55
* @param[out] soc_dbg_ctrl Out param for the initialized handle.
56
* @return The result of the operation.
57
*
58
* DEPRECATED This function exists solely for the transition to
59
* dt-based DIFs and will be removed in the future.
60
*/
61
OT_WARN_UNUSED_RESULT
62
dif_result_t
dif_soc_dbg_ctrl_init
(
63
mmio_region_t
base_addr,
64
dif_soc_dbg_ctrl_t
*soc_dbg_ctrl);
65
66
/**
67
* Creates a new handle for a(n) soc_dbg_ctrl peripheral.
68
*
69
* This function does not actuate the hardware.
70
*
71
* @param dt The devicetable description of the device.
72
* @param[out] soc_dbg_ctrl Out param for the initialized handle.
73
* @return The result of the operation.
74
*/
75
OT_WARN_UNUSED_RESULT
76
dif_result_t
dif_soc_dbg_ctrl_init_from_dt
(
77
dt_soc_dbg_ctrl_t
dt,
78
dif_soc_dbg_ctrl_t
*soc_dbg_ctrl);
79
80
/**
81
* Get the DT handle from this DIF.
82
*
83
* If this DIF was initialized by `dif_soc_dbg_ctrl_init_from_dt(dt, ..)`
84
* then this function will return `dt`. Otherwise it will return an error.
85
*
86
* @param soc_dbg_ctrl A soc_dbg_ctrl handle.
87
* @param[out] dt DT handle.
88
* @return `kDifBadArg` if the DIF has no DT information, `kDifOk` otherwise.
89
*/
90
OT_WARN_UNUSED_RESULT
91
dif_result_t
dif_soc_dbg_ctrl_get_dt
(
92
const
dif_soc_dbg_ctrl_t
*soc_dbg_ctrl,
93
dt_soc_dbg_ctrl_t
*dt);
94
95
/**
96
* A soc_dbg_ctrl alert type.
97
*/
98
typedef
enum
dif_soc_dbg_ctrl_alert
{
99
/**
100
* This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected.
101
*/
102
kDifSocDbgCtrlAlertFatalFault
= 0,
103
/**
104
* This recoverable alert is triggered upon detecting an update error in the shadowed Control Register.
105
*/
106
kDifSocDbgCtrlAlertRecovCtrlUpdateErr
= 1,
107
}
dif_soc_dbg_ctrl_alert_t
;
108
109
/**
110
* Forces a particular alert, causing it to be escalated as if the hardware
111
* had raised it.
112
*
113
* @param soc_dbg_ctrl A soc_dbg_ctrl handle.
114
* @param alert The alert to force.
115
* @return The result of the operation.
116
*/
117
OT_WARN_UNUSED_RESULT
118
dif_result_t
dif_soc_dbg_ctrl_alert_force
(
119
const
dif_soc_dbg_ctrl_t
*soc_dbg_ctrl,
120
dif_soc_dbg_ctrl_alert_t
alert);
121
122
123
#ifdef __cplusplus
124
}
// extern "C"
125
#endif
// __cplusplus
126
127
#endif
// OPENTITAN_SW_DEVICE_LIB_DIF_AUTOGEN_DIF_SOC_DBG_CTRL_AUTOGEN_H_
(darjeeling)
sw
device
lib
dif
autogen
dif_soc_dbg_ctrl_autogen.h
Return to
OpenTitan Documentation