summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-11-17 11:42:53 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-11-17 11:42:53 +0000
commitf70c86eaff09f81798382a81619ed7773ca577f8 (patch)
tree706c12e4b26d5f19f6075b898a5d33060a6f100b /c
parent2009-11-17 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-f70c86eaff09f81798382a81619ed7773ca577f8.tar.bz2
2009-11-17 Till Straumann <strauman@slac.stanford.edu>
* new-exceptions/bspsupport/ppc_exc_categories.c: PSIM *must*not* hook SYS vector which is used e.g., for firmware I/O. Added entries for AltiVec on PSIM.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libcpu/powerpc/ChangeLog8
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c11
2 files changed, 16 insertions, 3 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog
index a32e4abd61..793c0c254f 100644
--- a/c/src/lib/libcpu/powerpc/ChangeLog
+++ b/c/src/lib/libcpu/powerpc/ChangeLog
@@ -1,3 +1,11 @@
+2009-11-17 Till Straumann <strauman@slac.stanford.edu>
+
+ * new-exceptions/bspsupport/ppc_exc_categories.c:
+ PSIM *must*not* hook SYS vector which is used e.g.,
+ for firmware I/O.
+
+ Added entries for AltiVec on PSIM.
+
2009-11-15 Till Straumann <strauman@slac.stanford.edu>
* shared/include/cpuIdent.c: Set 604 features + altivec if
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c
index 2856957639..a331e58350 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c
@@ -30,7 +30,7 @@
#include <bsp/vectors.h>
-#define PPC_BASIC_VECS \
+#define PPC_BASIC_VECS_WO_SYS \
[ASM_RESET_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_MACH_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_PROT_VECTOR] = PPC_EXC_CLASSIC, \
@@ -40,9 +40,12 @@
[ASM_PROG_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_FLOAT_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_DEC_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC, \
- [ASM_SYS_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_TRACE_VECTOR] = PPC_EXC_CLASSIC
+#define PPC_BASIC_VECS \
+ PPC_BASIC_VECS_WO_SYS, \
+ [ASM_SYS_VECTOR] = PPC_EXC_CLASSIC
+
static const ppc_exc_categories ppc_405_category_table = {
[ASM_BOOKE_CRIT_VECTOR] = PPC_EXC_405_CRITICAL | PPC_EXC_ASYNC,
[ASM_MACH_VECTOR] = PPC_EXC_405_CRITICAL,
@@ -221,13 +224,15 @@ static const ppc_exc_categories e500_category_table = {
};
static const ppc_exc_categories psim_category_table = {
- PPC_BASIC_VECS,
+ PPC_BASIC_VECS_WO_SYS,
[ASM_60X_SYSMGMT_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC,
[ASM_60X_IMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_DLMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_DSMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_ADDR_VECTOR] = PPC_EXC_CLASSIC,
+ [ASM_60X_VEC_VECTOR] = PPC_EXC_CLASSIC,
+ [ASM_60X_VEC_ASSIST_VECTOR] = PPC_EXC_CLASSIC,
};
const ppc_exc_categories *ppc_exc_categories_for_cpu(ppc_cpu_id_t cpu)