RTEMS 6.3
Loading...
Searching...
No Matches
leon.h File Reference

LEON3 BSP data types and macros. More...

#include <rtems.h>
#include <amba.h>
#include <grlib/io.h>
#include <bsp/leon3.h>

Go to the source code of this file.

Macros

#define LEON_INTERRUPT_EXTERNAL_1   5
#define LEON_TRAP_TYPE(_source)
#define LEON_TRAP_SOURCE(_trap)
#define LEON_INT_TRAP(_trap)
#define LEON_MEMORY_CONFIGURATION_PROM_SIZE_MASK   0x0003C000
#define LEON_MEMORY_CONFIGURATION_RAM_SIZE_MASK   0x00001E00
#define LEON_REG_TIMER_CONTROL_EN   0x00000001
#define LEON_REG_TIMER_CONTROL_RL   0x00000002
#define LEON_REG_TIMER_CONTROL_LD   0x00000004
#define LEON_REG_UART_CONTROL_RTD   0x000000FF
#define LEON_REG_UART_STATUS_DR   0x00000001
#define LEON_REG_UART_STATUS_TSE   0x00000002
#define LEON_REG_UART_STATUS_THE   0x00000004
#define LEON_REG_UART_STATUS_BR   0x00000008
#define LEON_REG_UART_STATUS_OE   0x00000010
#define LEON_REG_UART_STATUS_PE   0x00000020
#define LEON_REG_UART_STATUS_FE   0x00000040
#define LEON_REG_UART_STATUS_TF   0x00000200
#define LEON_REG_UART_STATUS_ERR   0x00000078
#define LEON_REG_UART_CTRL_RE   0x00000001
#define LEON_REG_UART_CTRL_TE   0x00000002
#define LEON_REG_UART_CTRL_RI   0x00000004
#define LEON_REG_UART_CTRL_TI   0x00000008
#define LEON_REG_UART_CTRL_PS   0x00000010
#define LEON_REG_UART_CTRL_PE   0x00000020
#define LEON_REG_UART_CTRL_FL   0x00000040
#define LEON_REG_UART_CTRL_LB   0x00000080
#define LEON_REG_UART_CTRL_DB   0x00000800
#define LEON_REG_UART_CTRL_SI   0x00004000
#define LEON_REG_UART_CTRL_FA   0x80000000
#define LEON_REG_UART_CTRL_FA_BIT   31
#define LEON3_IRQMPSTATUS_CPUNR   28
#define LEON3_IRQMPSTATUS_BROADCAST   27
#define LEON_Clear_interrupt(_source)
#define LEON_Force_interrupt(_source)
#define LEON_Enable_interrupt_broadcast(_source)
#define LEON_Disable_interrupt_broadcast(_source)
#define LEON_Is_interrupt_pending(_source)
#define LEON_Cpu_Is_interrupt_masked(_source, _cpu)
#define LEON_Cpu_Mask_interrupt(_source, _cpu)
#define LEON_Cpu_Unmask_interrupt(_source, _cpu)
#define LEON_Cpu_Disable_interrupt(_source, _previous, _cpu)
#define LEON_Cpu_Restore_interrupt(_source, _previous, _cpu)
#define LEON_Is_interrupt_masked(_source)
#define LEON_Mask_interrupt(_source)
#define LEON_Unmask_interrupt(_source)
#define LEON_Disable_interrupt(_source, _previous)
#define LEON_Restore_interrupt(_source, _previous)
#define BSP_Clear_interrupt(_source)
#define BSP_Force_interrupt(_source)
#define BSP_Is_interrupt_pending(_source)
#define BSP_Is_interrupt_masked(_source)
#define BSP_Unmask_interrupt(_source)
#define BSP_Mask_interrupt(_source)
#define BSP_Disable_interrupt(_source, _previous)
#define BSP_Restore_interrupt(_source, _previous)
#define BSP_Cpu_Is_interrupt_masked(_source, _cpu)
#define BSP_Cpu_Unmask_interrupt(_source, _cpu)
#define BSP_Cpu_Mask_interrupt(_source, _cpu)
#define BSP_Cpu_Disable_interrupt(_source, _previous, _cpu)
#define BSP_Cpu_Restore_interrupt(_source, _previous, _cpu)
#define LEON_REG_TIMER_COUNTER_RELOAD_AT_ZERO   0x00000002
#define LEON_REG_TIMER_COUNTER_STOP_AT_ZERO   0x00000000
#define LEON_REG_TIMER_COUNTER_LOAD_COUNTER   0x00000004
#define LEON_REG_TIMER_COUNTER_ENABLE_COUNTING   0x00000001
#define LEON_REG_TIMER_COUNTER_DISABLE_COUNTING   0x00000000
#define LEON_REG_TIMER_COUNTER_RELOAD_MASK   0x00000002
#define LEON_REG_TIMER_COUNTER_ENABLE_MASK   0x00000001
#define LEON_REG_TIMER_COUNTER_DEFINED_MASK   0x00000003
#define LEON_REG_TIMER_COUNTER_CURRENT_MODE_MASK   0x00000003

