XenevaOS
Loading...
Searching...
No Matches
aa64lowlevel.h
Go to the documentation of this file.
1
30#ifndef __AA64_LOW_LEVEL_H__
31#define __AA64_LOW_LEVEL_H__
32
33#include <aurora.h>
34
35/*
36 * _getCurrentEL -- returns the current exception level
37 */
39
40/*
41 * read_ttbr0_el1 -- reads the current exception's
42 * page mapping base address
43 */
45
46/*
47 * write_ttbr0_el1 -- writes current page mapping base
48 * address
49 */
51
53
55
56extern void write_both_ttbr(uint64_t physicalBase);
57
59
61
63
65
66/*
67 * read_sctlr_el1 -- reads current system control
68 * register of el1
69 */
71
72/*
73 * write_sctlr_el1 -- write current system control
74 * register of el1
75 * @param sctlr -- system control register value
76 */
78
79/*
80 * dsb_ish -- data syncronization barrier inner shareablity memory
81 * flush, which makes the previous memory access visible for
82 * multi core system
83 */
85
87
89
91
93
94/*
95 * isb_flush -- instruction synchronization flush, flush previous
96 * instruction set
97 */
99
101
103/*
104 * set_vbar_el1 -- set vector base address for el1
105 * @param addr -- address of the vector table
106 */
108
110
112
114
116
118
120
122
124
125extern void aa64_write_sysreg(const char* reg, uint64_t value);
126
127extern uint64_t aa64_read_sysreg(const char* reg);
128
129extern void enable_sre();
130
132
134
135extern void set_cntp_ctl_el0(uint64_t val);
136
137
138extern void setupTimerIRQ();
139extern void suspendTimer();
141
143
144extern void enable_irqs();
145
146extern void mask_irqs();
147
149
154
155extern void aa64_enter_user(uint64_t stack, uint64_t entryAddr);
156extern void aa64_svc_test();
157extern void aa64_utest();
158extern void dc_ivac(uint64_t address);
159extern void aa64_store_fp(uint8_t* address, uint64_t* fpcr, uint64_t* fpsr);
160extern void aa64_restore_fp(uint8_t* address, uint64_t* fpcr, uint64_t* fpsr);
161extern void data_cache_flush(uint64_t* address);
162extern void aa64_data_cache_clean_range(void* addr, size_t size);
163#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
void dc_ivac(uint64_t address)
uint32_t read_icc_iidr()
AU_EXTERN AU_EXPORT uint64_t read_mair_el1()
AU_EXTERN AU_EXPORT uint64_t get_cntpct_el0()
uint64_t read_daif()
void aa64_utest()
void set_cntp_ctl_el0(uint64_t val)
AU_EXTERN AU_EXPORT void write_ttbr0_el1(uint64_t *base)
uint32_t read_midr()
void setupTimerIRQ()
void set_cntp_cval_el0(uint64_t val)
void aa64_restore_fp(uint8_t *address, uint64_t *fpcr, uint64_t *fpsr)
uint64_t readTimerCtl()
AU_EXTERN AU_EXPORT void isb_flush()
AU_EXTERN AU_EXPORT uint64_t read_ttbr1_el1()
void aa64_store_fp(uint8_t *address, uint64_t *fpcr, uint64_t *fpsr)
AU_EXTERN AU_EXPORT void write_mair_el1(uint64_t mair)
AU_EXTERN AU_EXPORT void tlb_flush_vmalle1is()
AU_EXTERN AU_EXPORT void write_tcr_el1(uint64_t tcr)
AU_EXTERN AU_EXPORT uint64_t read_far_el1()
void aa64_data_cache_clean_range(void *addr, size_t size)
Definition aa64cpu.c:75
void data_cache_flush(uint64_t *address)
void aa64_svc_test()
void suspendTimer()
void aa64_write_sysreg(const char *reg, uint64_t value)
AU_EXTERN AU_EXPORT void set_kstack(uint64_t stack)
AU_EXTERN AU_EXPORT void tlb_flush(uint64_t virtul_addr)
uint64_t read_spsr_el1()
AU_EXTERN AU_EXPORT void dmb_sy()
AU_EXTERN AU_EXPORT uint64_t read_ttbr0_el1()
AU_EXTERN AU_EXPORT void set_vbar_el1(uint64_t addr)
void enable_irqs()
AU_EXTERN AU_EXPORT uint64_t read_sctlr_el1()
AU_EXTERN AU_EXPORT void dmb_ish()
uint64_t get_cntv_ctl_el0()
AU_EXTERN AU_EXPORT uint64_t read_tcr_el1()
AU_EXTERN AU_EXPORT uint64_t read_elr_el1()
uint64_t read_mpidr_el1()
AU_EXTERN AU_EXPORT uint64_t _getCurrentEL()
AU_EXTERN AU_EXPORT uint64_t get_cntfrq_el0()
AU_EXTERN AU_EXPORT uint64_t get_cpacr_el1()
void aa64_enter_user(uint64_t stack, uint64_t entryAddr)
uint64_t read_spsel()
AU_EXTERN AU_EXPORT void dsb_sy_barrier()
uint64_t aa64_read_sysreg(const char *reg)
AU_EXTERN AU_EXPORT void set_cpacr_el1(uint64_t val)
void mask_irqs()
AU_EXTERN AU_EXPORT uint64_t read_esr_el1()
AU_EXTERN AU_EXPORT void write_sctlr_el1(uint64_t sctlr)
uint32_t read_icc_iar1_el1()
void write_both_ttbr(uint64_t physicalBase)
AU_EXTERN AU_EXPORT void write_ttbr1_el1(uint64_t *base)
void enable_sre()
AU_EXTERN AU_EXPORT void dsb_ish()
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165