50typedef enum : uint64_t {
59typedef enum : uint32_t {
70typedef enum : uint32_t {
142 return s_poeg.poegg[group];
175 const uint32_t writable = (uint32_t)value & ~(uint32_t)
k_poegg_st;
176 const uint32_t prev =
s_poeg.poegg[group];
178 s_poeg.poegg[group] = next;
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 RA8_INTERNAL void internal_poeg_reset(void)
Reset the POEG model to power-on state.
static poeg_state_t s_poeg
poeg_geom_t
POEG block geometry (ra8_poeg_regs.h, r_poeg_regs_t).
@ k_poeg_off_poegg
POEGG setting + status.
@ k_poeg_base
POEG0 base (HUM Ch 21.2.1).
@ k_poeg_span
Covers all four groups.
@ k_poeg_count
POEG0..POEG3.
@ k_poeg_stride
Bytes per POEG group.
static RA8_INTERNAL void internal_poeg_block_register(void)
Register the POEG block before main (host constructor).
static RA8_INTERNAL uint64_t internal_poeg_read(uc_engine *uc, uint64_t addr, unsigned size)
MMIO read inside the POEG window.
static RA8_INTERNAL void internal_poeg_report(void)
End-of-run POEG section: shutoff assert / re-enable counts.
static RA8_INTERNAL uint32_t internal_poeg_with_st(uint32_t writable)
Recompute the read-only ST bit from the active request flags.
static const board_periph_block_t s_k_poeg_block
POEG block descriptor (self-registered with the core).
poeg_order_t
Per-tick order slot for the POEG block (report order only).
@ k_poeg_block_order
Just after the GPT/AGT timers (20).
poegg_field_t
POEGG field masks (ra8_poeg.h enum mirror).
@ k_poegg_st
Output-disable STATE flag (bit 16).
@ k_poegg_ssf
Software-stop request flag (bit 3).
@ k_poegg_iocf
Output-short request flag (bit 1).
@ k_poegg_trig
Any request flag: ST is the OR of these.
@ k_poegg_ostp
Osc-stop request flag (bit 2).
@ k_poegg_pidf
Port-input request flag (bit 0).
static RA8_INTERNAL void internal_poeg_write(uc_engine *uc, uint64_t addr, unsigned size, uint64_t value)
MMIO write inside the POEG window.
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.
#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.
uint32_t asserts
0->1 ST transitions (shutoffs).
uint32_t poegg[k_poeg_count]
Per-group POEGG shadow (ST derived).
uint32_t clears
1->0 ST transitions (re-enables).