Changeset View
Changeset View
Standalone View
Standalone View
head/sys/powerpc/booke/booke_machdep.c
Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Lines | |||||
extern void *int_fixed_interval_timer; | extern void *int_fixed_interval_timer; | ||||
extern void *int_watchdog; | extern void *int_watchdog; | ||||
extern void *int_data_tlb_error; | extern void *int_data_tlb_error; | ||||
extern void *int_inst_tlb_error; | extern void *int_inst_tlb_error; | ||||
extern void *int_debug; | extern void *int_debug; | ||||
extern void *int_debug_ed; | extern void *int_debug_ed; | ||||
extern void *int_vec; | extern void *int_vec; | ||||
extern void *int_vecast; | extern void *int_vecast; | ||||
#ifdef __SPE__ | |||||
extern void *int_spe_fpdata; | |||||
extern void *int_spe_fpround; | |||||
#endif | |||||
#ifdef HWPMC_HOOKS | #ifdef HWPMC_HOOKS | ||||
extern void *int_performance_counter; | extern void *int_performance_counter; | ||||
#endif | #endif | ||||
#define SET_TRAP(ivor, handler) \ | #define SET_TRAP(ivor, handler) \ | ||||
KASSERT(((uintptr_t)(&handler) & ~0xffffUL) == \ | KASSERT(((uintptr_t)(&handler) & ~0xffffUL) == \ | ||||
((uintptr_t)(&interrupt_vector_base) & ~0xffffUL), \ | ((uintptr_t)(&interrupt_vector_base) & ~0xffffUL), \ | ||||
("Handler " #handler " too far from interrupt vector base")); \ | ("Handler " #handler " too far from interrupt vector base")); \ | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | #endif | ||||
case FSL_E500mc: | case FSL_E500mc: | ||||
case FSL_E5500: | case FSL_E5500: | ||||
SET_TRAP(SPR_IVOR7, int_fpu); | SET_TRAP(SPR_IVOR7, int_fpu); | ||||
SET_TRAP(SPR_IVOR15, int_debug_ed); | SET_TRAP(SPR_IVOR15, int_debug_ed); | ||||
break; | break; | ||||
case FSL_E500v1: | case FSL_E500v1: | ||||
case FSL_E500v2: | case FSL_E500v2: | ||||
SET_TRAP(SPR_IVOR32, int_vec); | SET_TRAP(SPR_IVOR32, int_vec); | ||||
#ifdef __SPE__ | |||||
SET_TRAP(SPR_IVOR33, int_spe_fpdata); | |||||
SET_TRAP(SPR_IVOR34, int_spe_fpround); | |||||
#endif | |||||
break; | break; | ||||
} | } | ||||
#ifdef __powerpc64__ | #ifdef __powerpc64__ | ||||
/* Set 64-bit interrupt mode. */ | /* Set 64-bit interrupt mode. */ | ||||
mtspr(SPR_EPCR, mfspr(SPR_EPCR) | EPCR_ICM); | mtspr(SPR_EPCR, mfspr(SPR_EPCR) | EPCR_ICM); | ||||
#endif | #endif | ||||
} | } | ||||
▲ Show 20 Lines • Show All 178 Lines • Show Last 20 Lines |