RTEMS 6.3
Loading...
Searching...
No Matches
irq.c File Reference

Interrupt implementation. More...

#include <sys/param.h>
#include <sys/bitset.h>
#include <rtems.h>
#include <libcpu/powerpc-utility.h>
#include <asm/epapr_hcalls.h>
#include <bsp.h>
#include <bsp/irq-generic.h>
#include <bsp/vectors.h>
#include <bsp/utility.h>
#include <bsp/qoriq.h>
#include <rtems/score/processormaskimpl.h>

Macros

#define SPURIOUS   0xffff
#define VPR_MSK   BSP_BBIT32(0)
#define VPR_A   BSP_BBIT32(1)
#define VPR_P   BSP_BBIT32(8)
#define VPR_S   BSP_BBIT32(9)
#define VPR_PRIORITY(val)
#define VPR_PRIORITY_GET(reg)
#define VPR_PRIORITY_SET(reg, val)
#define VPR_VECTOR(val)
#define VPR_VECTOR_GET(reg)
#define VPR_VECTOR_SET(reg, val)
#define GCR_RST   BSP_BBIT32(0)
#define GCR_M   BSP_BBIT32(2)
#define SRC_CFG_IDX(i)

Functions

rtems_status_code bsp_interrupt_get_priority (rtems_vector_number vector, uint32_t *priority)
 Gets the priority of the interrupt vector.
rtems_status_code bsp_interrupt_set_priority (rtems_vector_number vector, uint32_t priority)
 Sets the priority of the interrupt vector.
rtems_status_code qoriq_pic_set_sense_and_polarity (rtems_vector_number vector, qoriq_eirq_sense_and_polarity new_sense_and_polarity, qoriq_eirq_sense_and_polarity *old_sense_and_polarity)
 Change polarity and sense settings of external interrupts.
rtems_status_code bsp_interrupt_set_affinity (rtems_vector_number vector, const Processor_mask *affinity)
 Sets the processor affinity set of the interrupt vector.
rtems_status_code bsp_interrupt_get_affinity (rtems_vector_number vector, Processor_mask *affinity)
 Gets the processor affinity set of the interrupt vector.
rtems_status_code bsp_interrupt_get_attributes (rtems_vector_number vector, rtems_interrupt_attributes *attributes)
 Gets the attributes of the interrupt vector.
rtems_status_code bsp_interrupt_is_pending (rtems_vector_number vector, bool *pending)
 Checks if the interrupt is pending.
rtems_status_code bsp_interrupt_raise (rtems_vector_number vector)
 Causes the interrupt vector.
rtems_status_code bsp_interrupt_clear (rtems_vector_number vector)
 Clears the interrupt vector.
rtems_status_code bsp_interrupt_vector_is_enabled (rtems_vector_number vector, bool *enabled)
 Checks if the interrupt is enabled.
rtems_status_code bsp_interrupt_vector_enable (rtems_vector_number vector)
 Enables the interrupt vector.
rtems_status_code bsp_interrupt_vector_disable (rtems_vector_number vector)
 Disables the interrupt vector.
void bsp_interrupt_dispatch (uintptr_t exception_number)
void bsp_interrupt_facility_initialize (void)
 BSP specific initialization.
typedef __BITSET_DEFINE (pic_msi_bitset, QORIQ_IRQ_MSI_COUNT)
rtems_status_code qoriq_pic_msi_allocate (rtems_vector_number *vector)
rtems_status_code qoriq_pic_msi_free (rtems_vector_number vector)
rtems_status_code qoriq_pic_msi_map (rtems_vector_number vector, uint64_t *addr, uint32_t *data)

Detailed Description

Interrupt implementation.

Macro Definition Documentation

◆ SRC_CFG_IDX

#define SRC_CFG_IDX ( i)
Value:
((i) - QORIQ_IRQ_EXT_BASE)

◆ VPR_PRIORITY

#define VPR_PRIORITY ( val)
Value:
BSP_BFLD32(val, 12, 15)

◆ VPR_PRIORITY_GET

#define VPR_PRIORITY_GET ( reg)
Value:
BSP_BFLD32GET(reg, 12, 15)

◆ VPR_PRIORITY_SET

#define VPR_PRIORITY_SET ( reg,
val )
Value:
BSP_BFLD32SET(reg, val, 12, 15)

◆ VPR_VECTOR

#define VPR_VECTOR ( val)
Value:
BSP_BFLD32(val, 16, 31)

◆ VPR_VECTOR_GET

#define VPR_VECTOR_GET ( reg)
Value:
BSP_BFLD32GET(reg, 16, 31)

◆ VPR_VECTOR_SET

#define VPR_VECTOR_SET ( reg,
val )
Value:
BSP_BFLD32SET(reg, val, 16, 31)