mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 16:29:05 +00:00
powerpc/book3e-64: Add helper function to setup IVORs
Not all 64-bit Book-3E parts will have fixed IVORs so add a function that cpusetup code can call to setup the base IVORs (0..15) to match the fixed offsets. We need to 'or' part of interrupt_base_book3e into the IVORs since on parts that have them the IVPR doesn't extend as far down. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
6c188829d2
commit
4b98d9e713
@ -196,6 +196,10 @@ exc_##label##_book3e:
|
||||
#define TLB_MISS_STATS_SAVE_INFO
|
||||
#endif
|
||||
|
||||
#define SET_IVOR(vector_number, vector_offset) \
|
||||
li r3,vector_offset@l; \
|
||||
ori r3,r3,interrupt_base_book3e@l; \
|
||||
mtspr SPRN_IVOR##vector_number,r3;
|
||||
|
||||
#endif /* _ASM_POWERPC_EXCEPTION_64E_H */
|
||||
|
||||
|
@ -782,5 +782,24 @@ _STATIC(init_thread_book3e)
|
||||
|
||||
blr
|
||||
|
||||
_GLOBAL(__setup_base_ivors)
|
||||
SET_IVOR(0, 0x020) /* Critical Input */
|
||||
SET_IVOR(1, 0x000) /* Machine Check */
|
||||
SET_IVOR(2, 0x060) /* Data Storage */
|
||||
SET_IVOR(3, 0x080) /* Instruction Storage */
|
||||
SET_IVOR(4, 0x0a0) /* External Input */
|
||||
SET_IVOR(5, 0x0c0) /* Alignment */
|
||||
SET_IVOR(6, 0x0e0) /* Program */
|
||||
SET_IVOR(7, 0x100) /* FP Unavailable */
|
||||
SET_IVOR(8, 0x120) /* System Call */
|
||||
SET_IVOR(9, 0x140) /* Auxiliary Processor Unavailable */
|
||||
SET_IVOR(10, 0x160) /* Decrementer */
|
||||
SET_IVOR(11, 0x180) /* Fixed Interval Timer */
|
||||
SET_IVOR(12, 0x1a0) /* Watchdog Timer */
|
||||
SET_IVOR(13, 0x1c0) /* Data TLB Error */
|
||||
SET_IVOR(14, 0x1e0) /* Instruction TLB Error */
|
||||
SET_IVOR(15, 0x040) /* Debug */
|
||||
|
||||
sync
|
||||
|
||||
blr
|
||||
|
Loading…
x
Reference in New Issue
Block a user