Software APIs
dif_rv_timer_autogen.h File Reference

RV_TIMER Device Interface Functions More...

#include <stdbool.h>
#include <stdint.h>
#include "sw/device/lib/base/macros.h"
#include "sw/device/lib/base/mmio.h"
#include "sw/device/lib/dif/dif_base.h"
#include "hw/top/dt/rv_timer.h"

Go to the source code of this file.

Data Structures

struct  dif_rv_timer
 A handle to rv_timer. More...
 

Macros

#define kDifRvTimerIrqTimerExpiredHart0Timer0   kDtRvTimerIrqTimerExpiredHart0Timer0
 A rv_timer interrupt request type.
 

Typedefs

typedef struct dif_rv_timer dif_rv_timer_t
 A handle to rv_timer.
 
typedef enum dif_rv_timer_alert dif_rv_timer_alert_t
 A rv_timer alert type.
 
typedef dt_rv_timer_irq_t dif_rv_timer_irq_t
 
typedef uint32_t dif_rv_timer_irq_state_snapshot_t
 A snapshot of the state of the interrupts for this IP.
 
typedef uint32_t dif_rv_timer_irq_enable_snapshot_t
 A snapshot of the enablement state of the interrupts for this IP.
 

Enumerations

enum  dif_rv_timer_alert { kDifRvTimerAlertFatalFault = 0 }
 A rv_timer alert type. More...
 

Functions

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init (mmio_region_t base_addr, dif_rv_timer_t *rv_timer)
 Creates a new handle for a(n) rv_timer peripheral.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init_from_dt (dt_rv_timer_t dt, dif_rv_timer_t *rv_timer)
 Creates a new handle for a(n) rv_timer peripheral.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_get_dt (const dif_rv_timer_t *rv_timer, dt_rv_timer_t *dt)
 Get the DT handle from this DIF.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_alert_force (const dif_rv_timer_t *rv_timer, dif_rv_timer_alert_t alert)
 Forces a particular alert, causing it to be escalated as if the hardware had raised it.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_type (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t, dif_irq_type_t *type)
 Returns the type of a given interrupt (i.e., event or status) for this IP.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_state (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_state_snapshot_t *snapshot)
 Returns the state of all interrupts (i.e., pending or not) for this IP.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_is_pending (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t, bool *is_pending)
 Returns whether a particular interrupt is currently pending.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_state (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_state_snapshot_t snapshot)
 Acknowledges all interrupts that were pending at the time of the state snapshot.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id)
 Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t)
 Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_force (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t, const bool val)
 Forces a particular interrupt, causing it to be serviced as if hardware had asserted it.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_enabled (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t, dif_toggle_t *state)
 Checks whether a particular interrupt is currently enabled or disabled.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_set_enabled (const dif_rv_timer_t *rv_timer, dif_rv_timer_irq_t, dif_toggle_t state)
 Sets whether a particular interrupt is currently enabled or disabled.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_disable_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id, dif_rv_timer_irq_enable_snapshot_t *snapshot)
 Disables all interrupts, optionally snapshotting all enable states for later restoration.
 
OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_restore_all (const dif_rv_timer_t *rv_timer, uint32_t hart_id, const dif_rv_timer_irq_enable_snapshot_t *snapshot)
 Restores interrupts from the given (enable) snapshot.
 

Detailed Description

RV_TIMER Device Interface Functions

Definition in file dif_rv_timer_autogen.h.


Data Structure Documentation

◆ dif_rv_timer

struct dif_rv_timer

A handle to rv_timer.

This type should be treated as opaque by users.

Definition at line 37 of file dif_rv_timer_autogen.h.

Data Fields
mmio_region_t base_addr The base address for the rv_timer hardware registers.
dt_rv_timer_t dt The instance, set to kDtRvTimerCount if not initialized through dif_rv_timer_init_from_dt.

Macro Definition Documentation

◆ kDifRvTimerIrqTimerExpiredHart0Timer0

#define kDifRvTimerIrqTimerExpiredHart0Timer0   kDtRvTimerIrqTimerExpiredHart0Timer0

A rv_timer interrupt request type.

DEPRECATED Use dt_rv_timer_irq_t instead. This enumeration exists solely for the transition to dt-based interrupt numbers and will be removed in the future.

The following are defines to keep the types consistent with DT. Raised if hart0's timer0 expired (mtimecmp >= mtime)

Definition at line 134 of file dif_rv_timer_autogen.h.

Typedef Documentation

◆ dif_rv_timer_irq_enable_snapshot_t

A snapshot of the enablement state of the interrupts for this IP.

This is an opaque type, to be used with the dif_rv_timer_irq_disable_all() and dif_rv_timer_irq_restore_all() functions.

Definition at line 249 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_irq_state_snapshot_t

A snapshot of the state of the interrupts for this IP.

This is an opaque type, to be used with the dif_rv_timer_irq_get_state() and dif_rv_timer_irq_acknowledge_state() functions.

Definition at line 142 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_irq_t

typedef dt_rv_timer_irq_t dif_rv_timer_irq_t

Definition at line 120 of file dif_rv_timer_autogen.h.

◆ dif_rv_timer_t

