RTEMS: bsps/powerpc/include/bsp/vectors.h File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Macros | Typedefs | Enumerations | Functions | Variables
vectors.h File Reference
Board Support Packages » PowerPC » Shared » PowerPC Exceptions | Board Support Packages » PowerPC » Shared » PowerPC Exceptions » PowerPC Exception Frame

PowerPC Exceptions API. More...

`#include <bspopts.h>`
`#include <rtems/score/cpuimpl.h>`
`#include <libcpu/powerpc-utility.h>`

Go to the source code of this file.

## Macros
#define | ASM_RESET_VECTOR 0x01
#define | ASM_MACH_VECTOR 0x02
#define | ASM_PROT_VECTOR 0x03
#define | ASM_ISI_VECTOR 0x04
#define | ASM_EXT_VECTOR 0x05
#define | ASM_ALIGN_VECTOR 0x06
#define | ASM_PROG_VECTOR 0x07
#define | ASM_FLOAT_VECTOR 0x08
#define | ASM_DEC_VECTOR 0x09
#define | ASM_SYS_VECTOR 0x0C
#define | ASM_TRACE_VECTOR 0x0D
#define | ASM_PPC405_APU_UNAVAIL_VECTOR ASM_60X_VEC_ASSIST_VECTOR
#define | ASM_8XX_FLOATASSIST_VECTOR 0x0E
#define | ASM_8XX_SOFTEMUL_VECTOR 0x10
#define | ASM_8XX_ITLBMISS_VECTOR 0x11
#define | ASM_8XX_DTLBMISS_VECTOR 0x12
#define | ASM_8XX_ITLBERROR_VECTOR 0x13
#define | ASM_8XX_DTLBERROR_VECTOR 0x14
#define | ASM_8XX_DBREAK_VECTOR 0x1C
#define | ASM_8XX_IBREAK_VECTOR 0x1D
#define | ASM_8XX_PERIFBREAK_VECTOR 0x1E
#define | ASM_8XX_DEVPORT_VECTOR 0x1F
#define | ASM_5XX_FLOATASSIST_VECTOR 0x0E
#define | ASM_5XX_SOFTEMUL_VECTOR 0x10
#define | ASM_5XX_IPROT_VECTOR 0x13
#define | ASM_5XX_DPROT_VECTOR 0x14
#define | ASM_5XX_DBREAK_VECTOR 0x1C
#define | ASM_5XX_IBREAK_VECTOR 0x1D
#define | ASM_5XX_MEBREAK_VECTOR 0x1E
#define | ASM_5XX_NMEBREAK_VECTOR 0x1F
#define | ASM_60X_VEC_VECTOR 0x0A
#define | ASM_60X_PERFMON_VECTOR 0x0F
#define | ASM_60X_IMISS_VECTOR 0x10
#define | ASM_60X_DLMISS_VECTOR 0x11
#define | ASM_60X_DSMISS_VECTOR 0x12
#define | ASM_60X_ADDR_VECTOR 0x13
#define | ASM_60X_SYSMGMT_VECTOR 0x14
#define | ASM_60X_VEC_ASSIST_VECTOR 0x16
#define | ASM_60X_ITM_VECTOR 0x17
#define | ASM_BOOKE_CRIT_VECTOR 0x01
#define | ASM_BOOKE_DEC_VECTOR 0x10
#define | ASM_BOOKE_ITLBMISS_VECTOR 0x11
#define | ASM_BOOKE_DTLBMISS_VECTOR 0x12
#define | ASM_BOOKE_FIT_VECTOR 0x13
#define | ASM_BOOKE_WDOG_VECTOR 0x14
#define | ASM_BOOKE_APU_VECTOR 0x18
#define | ASM_BOOKE_DEBUG_VECTOR ASM_TRACE_VECTOR
#define | ASM_E500_SPE_UNAVAILABLE_VECTOR ASM_60X_VEC_VECTOR
#define | ASM_E500_EMB_FP_DATA_VECTOR 0x19
#define | ASM_E500_EMB_FP_ROUND_VECTOR 0x1A
#define | ASM_E500_PERFMON_VECTOR ASM_60X_PERFMON_VECTOR
#define | ASM_E300_CRIT_VECTOR 0x0A
#define | ASM_E300_PERFMON_VECTOR ASM_60X_PERFMON_VECTOR
#define | ASM_E300_IMISS_VECTOR ASM_60X_IMISS_VECTOR /* Special case: Shadowed GPRs */
#define | ASM_E300_DLMISS_VECTOR ASM_60X_DLMISS_VECTOR /* Special case: Shadowed GPRs */
#define | ASM_E300_DSMISS_VECTOR ASM_60X_DSMISS_VECTOR /* Special case: Shadowed GPRs */
#define | ASM_E300_ADDR_VECTOR ASM_60X_ADDR_VECTOR
#define | ASM_E300_SYSMGMT_VECTOR ASM_60X_SYSMGMT_VECTOR
#define | LAST_VALID_EXC 0x1F
#define | ASM_60X_VEC_VECTOR_OFFSET 0xf20
#define | ASM_PPC405_FIT_VECTOR_OFFSET 0x1010
#define | ASM_PPC405_WDOG_VECTOR_OFFSET 0x1020
#define | ASM_PPC405_TRACE_VECTOR_OFFSET 0x2000
#define | LINK_REGISTER_CALLEE_UPDATE_ROOM 4
#define | EXC_GENERIC_SIZE (PPC_EXC_FRAME_SIZE + PPC_STACK_RED_ZONE_SIZE)
#define | PPC_EXC_INTERRUPT_FRAME_SIZE CPU_INTERRUPT_FRAME_SIZE
#define | EXC_VEC_SIZE (0)
#define | EXCEPTION_FRAME_END (EXC_GENERIC_SIZE + EXC_VEC_SIZE)

