AArch64 EL2 hypervisor for QEMU virt that boots at EL2
1

Configure Feed

Select the types of activity you want to include in your feed.

ariel / include / hv / mmio.h
691 B 40 lines
1#ifndef HV_MMIO_H 2#define HV_MMIO_H 3 4#include "hv/types.h" 5 6static inline void hv_dmb_ish(void) 7{ 8 __asm__ volatile("dmb ish" ::: "memory"); 9} 10 11static inline void hv_dsb_ish(void) 12{ 13 __asm__ volatile("dsb ish" ::: "memory"); 14} 15 16static inline void hv_dsb_sy(void) 17{ 18 __asm__ volatile("dsb sy" ::: "memory"); 19} 20 21static inline void hv_isb(void) 22{ 23 __asm__ volatile("isb" ::: "memory"); 24} 25 26static inline uint32_t mmio_read32(uintptr_t addr) 27{ 28 uint32_t value = *(volatile uint32_t *)addr; 29 hv_dmb_ish(); 30 return value; 31} 32 33static inline void mmio_write32(uintptr_t addr, uint32_t value) 34{ 35 hv_dmb_ish(); 36 *(volatile uint32_t *)addr = value; 37 hv_dmb_ish(); 38} 39 40#endif