Variables

int syscon_uart_index
int leon3_debug_uart_index

Detailed Description

LEON3 BSP data types and macros.

Macro Definition Documentation

◆ BSP_Clear_interrupt

#define BSP_Clear_interrupt ( _source)
Value:
LEON_Clear_interrupt(_source)

◆ BSP_Cpu_Disable_interrupt

#define BSP_Cpu_Disable_interrupt ( _source,
_previous,
_cpu )
Value:
LEON_Cpu_Disable_interrupt(_source, _prev, _cpu)

◆ BSP_Cpu_Is_interrupt_masked

#define BSP_Cpu_Is_interrupt_masked ( _source,
_cpu )
Value:
LEON_Cpu_Is_interrupt_masked(_source, _cpu)

◆ BSP_Cpu_Mask_interrupt

#define BSP_Cpu_Mask_interrupt ( _source,
_cpu )
Value:
LEON_Cpu_Mask_interrupt(_source, _cpu)

◆ BSP_Cpu_Restore_interrupt

#define BSP_Cpu_Restore_interrupt ( _source,
_previous,
_cpu )
Value:
LEON_Cpu_Restore_interrupt(_source, _previous, _cpu)

◆ BSP_Cpu_Unmask_interrupt

#define BSP_Cpu_Unmask_interrupt ( _source,
_cpu )
Value:
LEON_Cpu_Unmask_interrupt(_source, _cpu)

◆ BSP_Disable_interrupt

#define BSP_Disable_interrupt ( _source,
_previous )
Value:
LEON_Disable_interrupt(_source, _prev)

◆ BSP_Force_interrupt

#define BSP_Force_interrupt ( _source)
Value:
LEON_Force_interrupt(_source)

◆ BSP_Is_interrupt_masked

#define BSP_Is_interrupt_masked ( _source)
Value:
LEON_Is_interrupt_masked(_source)

◆ BSP_Is_interrupt_pending

#define BSP_Is_interrupt_pending ( _source)
Value:
LEON_Is_interrupt_pending(_source)

◆ BSP_Mask_interrupt

#define BSP_Mask_interrupt ( _source)
Value:
LEON_Mask_interrupt(_source)

◆ BSP_Restore_interrupt

#define BSP_Restore_interrupt ( _source,
_previous )
Value:
LEON_Restore_interrupt(_source, _previous)

◆ BSP_Unmask_interrupt

#define BSP_Unmask_interrupt ( _source)
Value:
LEON_Unmask_interrupt(_source)

◆ LEON_Clear_interrupt

#define LEON_Clear_interrupt ( _source)
Value:
grlib_store_32(&LEON3_IrqCtrl_Regs->iclear, 1U << (_source))
irqamp * LEON3_IrqCtrl_Regs
This pointer provides the IRQ(A)MP register block address.
Definition amba.c:121
uint32_t iclear
See Interrupt clear register (ICLEAR).
Definition irqamp-regs.h:799

◆ LEON_Cpu_Disable_interrupt

#define LEON_Cpu_Disable_interrupt ( _source,
_previous,
_cpu )
Value:
do { \
uint32_t _mask = 1U << (_source); \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
(_previous) = grlib_load_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ]); \
grlib_store_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ], (_previous) & ~_mask); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
(_previous) &= _mask; \
} 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
uint32_t pimask[16]
See Processor n interrupt mask register (PIMASK).
Definition irqamp-regs.h:836

◆ LEON_Cpu_Is_interrupt_masked

#define LEON_Cpu_Is_interrupt_masked ( _source,
_cpu )
Value:
(!(grlib_load_32(&LEON3_IrqCtrl_Regs->pimask[_cpu]) & (1U << (_source))))

◆ LEON_Cpu_Mask_interrupt

#define LEON_Cpu_Mask_interrupt ( _source,
_cpu )
Value:
do { \
uint32_t _pimask; \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
_pimask = grlib_load_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ]); \
_pimask &= ~(1U << (_source)); \
grlib_store_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ], _pimask); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ LEON_Cpu_Restore_interrupt