## Typedefs
typedef CPU_Exception_frame | BSP_Exception_frame
typedef void(* | exception_handler_t) (BSP_Exception_frame *)
| Global exception handler type.
typedef uint8_t | ppc_exc_categories[LAST_VALID_EXC+1]
| Categorie set type.
typedef int(* | ppc_exc_handler_t) (BSP_Exception_frame *f, unsigned vector)
| High-level exception handler type.
typedef exception_handler_t | cpuExcHandlerType

## Enumerations
enum | ppc_exc_category { PPC_EXC_INVALID = 0 , PPC_EXC_ASYNC = 1 , PPC_EXC_CLASSIC = 2 , PPC_EXC_CLASSIC_ASYNC = PPC_EXC_CLASSIC | PPC_EXC_ASYNC , PPC_EXC_405_CRITICAL = 4 , PPC_EXC_405_CRITICAL_ASYNC = PPC_EXC_405_CRITICAL | PPC_EXC_ASYNC , PPC_EXC_BOOKE_CRITICAL = 6 , PPC_EXC_BOOKE_CRITICAL_ASYNC = PPC_EXC_BOOKE_CRITICAL | PPC_EXC_ASYNC , PPC_EXC_E500_MACHCHK = 8 , PPC_EXC_E500_MACHCHK_ASYNC = PPC_EXC_E500_MACHCHK | PPC_EXC_ASYNC , PPC_EXC_NAKED = 10 }
| Exception categories. More...

## Functions
void | C_exception_handler (BSP_Exception_frame *excPtr)
| Default global exception handler.
void | BSP_printStackTrace (const BSP_Exception_frame *excPtr)
void * | ppc_exc_vector_address (unsigned vector, void *vector_base)
| Returns the entry address of the vector.
const ppc_exc_categories * | ppc_exc_categories_for_cpu (ppc_cpu_id_t cpu)
| Returns the category set for a CPU of type cpu, or `NULL` if there is no category set available for this CPU.
ppc_exc_category | ppc_exc_category_for_vector (const ppc_exc_categories *categories, unsigned vector)
| Returns the category for the vector vector using the category set categories.
rtems_status_code | ppc_exc_make_prologue (unsigned vector, void *vector_base, ppc_exc_category category, uint32_t *prologue, size_t *prologue_size)
| Makes a minimal prologue for the vector vector with the category category.
void | ppc_exc_initialize_with_vector_base (uintptr_t interrupt_stack_begin, void *vector_base)
| Initializes the exception handling.
int | ppc_exc_handler_default (BSP_Exception_frame *f, unsigned int vector)
| Default high-level exception handler.
rtems_status_code | ppc_exc_set_handler (unsigned vector, ppc_exc_handler_t hdl)
| Set high-level exception handler.
ppc_exc_handler_t | ppc_exc_get_handler (unsigned vector)
| Returns the currently active high-level exception handler.
void | ppc_exc_wrapup (BSP_Exception_frame *f)
int | ppc_exc_alignment_handler (BSP_Exception_frame *frame, unsigned excNum)
| Standard aligment handler.

## Variables
uint32_t | ppc_exc_msr_bits
| Bits for MSR update.
uint32_t | ppc_exc_cache_wb_check
| Cache write back check flag.
ppc_exc_handler_t | ppc_exc_handler_table [LAST_VALID_EXC+1]
| High-level exception handler table.
exception_handler_t | globalExceptHdl
| Global exception handler.
uint32_t(* | ppc_exc_get_DAR )(void)
| Function for DAR access.

## Detailed Description

PowerPC Exceptions API.