RTEMS 6.3
Loading...
Searching...
No Matches
RISC-V AMBA Driver Handler

AMBA Plag & Play Bus Driver Macros. More...

Files

file  bsps/riscv/griscv/include/amba.h

Macros

#define GRLIB_IO_AREA   0xfff00000
#define GRLIB_CONF_AREA   0xff000
#define GRLIB_AHB_SLAVE_CONF_AREA   (1 << 11)
#define GRLIB_AHB_CONF_WORDS   8
#define GRLIB_APB_CONF_WORDS   2
#define GRLIB_AHB_MASTERS   64
#define GRLIB_AHB_SLAVES   64
#define GRLIB_APB_SLAVES   16
#define GRLIB_CLOCK_INDEX   0
#define GRLIB_COUNTER_GPTIMER_INDEX   GRLIB_CLOCK_INDEX
#define GRLIB_GPTIMER_0_FREQUENCY_SET_BY_BOOT_LOADER   1000000
#define GRLIB_IRQMPSTATUS_CPUNR   28
#define GRLIB_IRQCTRL_ACQUIRE(_lock_context)
#define GRLIB_IRQCTRL_RELEASE(_lock_context)
#define GRLIB_Cpu_Unmask_interrupt(_source, _cpu)
#define GRLIB_Cpu_Mask_interrupt(_source, _cpu)
#define GRLIB_Enable_interrupt_broadcast(_source)
#define GRLIB_Disable_interrupt_broadcast(_source)
#define BSP_Cpu_Is_interrupt_masked(_source, _cpu)

Functions

void gptimer_initialize (void)
void irqmp_initialize (void)

Variables

uint32_t GRLIB_Cpu_Index
const unsigned char GRLIB_mp_irq
volatile struct irqmp_regs * GRLIB_IrqCtrl_Regs
struct ambapp_dev * GRLIB_IrqCtrl_Adev
int GRLIB_IrqCtrl_EIrq
volatile struct gptimer_regs * GRLIB_Timer_Regs
struct ambapp_dev * GRLIB_Timer_Adev
rtems_interrupt_lock GRLIB_IrqCtrl_Lock

Detailed Description

AMBA Plag & Play Bus Driver Macros.

Macro Definition Documentation

◆ BSP_Cpu_Is_interrupt_masked

#define BSP_Cpu_Is_interrupt_masked ( _source,
_cpu )
Value:
(!(GRLIB_IrqCtrl_Regs->mask[_cpu] & (1U << (_source))))

◆ GRLIB_Cpu_Mask_interrupt

#define GRLIB_Cpu_Mask_interrupt ( _source,
_cpu )
Value:
do { \
GRLIB_IRQCTRL_ACQUIRE( &_lock_context ); \
GRLIB_IrqCtrl_Regs->mask[_cpu] &= ~(1U << (_source)); \
GRLIB_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)
ISR_lock_Context rtems_interrupt_lock_context
This structure provides an ISR lock context for acquire and release pairs.
Definition intr.h:559

◆ GRLIB_Cpu_Unmask_interrupt

#define GRLIB_Cpu_Unmask_interrupt ( _source,
_cpu )
Value:
do { \
GRLIB_IRQCTRL_ACQUIRE( &_lock_context ); \
GRLIB_IrqCtrl_Regs->mask[_cpu] |= (1U << (_source)); \
GRLIB_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ GRLIB_Disable_interrupt_broadcast

#define GRLIB_Disable_interrupt_broadcast ( _source)
Value:
do { \
uint32_t _mask = 1U << ( _source ); \
GRLIB_IRQCTRL_ACQUIRE( &_lock_context ); \
GRLIB_IrqCtrl_Regs->bcast &= ~_mask; \
GRLIB_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ GRLIB_Enable_interrupt_broadcast

#define GRLIB_Enable_interrupt_broadcast ( _source)
Value:
do { \
uint32_t _mask = 1U << ( _source ); \
GRLIB_IRQCTRL_ACQUIRE( &_lock_context ); \
GRLIB_IrqCtrl_Regs->bcast |= _mask; \
GRLIB_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ GRLIB_IRQCTRL_ACQUIRE

#define GRLIB_IRQCTRL_ACQUIRE ( _lock_context)
Value:
rtems_interrupt_lock_acquire( &GRLIB_IrqCtrl_Lock, _lock_context )
#define rtems_interrupt_lock_acquire(_lock, _lock_context)
Acquires the ISR lock.
Definition intr.h:666

◆ GRLIB_IRQCTRL_RELEASE

#define GRLIB_IRQCTRL_RELEASE ( _lock_context)
Value:
rtems_interrupt_lock_release( &GRLIB_IrqCtrl_Lock, _lock_context )
#define rtems_interrupt_lock_release(_lock, _lock_context)
Releases the ISR lock.
Definition intr.h:709