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.
This commit is contained in:
Till Straumann
2009-11-17 11:42:53 +00:00
parent 34f2d677d8
commit f70c86eaff
2 changed files with 16 additions and 3 deletions

View File

@@ -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> 2009-11-15 Till Straumann <strauman@slac.stanford.edu>
* shared/include/cpuIdent.c: Set 604 features + altivec if * shared/include/cpuIdent.c: Set 604 features + altivec if

View File

@@ -30,7 +30,7 @@
#include <bsp/vectors.h> #include <bsp/vectors.h>
#define PPC_BASIC_VECS \ #define PPC_BASIC_VECS_WO_SYS \
[ASM_RESET_VECTOR] = PPC_EXC_CLASSIC, \ [ASM_RESET_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_MACH_VECTOR] = PPC_EXC_CLASSIC, \ [ASM_MACH_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_PROT_VECTOR] = PPC_EXC_CLASSIC, \ [ASM_PROT_VECTOR] = PPC_EXC_CLASSIC, \
@@ -40,9 +40,12 @@
[ASM_PROG_VECTOR] = PPC_EXC_CLASSIC, \ [ASM_PROG_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_FLOAT_VECTOR] = PPC_EXC_CLASSIC, \ [ASM_FLOAT_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_DEC_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC, \ [ASM_DEC_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC, \
[ASM_SYS_VECTOR] = PPC_EXC_CLASSIC, \
[ASM_TRACE_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 = { static const ppc_exc_categories ppc_405_category_table = {
[ASM_BOOKE_CRIT_VECTOR] = PPC_EXC_405_CRITICAL | PPC_EXC_ASYNC, [ASM_BOOKE_CRIT_VECTOR] = PPC_EXC_405_CRITICAL | PPC_EXC_ASYNC,
[ASM_MACH_VECTOR] = PPC_EXC_405_CRITICAL, [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 = { 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_SYSMGMT_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC,
[ASM_60X_IMISS_VECTOR] = PPC_EXC_CLASSIC, [ASM_60X_IMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_DLMISS_VECTOR] = PPC_EXC_CLASSIC, [ASM_60X_DLMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_DSMISS_VECTOR] = PPC_EXC_CLASSIC, [ASM_60X_DSMISS_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_ADDR_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) const ppc_exc_categories *ppc_exc_categories_for_cpu(ppc_cpu_id_t cpu)