5#ifndef OPENTITAN_SW_DEVICE_LIB_BASE_ABS_MMIO_H_
6#define OPENTITAN_SW_DEVICE_LIB_BASE_ABS_MMIO_H_
30#ifdef OT_PLATFORM_RV32
39inline uint8_t abs_mmio_read8(uint32_t addr) {
40 return *((
volatile uint8_t *)addr);
49inline void abs_mmio_write8(uint32_t addr, uint8_t value) {
50 *((
volatile uint8_t *)addr) = value;
60inline void abs_mmio_write8_shadowed(uint32_t addr, uint8_t value) {
61 *((
volatile uint8_t *)addr) = value;
62 *((
volatile uint8_t *)addr) = value;
72inline uint32_t abs_mmio_read32(uint32_t addr) {
73 return *((
volatile uint32_t *)addr);
82inline void abs_mmio_write32(uint32_t addr, uint32_t value) {
83 *((
volatile uint32_t *)addr) = value;
93inline void abs_mmio_write32_shadowed(uint32_t addr, uint32_t value) {
94 *((
volatile uint32_t *)addr) = value;
95 *((
volatile uint32_t *)addr) = value;
100extern uint8_t abs_mmio_read8(uint32_t addr);
101extern void abs_mmio_write8(uint32_t addr, uint8_t value);
102extern void abs_mmio_write8_shadowed(uint32_t addr, uint8_t value);
103extern uint32_t abs_mmio_read32(uint32_t addr);
104extern void abs_mmio_write32(uint32_t addr, uint32_t value);
105extern void abs_mmio_write32_shadowed(uint32_t addr, uint32_t value);