forked from Imagelibrary/rtems
bsps/powerpc: Add and use ppc_cpu_is_specific_e200
This commit is contained in:
@@ -105,7 +105,10 @@ static void ppc_exc_initialize_booke(void)
|
|||||||
/* Interupt vector prefix register */
|
/* Interupt vector prefix register */
|
||||||
MTIVPR(ppc_exc_vector_base);
|
MTIVPR(ppc_exc_vector_base);
|
||||||
|
|
||||||
if (ppc_cpu_is(PPC_e200z0) || ppc_cpu_is(PPC_e200z1)) {
|
if (
|
||||||
|
ppc_cpu_is_specific_e200(PPC_e200z0)
|
||||||
|
|| ppc_cpu_is_specific_e200(PPC_e200z1)
|
||||||
|
) {
|
||||||
/*
|
/*
|
||||||
* These cores have hard wired IVOR registers. An access will case a
|
* These cores have hard wired IVOR registers. An access will case a
|
||||||
* program exception.
|
* program exception.
|
||||||
@@ -135,7 +138,7 @@ static void ppc_exc_initialize_booke(void)
|
|||||||
MTIVOR(33, ppc_exc_vector_address(ASM_E500_EMB_FP_DATA_VECTOR));
|
MTIVOR(33, ppc_exc_vector_address(ASM_E500_EMB_FP_DATA_VECTOR));
|
||||||
MTIVOR(34, ppc_exc_vector_address(ASM_E500_EMB_FP_ROUND_VECTOR));
|
MTIVOR(34, ppc_exc_vector_address(ASM_E500_EMB_FP_ROUND_VECTOR));
|
||||||
}
|
}
|
||||||
if (ppc_cpu_is_e500()) {
|
if (ppc_cpu_is_specific_e200(PPC_e200z7) || ppc_cpu_is_e500()) {
|
||||||
MTIVOR(35, ppc_exc_vector_address(ASM_E500_PERFMON_VECTOR));
|
MTIVOR(35, ppc_exc_vector_address(ASM_E500_PERFMON_VECTOR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,6 +124,11 @@ static inline bool ppc_cpu_is_e200(void)
|
|||||||
return (ppc_cpu_current() & 0xff80) == 0x8100;
|
return (ppc_cpu_current() & 0xff80) == 0x8100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool ppc_cpu_is_specific_e200(ppc_cpu_id_t id)
|
||||||
|
{
|
||||||
|
return (ppc_cpu_current() & 0xfff0) == id;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool ppc_cpu_is_e300(void)
|
static inline bool ppc_cpu_is_e300(void)
|
||||||
{
|
{
|
||||||
return ppc_cpu_current() == PPC_e300c1
|
return ppc_cpu_current() == PPC_e300c1
|
||||||
|
|||||||
Reference in New Issue
Block a user