38typedef enum : uint32_t {
92 if ((r == 0U) && (w == 0U)) {
97 (void)
priv_emu_io_errf(
" MSTP-GATING : DROPPED %u read(s)+%u write(s) to module-stopped "
98 "peripheral(s) (last: %s) -- firmware forgot to cancel module-stop\n",
Decentralized peripheral-block registry for the board emulator core.
void board_periph_register_block(const board_periph_block_t *block)
Register a peripheral block's descriptor with the core registry.
static uint64_t internal_mstp_read(uc_engine *uc, uint64_t addr, unsigned size)
MMIO read of MSTPCRA..E: answer from the tracked shadow.
mstp_order_t
Per-tick order slot for the MSTP block (just before SYSC-PRCR).
@ k_mstp_block_order
Groups with the PRCR / power-domain blocks.
static void internal_mstp_block_register(void)
Register the MSTP block before main (host constructor).
static const board_periph_block_t s_k_mstp_block
MSTP block descriptor (owns MSTPCRA..E; self-registered).
static void internal_mstp_write(uc_engine *uc, uint64_t addr, unsigned size, uint64_t value)
MMIO write of MSTPCRA..E: fold into the shadow (ungate/re-gate).
static void internal_mstp_report(void)
End-of-run section: make any access to an unclocked block LOUD.
Module-private module-stop (MSTP) gate state shared with the core.
@ k_board_mstp_win_span
MSTPCRA..E = 5 x uint32 = 20 B.
@ k_board_mstp_win_base
R_MSTP base (Secure alias).
uint32_t priv_board_mstp_read_reg(uint64_t off, unsigned size)
Read the tracked MSTPCRA..MSTPCRE shadow (the read-back path).
uint32_t priv_board_mstp_gated_write_count(void)
Number of writes dropped because their peripheral was module-stopped.
uint32_t priv_board_mstp_gated_read_count(void)
Number of reads zeroed because their peripheral was module-stopped.
const char * priv_board_mstp_last_gated_name(void)
Label of the peripheral whose access was most recently gated off.
void priv_board_mstp_reset(void)
Restore MSTPCRA..MSTPCRE to their all-stopped reset values.
void priv_board_mstp_apply_write(uint64_t off, unsigned size, uint32_t value)
Apply a firmware write to the MSTPCRA..MSTPCRE shadow.
Bounded raw-descriptor I/O seam for the RA8 emulator.
emu_io_result_t priv_emu_io_errf(const char *format,...)
Format bounded text and write it to the injected error descriptor.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
A modelled peripheral block's self-description for the core registry.