5#ifndef OPENTITAN_SW_DEVICE_LIB_DIF_DIF_RV_CORE_IBEX_H_
6#define OPENTITAN_SW_DEVICE_LIB_DIF_DIF_RV_CORE_IBEX_H_
14#include "sw/device/lib/dif/autogen/dif_rv_core_ibex_autogen.h"
23typedef enum dif_rv_core_ibex_addr_translation_slot {
24 kDifRvCoreIbexAddrTranslationSlot_0,
25 kDifRvCoreIbexAddrTranslationSlot_1,
26 kDifRvCoreIbexAddrTranslationSlotCount,
27} dif_rv_core_ibex_addr_translation_slot_t;
32typedef enum dif_rv_core_ibex_addr_translation_bus {
33 kDifRvCoreIbexAddrTranslationDBus,
34 kDifRvCoreIbexAddrTranslationIBus,
35 kDifRvCoreIbexAddrTranslationBusCount,
36} dif_rv_core_ibex_addr_translation_bus_t;
71} dif_rv_core_ibex_addr_translation_mapping_t;
76typedef enum dif_rv_core_ibex_error_status {
80 kDifRvCoreIbexErrorStatusRegisterTransmissionIntegrity = 1 << 0,
85 kDifRvCoreIbexErrorStatusFatalResponseIntegrity = 1 << 8,
90 kDifRvCoreIbexErrorStatusFatalInternalError = 1 << 9,
95 kDifRvCoreIbexErrorStatusRecoverableInternal = 1 << 10,
100 kDifRvCoreIbexErrorStatusAll = (1 << 0 | 1 << 8 | 1 << 9 | 1 << 10),
101} dif_rv_core_ibex_error_status_t;
103typedef enum dif_rv_core_ibex_rnd_status_code {
107 kDifRvCoreIbexRndStatusValid = 1 << 0,
111 kDifRvCoreIbexRndStatusFipsCompliant = 1 << 1,
112} dif_rv_core_ibex_rnd_status_code_t;
117typedef uint32_t dif_rv_core_ibex_rnd_status_t;
139} dif_rv_core_ibex_nmi_state_t;
141typedef enum dif_rv_core_ibex_nmi_source {
145 kDifRvCoreIbexNmiSourceAlert = 1 << 0,
149 kDifRvCoreIbexNmiSourceWdog = 1 << 1,
153 kDifRvCoreIbexNmiSourceAll = 0x3,
154} dif_rv_core_ibex_nmi_source_t;
181} dif_rv_core_ibex_crash_dump_state_t;
193} dif_rv_core_ibex_previous_crash_dump_state_t;
218} dif_rv_core_ibex_crash_dump_info_t;
231dif_result_t dif_rv_core_ibex_configure_addr_translation(
233 dif_rv_core_ibex_addr_translation_slot_t slot,
234 dif_rv_core_ibex_addr_translation_bus_t bus,
235 dif_rv_core_ibex_addr_translation_mapping_t addr_map);
249 dif_rv_core_ibex_addr_translation_slot_t slot,
250 dif_rv_core_ibex_addr_translation_bus_t bus);
264 dif_rv_core_ibex_addr_translation_slot_t slot,
265 dif_rv_core_ibex_addr_translation_bus_t bus);
280 dif_rv_core_ibex_addr_translation_slot_t slot,
281 dif_rv_core_ibex_addr_translation_bus_t bus,
282 dif_rv_core_ibex_addr_translation_mapping_t *addr_map);
297 dif_rv_core_ibex_addr_translation_slot_t slot,
298 dif_rv_core_ibex_addr_translation_bus_t bus);
310 dif_rv_core_ibex_error_status_t *error_status);
322 dif_rv_core_ibex_error_status_t error_status);
333 dif_rv_core_ibex_nmi_source_t nmi);
345 dif_rv_core_ibex_nmi_state_t *nmi_state);
368 dif_rv_core_ibex_rnd_status_t *
status);
381typedef uint32_t dif_rv_core_ibex_fpga_info_t;
419dif_result_t dif_rv_core_ibex_trigger_sw_recov_err_alert(
442dif_result_t dif_rv_core_ibex_trigger_sw_fatal_err_alert(
457 uint32_t cpu_info_len, dif_rv_core_ibex_crash_dump_info_t *crash_dump_info);