21#define CLINT ((clint_hwreg_t *)SYSTEM_CLINT_CTRL)
29 return CLINT->MTIME_LOW;
35 return CLINT->MTIME_HIGH;
41 return CLINT->MSIP[hart_id];
52 return (((
u64)hi) << 32) | lo;
66 u32 mTimePerUsec = hz/1000000;
74 CLINT->MSIP[hart_id] = enable;
78 return ((
double)(t1-t0)/(
double)SYSTEM_CLINT_HZ);
#define CLINT
Pointer to the CLINT hardware registers.
CLINT driver API definitions.
u32 clint_getTimeHigh()
Reads the high part of the current time.
void clint_setCmp(u64 cmp, u32 hart_id)
This function sets the compare value for the CLINT CMP register for a specific hardware thread.
u64 clint_getTime()
Reads the current time value from the CLINT TIME register.
double clint_timerSub(u64 t0, u64 t1)
Get the time difference between t0 and t1.
u32 clint_getTimeLow()
Reads the low part of the current time.
void clint_set_SoftInterrupt(clint_msip_t enable, u32 hart_id)
Sets the software interrupt state for a specific hart.
void clint_uDelay(u32 usec, u32 hz)
This function introduces a microsecond delay using the CLINT TIME register.
u32 clint_get_SoftInterrupt(u32 hart_id)
Obtain the current state of the software interrupt for a specific hart.
CLINT MTIMECMP hardware register map.
u32 MTIMECMP_LOW
Offset: 0x00, MTIMECMP Low */.
u32 MTIMECMP_HIGH
Offset: 0x04, MTIMECMP High */.