typedef struct dif_rv_timer dif_rv_timer_t

A handle to rv_timer.

This type should be treated as opaque by users.

Enumeration Type Documentation

◆ dif_rv_timer_alert

A rv_timer alert type.

Enumerator
kDifRvTimerAlertFatalFault 

This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected inside the RV_TIMER unit.

Definition at line 98 of file dif_rv_timer_autogen.h.

Function Documentation

◆ dif_rv_timer_alert_force()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_alert_force ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_alert_t alert )

Forces a particular alert, causing it to be escalated as if the hardware had raised it.

Parameters
rv_timerA rv_timer handle.
alertThe alert to force.
Returns
The result of the operation.

Definition at line 70 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_get_dt()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_get_dt ( const dif_rv_timer_t * rv_timer,
dt_rv_timer_t * dt )

Get the DT handle from this DIF.

If this DIF was initialized by dif_rv_timer_init_from_dt(dt, ..) then this function will return dt. Otherwise it will return an error.

Parameters
rv_timerA rv_timer handle.
[out]dtDT handle.
Returns
kDifBadArg if the DIF has no DT information, kDifOk otherwise.

Definition at line 60 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_init()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init ( mmio_region_t base_addr,
dif_rv_timer_t * rv_timer )

Creates a new handle for a(n) rv_timer peripheral.

This function does not actuate the hardware.

Parameters
base_addrThe MMIO base address of the rv_timer peripheral.
[out]rv_timerOut param for the initialized handle.
Returns
The result of the operation.

DEPRECATED This function exists solely for the transition to dt-based DIFs and will be removed in the future.

Definition at line 33 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_init_from_dt()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_init_from_dt ( dt_rv_timer_t dt,
dif_rv_timer_t * rv_timer )

Creates a new handle for a(n) rv_timer peripheral.

This function does not actuate the hardware.

Parameters
dtThe devicetable description of the device.
[out]rv_timerOut param for the initialized handle.
Returns
The result of the operation.

Definition at line 47 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq )

Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
Returns
The result of the operation.

Definition at line 290 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_all ( const dif_rv_timer_t * rv_timer,
uint32_t hart_id )

Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced.

Parameters
rv_timerA rv_timer handle.
Returns
The result of the operation.

Definition at line 264 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_acknowledge_state()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_acknowledge_state ( const dif_rv_timer_t * rv_timer,
uint32_t hart_id,
dif_rv_timer_irq_state_snapshot_t snapshot )

Acknowledges all interrupts that were pending at the time of the state snapshot.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
snapshotInterrupt state snapshot.
Returns
The result of the operation.

Definition at line 209 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_disable_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_disable_all ( const dif_rv_timer_t * rv_timer,
uint32_t hart_id,
dif_rv_timer_irq_enable_snapshot_t * snapshot )

Disables all interrupts, optionally snapshotting all enable states for later restoration.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
[out]snapshotOut-param for the snapshot; may be NULL.
Returns
The result of the operation.

Definition at line 422 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_force()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_force ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq,
const bool val )

Forces a particular interrupt, causing it to be serviced as if hardware had asserted it.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
valValue to be set.
Returns
The result of the operation.

Definition at line 321 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_enabled()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_enabled ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq,
dif_toggle_t * state )

Checks whether a particular interrupt is currently enabled or disabled.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]stateOut-param toggle state of the interrupt.
Returns
The result of the operation.

Definition at line 352 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_state()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_state ( const dif_rv_timer_t * rv_timer,
uint32_t hart_id,
dif_rv_timer_irq_state_snapshot_t * snapshot )

Returns the state of all interrupts (i.e., pending or not) for this IP.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
[out]snapshotOut-param for interrupt state snapshot.
Returns
The result of the operation.

Definition at line 185 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_get_type()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_get_type ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq,
dif_irq_type_t * type )

Returns the type of a given interrupt (i.e., event or status) for this IP.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]typeOut-param for the interrupt type.
Returns
The result of the operation.

Definition at line 166 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_is_pending()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_is_pending ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq,
bool * is_pending )

Returns whether a particular interrupt is currently pending.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
[out]is_pendingOut-param for whether the interrupt is pending.
Returns
The result of the operation.

Definition at line 233 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_restore_all()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_restore_all ( const dif_rv_timer_t * rv_timer,
uint32_t hart_id,
const dif_rv_timer_irq_enable_snapshot_t * snapshot )

Restores interrupts from the given (enable) snapshot.

Parameters
rv_timerA rv_timer handle.
hart_idThe hart to manipulate.
snapshotA snapshot to restore from.
Returns
The result of the operation.

Definition at line 462 of file dif_rv_timer_autogen.c.

◆ dif_rv_timer_irq_set_enabled()

OT_WARN_UNUSED_RESULT dif_result_t dif_rv_timer_irq_set_enabled ( const dif_rv_timer_t * rv_timer,
dif_rv_timer_irq_t irq,
dif_toggle_t state )

Sets whether a particular interrupt is currently enabled or disabled.

Parameters
rv_timerA rv_timer handle.
irqAn interrupt request.
stateThe new toggle state for the interrupt.
Returns
The result of the operation.

Definition at line 385 of file dif_rv_timer_autogen.c.