diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-23 01:11:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-23 01:11:30 -0400 |
commit | 45c091bb2d453ce4a8b06cf19872ec7a77fc4799 (patch) | |
tree | 06fb2e05518ebfba163f8424e028e7faf5672d66 /arch/powerpc/kernel/head_64.S | |
parent | d588fcbe5a7ba8bba2cebf7799ab2d573717a806 (diff) | |
parent | 2191fe3e39159e3375f4b7ec1420df149f154101 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (139 commits)
[POWERPC] re-enable OProfile for iSeries, using timer interrupt
[POWERPC] support ibm,extended-*-frequency properties
[POWERPC] Extra sanity check in EEH code
[POWERPC] Dont look for class-code in pci children
[POWERPC] Fix mdelay badness on shared processor partitions
[POWERPC] disable floating point exceptions for init
[POWERPC] Unify ppc syscall tables
[POWERPC] mpic: add support for serial mode interrupts
[POWERPC] pseries: Print PCI slot location code on failure
[POWERPC] spufs: one more fix for 64k pages
[POWERPC] spufs: fail spu_create with invalid flags
[POWERPC] spufs: clear class2 interrupt status before wakeup
[POWERPC] spufs: fix Makefile for "make clean"
[POWERPC] spufs: remove stop_code from struct spu
[POWERPC] spufs: fix spu irq affinity setting
[POWERPC] spufs: further abstract priv1 register access
[POWERPC] spufs: split the Cell BE support into generic and platform dependant parts
[POWERPC] spufs: dont try to access SPE channel 1 count
[POWERPC] spufs: use kzalloc in create_spu
[POWERPC] spufs: fix initial state of wbox file
...
Manually resolved conflicts in:
drivers/net/phy/Makefile
include/asm-powerpc/spu.h
Diffstat (limited to 'arch/powerpc/kernel/head_64.S')
-rw-r--r-- | arch/powerpc/kernel/head_64.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index b7d140430a41..831acbdf2592 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -316,6 +316,21 @@ label##_pSeries: \ | |||
316 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | 316 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ |
317 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) | 317 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) |
318 | 318 | ||
319 | #define HSTD_EXCEPTION_PSERIES(n, label) \ | ||
320 | . = n; \ | ||
321 | .globl label##_pSeries; \ | ||
322 | label##_pSeries: \ | ||
323 | HMT_MEDIUM; \ | ||
324 | mtspr SPRN_SPRG1,r20; /* save r20 */ \ | ||
325 | mfspr r20,SPRN_HSRR0; /* copy HSRR0 to SRR0 */ \ | ||
326 | mtspr SPRN_SRR0,r20; \ | ||
327 | mfspr r20,SPRN_HSRR1; /* copy HSRR0 to SRR0 */ \ | ||
328 | mtspr SPRN_SRR1,r20; \ | ||
329 | mfspr r20,SPRN_SPRG1; /* restore r20 */ \ | ||
330 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | ||
331 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) | ||
332 | |||
333 | |||
319 | #define STD_EXCEPTION_ISERIES(n, label, area) \ | 334 | #define STD_EXCEPTION_ISERIES(n, label, area) \ |
320 | .globl label##_iSeries; \ | 335 | .globl label##_iSeries; \ |
321 | label##_iSeries: \ | 336 | label##_iSeries: \ |
@@ -544,8 +559,17 @@ system_call_pSeries: | |||
544 | 559 | ||
545 | STD_EXCEPTION_PSERIES(0xf20, altivec_unavailable) | 560 | STD_EXCEPTION_PSERIES(0xf20, altivec_unavailable) |
546 | 561 | ||
562 | #ifdef CONFIG_CBE_RAS | ||
563 | HSTD_EXCEPTION_PSERIES(0x1200, cbe_system_error) | ||
564 | #endif /* CONFIG_CBE_RAS */ | ||
547 | STD_EXCEPTION_PSERIES(0x1300, instruction_breakpoint) | 565 | STD_EXCEPTION_PSERIES(0x1300, instruction_breakpoint) |
566 | #ifdef CONFIG_CBE_RAS | ||
567 | HSTD_EXCEPTION_PSERIES(0x1600, cbe_maintenance) | ||
568 | #endif /* CONFIG_CBE_RAS */ | ||
548 | STD_EXCEPTION_PSERIES(0x1700, altivec_assist) | 569 | STD_EXCEPTION_PSERIES(0x1700, altivec_assist) |
570 | #ifdef CONFIG_CBE_RAS | ||
571 | HSTD_EXCEPTION_PSERIES(0x1800, cbe_thermal) | ||
572 | #endif /* CONFIG_CBE_RAS */ | ||
549 | 573 | ||
550 | . = 0x3000 | 574 | . = 0x3000 |
551 | 575 | ||
@@ -827,6 +851,11 @@ machine_check_common: | |||
827 | #else | 851 | #else |
828 | STD_EXCEPTION_COMMON(0x1700, altivec_assist, .unknown_exception) | 852 | STD_EXCEPTION_COMMON(0x1700, altivec_assist, .unknown_exception) |
829 | #endif | 853 | #endif |
854 | #ifdef CONFIG_CBE_RAS | ||
855 | STD_EXCEPTION_COMMON(0x1200, cbe_system_error, .cbe_system_error_exception) | ||
856 | STD_EXCEPTION_COMMON(0x1600, cbe_maintenance, .cbe_maintenance_exception) | ||
857 | STD_EXCEPTION_COMMON(0x1800, cbe_thermal, .cbe_thermal_exception) | ||
858 | #endif /* CONFIG_CBE_RAS */ | ||
830 | 859 | ||
831 | /* | 860 | /* |
832 | * Here we have detected that the kernel stack pointer is bad. | 861 | * Here we have detected that the kernel stack pointer is bad. |