diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2006-06-19 20:24:08 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2006-06-19 20:24:08 +0000 |
commit | 261a1b27d1f55fbb216c5ea79bc26991a566be64 (patch) | |
tree | cb4adfbc0c7a479a2c58207bce61743d6d664c97 /c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h | |
parent | Only set/access the _BSP_vme_bridge_irq variable on BSPs that (diff) | |
download | rtems-261a1b27d1f55fbb216c5ea79bc26991a566be64.tar.bz2 |
Added altivec exception. Unfortunately, this doesn't fit
the normal scheme of vector = exception # << 8. So we picked
an unused vector number (currently 0xa) where we map the special
vector 0xf20 (altivec).
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h | 75 |
1 files changed, 43 insertions, 32 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h index 3153f47cfa..5d84944101 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h +++ b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h @@ -30,44 +30,55 @@ * Exception Vectors as defined in the MCP750 manual */ -#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_PERFMON_VECTOR 0x0F -#define ASM_IMISS_VECTOR 0x10 -#define ASM_DLMISS_VECTOR 0x11 -#define ASM_DSMISS_VECTOR 0x12 -#define ASM_ADDR_VECTOR 0x13 -#define ASM_SYSMGMT_VECTOR 0x14 -#define ASM_ITM_VECTOR 0x17 +#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 +/* Bummer: Altivec unavailable doesn't fit into this scheme... (0xf20). + * We'd like to avoid reserved vectors but OTOH we don't want to use + * just an available high number because tables (and copies) are of + * size LAST_VALID_EXC. + * So until there is a CPU that uses 0xA we'll just use that :-( + */ +#define ASM_VEC_VECTOR 0x0A +#define ASM_SYS_VECTOR 0x0C +#define ASM_TRACE_VECTOR 0x0D +#define ASM_PERFMON_VECTOR 0x0F +#define ASM_IMISS_VECTOR 0x10 +#define ASM_DLMISS_VECTOR 0x11 +#define ASM_DSMISS_VECTOR 0x12 +#define ASM_ADDR_VECTOR 0x13 +#define ASM_SYSMGMT_VECTOR 0x14 +#define ASM_VEC_ASSIST_VECTOR 0x16 +#define ASM_ITM_VECTOR 0x17 #define LAST_VALID_EXC ASM_ITM_VECTOR /* * Vector offsets as defined in the MCP750 manual */ -#define ASM_RESET_VECTOR_OFFSET (ASM_RESET_VECTOR << 8) -#define ASM_MACH_VECTOR_OFFSET (ASM_MACH_VECTOR << 8) -#define ASM_PROT_VECTOR_OFFSET (ASM_PROT_VECTOR << 8) -#define ASM_ISI_VECTOR_OFFSET (ASM_ISI_VECTOR << 8) -#define ASM_EXT_VECTOR_OFFSET (ASM_EXT_VECTOR << 8) -#define ASM_ALIGN_VECTOR_OFFSET (ASM_ALIGN_VECTOR << 8) -#define ASM_PROG_VECTOR_OFFSET (ASM_PROG_VECTOR << 8) -#define ASM_FLOAT_VECTOR_OFFSET (ASM_FLOAT_VECTOR << 8) -#define ASM_DEC_VECTOR_OFFSET (ASM_DEC_VECTOR << 8) -#define ASM_SYS_VECTOR_OFFSET (ASM_SYS_VECTOR << 8) -#define ASM_TRACE_VECTOR_OFFSET (ASM_TRACE_VECTOR << 8) -#define ASM_ADDR_VECTOR_OFFSET (ASM_ADDR_VECTOR << 8) -#define ASM_SYSMGMT_VECTOR_OFFSET (ASM_SYSMGMT_VECTOR << 8) -#define ASM_ITM_VECTOR_OFFSET (ASM_ITM_VECTOR << 8) +#define ASM_RESET_VECTOR_OFFSET (ASM_RESET_VECTOR << 8) +#define ASM_MACH_VECTOR_OFFSET (ASM_MACH_VECTOR << 8) +#define ASM_PROT_VECTOR_OFFSET (ASM_PROT_VECTOR << 8) +#define ASM_ISI_VECTOR_OFFSET (ASM_ISI_VECTOR << 8) +#define ASM_EXT_VECTOR_OFFSET (ASM_EXT_VECTOR << 8) +#define ASM_ALIGN_VECTOR_OFFSET (ASM_ALIGN_VECTOR << 8) +#define ASM_PROG_VECTOR_OFFSET (ASM_PROG_VECTOR << 8) +#define ASM_FLOAT_VECTOR_OFFSET (ASM_FLOAT_VECTOR << 8) +#define ASM_DEC_VECTOR_OFFSET (ASM_DEC_VECTOR << 8) +#define ASM_SYS_VECTOR_OFFSET (ASM_SYS_VECTOR << 8) +#define ASM_TRACE_VECTOR_OFFSET (ASM_TRACE_VECTOR << 8) +#define ASM_PERFMON_VECTOR_OFFSET (ASM_PERFMON_VECTOR << 8) +#define ASM_VEC_VECTOR_OFFSET (0xf20) +#define ASM_ADDR_VECTOR_OFFSET (ASM_ADDR_VECTOR << 8) +#define ASM_SYSMGMT_VECTOR_OFFSET (ASM_SYSMGMT_VECTOR << 8) +#define ASM_VEC_ASSIST_VECTOR_OFFSET (ASM_VEC_ASSIST_VECTOR << 8) +#define ASM_ITM_VECTOR_OFFSET (ASM_ITM_VECTOR << 8) #ifndef ASM |