#define LEON_Cpu_Restore_interrupt ( _source,
_previous,
_cpu )
Value:
do { \
uint32_t _pimask; \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
_pimask = grlib_load_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ]); \
_pimask &= ~(1U << (_source)); \
_pimask |= _previous; \
grlib_store_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ], _pimask); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ LEON_Cpu_Unmask_interrupt

#define LEON_Cpu_Unmask_interrupt ( _source,
_cpu )
Value:
do { \
uint32_t _pimask; \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
_pimask = grlib_load_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ]); \
_pimask |= 1U << (_source); \
grlib_store_32(&LEON3_IrqCtrl_Regs->pimask[_cpu ], _pimask); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ LEON_Disable_interrupt

#define LEON_Disable_interrupt ( _source,
_previous )
Value:
LEON_Cpu_Disable_interrupt(_source, _previous, _LEON3_Get_current_processor())

◆ LEON_Disable_interrupt_broadcast

#define LEON_Disable_interrupt_broadcast ( _source)
Value:
do { \
uint32_t _mask = 1U << ( _source ); \
uint32_t _brdcst; \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
_brdcst = grlib_load_32(&LEON3_IrqCtrl_Regs->brdcst); \
_brdcst &= ~_mask; \
grlib_store_32(&LEON3_IrqCtrl_Regs->brdcst, _brdcst); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)
uint32_t brdcst
See Broadcast register (BRDCST).
Definition irqamp-regs.h:809

◆ LEON_Enable_interrupt_broadcast

#define LEON_Enable_interrupt_broadcast ( _source)
Value:
do { \
uint32_t _mask = 1U << ( _source ); \
uint32_t _brdcst; \
LEON3_IRQCTRL_ACQUIRE( &_lock_context ); \
_brdcst = grlib_load_32(&LEON3_IrqCtrl_Regs->brdcst); \
_brdcst |= _mask; \
grlib_store_32(&LEON3_IrqCtrl_Regs->brdcst, _brdcst); \
LEON3_IRQCTRL_RELEASE( &_lock_context ); \
} while (0)

◆ LEON_Force_interrupt

#define LEON_Force_interrupt ( _source)
Value:
grlib_store_32(&LEON3_IrqCtrl_Regs->iforce0, 1U << (_source))
uint32_t iforce0
See Interrupt force register for processor 0 (IFORCE0).
Definition irqamp-regs.h:794

◆ LEON_INT_TRAP

#define LEON_INT_TRAP ( _trap)
Value:
#define SPARC_IS_INTERRUPT_TRAP(_trap)
Checks if the real hardware vector number, synchronous trap number, or asynchronous trap number is an...
Definition sparc.h:243

◆ LEON_Is_interrupt_masked

#define LEON_Is_interrupt_masked ( _source)
Value:
LEON_Cpu_Is_interrupt_masked(_source, _LEON3_Get_current_processor())

◆ LEON_Is_interrupt_pending

#define LEON_Is_interrupt_pending ( _source)
Value:
(grlib_load_32(&LEON3_IrqCtrl_Regs->ipend) & (1U << (_source)))
uint32_t ipend
See Interrupt pending register (IPEND).
Definition irqamp-regs.h:789

◆ LEON_Mask_interrupt

#define LEON_Mask_interrupt ( _source)
Value:
LEON_Cpu_Mask_interrupt(_source, _LEON3_Get_current_processor())

◆ LEON_Restore_interrupt

#define LEON_Restore_interrupt ( _source,
_previous )
Value:
LEON_Cpu_Restore_interrupt(_source, _previous, _LEON3_Get_current_processor())

◆ LEON_TRAP_SOURCE

#define LEON_TRAP_SOURCE ( _trap)
Value:
#define SPARC_INTERRUPT_TRAP_TO_SOURCE(_trap)
Maps the interrupt trap number to the associated interrupt source number.
Definition sparc.h:261

◆ LEON_TRAP_TYPE

#define LEON_TRAP_TYPE ( _source)
Value:
#define SPARC_INTERRUPT_SOURCE_TO_TRAP(_source)
Maps the interrupt source number to the associated asynchronous trap number.
Definition sparc.h:273

◆ LEON_Unmask_interrupt

#define LEON_Unmask_interrupt ( _source)
Value:
LEON_Cpu_Unmask_interrupt(_source, _LEON3_Get_current_processor())