diff options
author | Paul Mackerras <paulus@samba.org> | 2006-12-11 00:31:42 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-12-11 00:31:42 -0500 |
commit | 973c1fabc70deb10f12a0eaab2f50c2263784257 (patch) | |
tree | 5b0ef183757049d241d0709f0cea9e370627b687 /arch | |
parent | 4383162c8f2fa75d916c4901b0d1ebcac7aeaf74 (diff) | |
parent | d10f73480b991da2aa1c000ed38eda3e4a987292 (diff) |
Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/Kconfig | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 5 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_32.S | 7 | ||||
-rw-r--r-- | arch/powerpc/kernel/of_device.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/ppc_ksyms.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/traps.c | 2 | ||||
-rw-r--r-- | arch/powerpc/sysdev/Makefile | 3 |
7 files changed, 16 insertions, 9 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index f524b3bf68c8..a35212b7346e 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -707,7 +707,7 @@ config FORCE_MAX_ZONEORDER | |||
707 | 707 | ||
708 | config MATH_EMULATION | 708 | config MATH_EMULATION |
709 | bool "Math emulation" | 709 | bool "Math emulation" |
710 | depends on 4xx || 8xx || E200 || E500 | 710 | depends on 4xx || 8xx || E200 || PPC_83xx || E500 |
711 | ---help--- | 711 | ---help--- |
712 | Some PowerPC chips designed for embedded applications do not have | 712 | Some PowerPC chips designed for embedded applications do not have |
713 | a floating-point unit and therefore do not implement the | 713 | a floating-point unit and therefore do not implement the |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 9d1614c3ce67..b742013bb9da 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -833,7 +833,7 @@ static struct cpu_spec cpu_specs[] = { | |||
833 | .pvr_mask = 0x7fff0000, | 833 | .pvr_mask = 0x7fff0000, |
834 | .pvr_value = 0x00840000, | 834 | .pvr_value = 0x00840000, |
835 | .cpu_name = "e300c2", | 835 | .cpu_name = "e300c2", |
836 | .cpu_features = CPU_FTRS_E300, | 836 | .cpu_features = CPU_FTRS_E300C2, |
837 | .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU, | 837 | .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU, |
838 | .icache_bsize = 32, | 838 | .icache_bsize = 32, |
839 | .dcache_bsize = 32, | 839 | .dcache_bsize = 32, |
@@ -1136,8 +1136,7 @@ static struct cpu_spec cpu_specs[] = { | |||
1136 | .pvr_mask = 0xff000fff, | 1136 | .pvr_mask = 0xff000fff, |
1137 | .pvr_value = 0x53000890, | 1137 | .pvr_value = 0x53000890, |
1138 | .cpu_name = "440SPe Rev. A", | 1138 | .cpu_name = "440SPe Rev. A", |
1139 | .cpu_features = CPU_FTR_SPLIT_ID_CACHE | | 1139 | .cpu_features = CPU_FTRS_44X, |
1140 | CPU_FTR_USE_TB, | ||
1141 | .cpu_user_features = COMMON_USER_BOOKE, | 1140 | .cpu_user_features = COMMON_USER_BOOKE, |
1142 | .icache_bsize = 32, | 1141 | .icache_bsize = 32, |
1143 | .dcache_bsize = 32, | 1142 | .dcache_bsize = 32, |
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index d88e182e40b3..9417cf5b4b7e 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -437,6 +437,13 @@ Alignment: | |||
437 | /* Floating-point unavailable */ | 437 | /* Floating-point unavailable */ |
438 | . = 0x800 | 438 | . = 0x800 |
439 | FPUnavailable: | 439 | FPUnavailable: |
440 | BEGIN_FTR_SECTION | ||
441 | /* | ||
442 | * Certain Freescale cores don't have a FPU and treat fp instructions | ||
443 | * as a FP Unavailable exception. Redirect to illegal/emulation handling. | ||
444 | */ | ||
445 | b ProgramCheck | ||
446 | END_FTR_SECTION_IFSET(CPU_FTR_FPU_UNAVAILABLE) | ||
440 | EXCEPTION_PROLOG | 447 | EXCEPTION_PROLOG |
441 | bne load_up_fpu /* if from user, just load it up */ | 448 | bne load_up_fpu /* if from user, just load it up */ |
442 | addi r3,r1,STACK_FRAME_OVERHEAD | 449 | addi r3,r1,STACK_FRAME_OVERHEAD |
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c index 8a06724e029e..e921514e655b 100644 --- a/arch/powerpc/kernel/of_device.c +++ b/arch/powerpc/kernel/of_device.c | |||
@@ -109,9 +109,7 @@ int of_device_register(struct of_device *ofdev) | |||
109 | if (rc) | 109 | if (rc) |
110 | return rc; | 110 | return rc; |
111 | 111 | ||
112 | device_create_file(&ofdev->dev, &dev_attr_devspec); | 112 | return device_create_file(&ofdev->dev, &dev_attr_devspec); |
113 | |||
114 | return 0; | ||
115 | } | 113 | } |
116 | 114 | ||
117 | void of_device_unregister(struct of_device *ofdev) | 115 | void of_device_unregister(struct of_device *ofdev) |
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c index 9179f0739ea2..95776b6af4e2 100644 --- a/arch/powerpc/kernel/ppc_ksyms.c +++ b/arch/powerpc/kernel/ppc_ksyms.c | |||
@@ -208,7 +208,7 @@ EXPORT_SYMBOL(mmu_hash_lock); /* For MOL */ | |||
208 | extern long *intercept_table; | 208 | extern long *intercept_table; |
209 | EXPORT_SYMBOL(intercept_table); | 209 | EXPORT_SYMBOL(intercept_table); |
210 | #endif /* CONFIG_PPC_STD_MMU_32 */ | 210 | #endif /* CONFIG_PPC_STD_MMU_32 */ |
211 | #if defined(CONFIG_40x) || defined(CONFIG_BOOKE) | 211 | #ifdef CONFIG_PPC_DCR_NATIVE |
212 | EXPORT_SYMBOL(__mtdcr); | 212 | EXPORT_SYMBOL(__mtdcr); |
213 | EXPORT_SYMBOL(__mfdcr); | 213 | EXPORT_SYMBOL(__mfdcr); |
214 | #endif | 214 | #endif |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 0d4e203fa7a0..fde820e52d03 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -782,6 +782,8 @@ void __kprobes program_check_exception(struct pt_regs *regs) | |||
782 | unsigned int reason = get_reason(regs); | 782 | unsigned int reason = get_reason(regs); |
783 | extern int do_mathemu(struct pt_regs *regs); | 783 | extern int do_mathemu(struct pt_regs *regs); |
784 | 784 | ||
785 | /* We can now get here via a FP Unavailable exception if the core | ||
786 | * has no FPU, in that case no reason flags will be set */ | ||
785 | #ifdef CONFIG_MATH_EMULATION | 787 | #ifdef CONFIG_MATH_EMULATION |
786 | /* (reason & REASON_ILLEGAL) would be the obvious thing here, | 788 | /* (reason & REASON_ILLEGAL) would be the obvious thing here, |
787 | * but there seems to be a hardware bug on the 405GP (RevD) | 789 | * but there seems to be a hardware bug on the 405GP (RevD) |
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index 6cc34597a620..04d4917eb303 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -5,7 +5,8 @@ endif | |||
5 | obj-$(CONFIG_MPIC) += mpic.o | 5 | obj-$(CONFIG_MPIC) += mpic.o |
6 | obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o | 6 | obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o |
7 | obj-$(CONFIG_PPC_MPC106) += grackle.o | 7 | obj-$(CONFIG_PPC_MPC106) += grackle.o |
8 | obj-$(CONFIG_PPC_DCR) += dcr.o dcr-low.o | 8 | obj-$(CONFIG_PPC_DCR) += dcr.o |
9 | obj-$(CONFIG_PPC_DCR_NATIVE) += dcr-low.o | ||
9 | obj-$(CONFIG_U3_DART) += dart_iommu.o | 10 | obj-$(CONFIG_U3_DART) += dart_iommu.o |
10 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | 11 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o |
11 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o | 12 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o |