diff options
35 files changed, 78 insertions, 15 deletions
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 47a8eb6e7e3..e1db51e6f23 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -10,7 +10,7 @@ CFLAGS_prom_init.o += -fPIC | |||
10 | CFLAGS_btext.o += -fPIC | 10 | CFLAGS_btext.o += -fPIC |
11 | endif | 11 | endif |
12 | 12 | ||
13 | obj-y := semaphore.o traps.o | 13 | obj-y := semaphore.o |
14 | obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o | 14 | obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o |
15 | obj-$(CONFIG_POWER4) += idle_power4.o | 15 | obj-$(CONFIG_POWER4) += idle_power4.o |
16 | 16 | ||
@@ -28,7 +28,7 @@ extra-$(CONFIG_PPC_FPU) += fpu.o | |||
28 | extra-y += vmlinux.lds | 28 | extra-y += vmlinux.lds |
29 | 29 | ||
30 | obj-y += process.o init_task.o \ | 30 | obj-y += process.o init_task.o \ |
31 | prom.o systbl.o | 31 | prom.o systbl.o traps.o |
32 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o | 32 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o |
33 | obj-$(CONFIG_PPC64) += setup_64.o misc_64.o | 33 | obj-$(CONFIG_PPC64) += setup_64.o misc_64.o |
34 | obj-$(CONFIG_PPC_OF) += prom_init.o of_device.o | 34 | obj-$(CONFIG_PPC_OF) += prom_init.o of_device.o |
@@ -39,4 +39,12 @@ ifeq ($(CONFIG_PPC_ISERIES),y) | |||
39 | $(obj)/head_64.o: $(obj)/lparmap.s | 39 | $(obj)/head_64.o: $(obj)/lparmap.s |
40 | AFLAGS_head_64.o += -I$(obj) | 40 | AFLAGS_head_64.o += -I$(obj) |
41 | endif | 41 | endif |
42 | |||
43 | else | ||
44 | # stuff used from here for ARCH=ppc or ARCH=ppc64 | ||
45 | obj-$(CONFIG_PPC64) += traps.o | ||
46 | |||
47 | fpux-$(CONFIG_PPC32) += fpu.o | ||
48 | extra-$(CONFIG_PPC_FPU) += $(fpux-y) | ||
49 | |||
42 | endif | 50 | endif |
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index ddf0c81e195..b0d6a7cd85e 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -252,6 +252,7 @@ int main(void) | |||
252 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); | 252 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); |
253 | DEFINE(pbe_next, offsetof(struct pbe, next)); | 253 | DEFINE(pbe_next, offsetof(struct pbe, next)); |
254 | 254 | ||
255 | DEFINE(TASK_SIZE, TASK_SIZE); | ||
255 | DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); | 256 | DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); |
256 | #else /* CONFIG_PPC64 */ | 257 | #else /* CONFIG_PPC64 */ |
257 | /* systemcfg offsets for use by vdso */ | 258 | /* systemcfg offsets for use by vdso */ |
diff --git a/arch/powerpc/platforms/4xx/Makefile b/arch/powerpc/platforms/4xx/Makefile new file mode 100644 index 00000000000..79ff6b1e887 --- /dev/null +++ b/arch/powerpc/platforms/4xx/Makefile | |||
@@ -0,0 +1 @@ | |||
# empty makefile so make clean works \ No newline at end of file | |||
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile new file mode 100644 index 00000000000..6407197ffd8 --- /dev/null +++ b/arch/powerpc/platforms/85xx/Makefile | |||
@@ -0,0 +1 @@ | |||
# empty makefile so make clean works | |||
diff --git a/arch/ppc/Makefile b/arch/ppc/Makefile index 90c750227ed..aedc9ae13b2 100644 --- a/arch/ppc/Makefile +++ b/arch/ppc/Makefile | |||
@@ -57,9 +57,10 @@ head-$(CONFIG_FSL_BOOKE) := arch/ppc/kernel/head_fsl_booke.o | |||
57 | 57 | ||
58 | head-$(CONFIG_6xx) += arch/ppc/kernel/idle_6xx.o | 58 | head-$(CONFIG_6xx) += arch/ppc/kernel/idle_6xx.o |
59 | head-$(CONFIG_POWER4) += arch/ppc/kernel/idle_power4.o | 59 | head-$(CONFIG_POWER4) += arch/ppc/kernel/idle_power4.o |
60 | head-$(CONFIG_PPC_FPU) += arch/ppc/kernel/fpu.o | 60 | head-$(CONFIG_PPC_FPU) += arch/powerpc/kernel/fpu.o |
61 | 61 | ||
62 | core-y += arch/ppc/kernel/ arch/ppc/platforms/ \ | 62 | core-y += arch/ppc/kernel/ arch/powerpc/kernel/ \ |
63 | arch/ppc/platforms/ \ | ||
63 | arch/ppc/mm/ arch/ppc/lib/ arch/ppc/syslib/ | 64 | arch/ppc/mm/ arch/ppc/lib/ arch/ppc/syslib/ |
64 | core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/ | 65 | core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/ |
65 | core-$(CONFIG_83xx) += arch/ppc/platforms/83xx/ | 66 | core-$(CONFIG_83xx) += arch/ppc/platforms/83xx/ |
diff --git a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile index 74b30978619..59b6b62d112 100644 --- a/arch/ppc/kernel/Makefile +++ b/arch/ppc/kernel/Makefile | |||
@@ -10,12 +10,11 @@ extra-$(CONFIG_FSL_BOOKE) := head_fsl_booke.o | |||
10 | extra-$(CONFIG_8xx) := head_8xx.o | 10 | extra-$(CONFIG_8xx) := head_8xx.o |
11 | extra-$(CONFIG_6xx) += idle_6xx.o | 11 | extra-$(CONFIG_6xx) += idle_6xx.o |
12 | extra-$(CONFIG_POWER4) += idle_power4.o | 12 | extra-$(CONFIG_POWER4) += idle_power4.o |
13 | extra-$(CONFIG_PPC_FPU) += fpu.o | ||
14 | extra-y += vmlinux.lds | 13 | extra-y += vmlinux.lds |
15 | 14 | ||
16 | obj-y := entry.o traps.o irq.o idle.o time.o misc.o \ | 15 | obj-y := entry.o traps.o irq.o idle.o time.o misc.o \ |
17 | process.o signal.o ptrace.o align.o \ | 16 | process.o signal.o ptrace.o align.o \ |
18 | semaphore.o syscalls.o setup.o \ | 17 | syscalls.o setup.o \ |
19 | cputable.o ppc_htab.o perfmon.o | 18 | cputable.o ppc_htab.o perfmon.o |
20 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o | 19 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o |
21 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o | 20 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o |
@@ -26,7 +25,6 @@ obj-$(CONFIG_PCI) += pci.o | |||
26 | obj-$(CONFIG_KGDB) += ppc-stub.o | 25 | obj-$(CONFIG_KGDB) += ppc-stub.o |
27 | obj-$(CONFIG_SMP) += smp.o smp-tbsync.o | 26 | obj-$(CONFIG_SMP) += smp.o smp-tbsync.o |
28 | obj-$(CONFIG_TAU) += temp.o | 27 | obj-$(CONFIG_TAU) += temp.o |
29 | obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o | ||
30 | ifndef CONFIG_E200 | 28 | ifndef CONFIG_E200 |
31 | obj-$(CONFIG_FSL_BOOKE) += perfmon_fsl_booke.o | 29 | obj-$(CONFIG_FSL_BOOKE) += perfmon_fsl_booke.o |
32 | endif | 30 | endif |
@@ -37,9 +35,6 @@ obj-$(CONFIG_8xx) += softemu8xx.o | |||
37 | endif | 35 | endif |
38 | 36 | ||
39 | # These are here while we do the architecture merge | 37 | # These are here while we do the architecture merge |
40 | vecemu-y += ../../powerpc/kernel/vecemu.o | ||
41 | vector-y += ../../powerpc/kernel/vector.o | ||
42 | fpu-y += ../../powerpc/kernel/fpu.o | ||
43 | 38 | ||
44 | else | 39 | else |
45 | obj-y := irq.o idle.o time.o \ | 40 | obj-y := irq.o idle.o time.o \ |
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c index d9ad1d776d0..7972db1f657 100644 --- a/arch/ppc/kernel/asm-offsets.c +++ b/arch/ppc/kernel/asm-offsets.c | |||
@@ -141,6 +141,7 @@ main(void) | |||
141 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); | 141 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); |
142 | DEFINE(pbe_next, offsetof(struct pbe, next)); | 142 | DEFINE(pbe_next, offsetof(struct pbe, next)); |
143 | 143 | ||
144 | DEFINE(TASK_SIZE, TASK_SIZE); | ||
144 | DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); | 145 | DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); |
145 | return 0; | 146 | return 0; |
146 | } | 147 | } |
diff --git a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.S index 2c3a1d34e3c..5b43987a943 100644 --- a/arch/ppc/kernel/head.S +++ b/arch/ppc/kernel/head.S | |||
@@ -467,7 +467,7 @@ FPUnavailable: | |||
467 | EXCEPTION_PROLOG | 467 | EXCEPTION_PROLOG |
468 | bne load_up_fpu /* if from user, just load it up */ | 468 | bne load_up_fpu /* if from user, just load it up */ |
469 | addi r3,r1,STACK_FRAME_OVERHEAD | 469 | addi r3,r1,STACK_FRAME_OVERHEAD |
470 | EXC_XFER_EE_LITE(0x800, KernelFP) | 470 | EXC_XFER_EE_LITE(0x800, kernel_fp_unavailable_exception) |
471 | 471 | ||
472 | /* Decrementer */ | 472 | /* Decrementer */ |
473 | EXCEPTION(0x900, Decrementer, timer_interrupt, EXC_XFER_LITE) | 473 | EXCEPTION(0x900, Decrementer, timer_interrupt, EXC_XFER_LITE) |
diff --git a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c index 6600fd485b5..163276be7cc 100644 --- a/arch/ppc/kernel/pci.c +++ b/arch/ppc/kernel/pci.c | |||
@@ -1034,6 +1034,10 @@ static ssize_t pci_show_devspec(struct device *dev, struct device_attribute *att | |||
1034 | } | 1034 | } |
1035 | static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL); | 1035 | static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL); |
1036 | 1036 | ||
1037 | #else /* CONFIG_PPC_OF */ | ||
1038 | void pcibios_make_OF_bus_map(void) | ||
1039 | { | ||
1040 | } | ||
1037 | #endif /* CONFIG_PPC_OF */ | 1041 | #endif /* CONFIG_PPC_OF */ |
1038 | 1042 | ||
1039 | /* Add sysfs properties */ | 1043 | /* Add sysfs properties */ |
diff --git a/arch/ppc/kernel/process.c b/arch/ppc/kernel/process.c index 82de66e4db6..0870e555345 100644 --- a/arch/ppc/kernel/process.c +++ b/arch/ppc/kernel/process.c | |||
@@ -557,14 +557,16 @@ int sys_clone(unsigned long clone_flags, unsigned long usp, | |||
557 | return do_fork(clone_flags, usp, regs, 0, parent_tidp, child_tidp); | 557 | return do_fork(clone_flags, usp, regs, 0, parent_tidp, child_tidp); |
558 | } | 558 | } |
559 | 559 | ||
560 | int sys_fork(int p1, int p2, int p3, int p4, int p5, int p6, | 560 | int sys_fork(unsigned long p1, unsigned long p2, unsigned long p3, |
561 | unsigned long p4, unsigned long p5, unsigned long p6, | ||
561 | struct pt_regs *regs) | 562 | struct pt_regs *regs) |
562 | { | 563 | { |
563 | CHECK_FULL_REGS(regs); | 564 | CHECK_FULL_REGS(regs); |
564 | return do_fork(SIGCHLD, regs->gpr[1], regs, 0, NULL, NULL); | 565 | return do_fork(SIGCHLD, regs->gpr[1], regs, 0, NULL, NULL); |
565 | } | 566 | } |
566 | 567 | ||
567 | int sys_vfork(int p1, int p2, int p3, int p4, int p5, int p6, | 568 | int sys_vfork(unsigned long p1, unsigned long p2, unsigned long p3, |
569 | unsigned long p4, unsigned long p5, unsigned long p6, | ||
568 | struct pt_regs *regs) | 570 | struct pt_regs *regs) |
569 | { | 571 | { |
570 | CHECK_FULL_REGS(regs); | 572 | CHECK_FULL_REGS(regs); |
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index fae6335193e..6bcb85d2b7f 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c | |||
@@ -87,6 +87,9 @@ extern void chrp_init(unsigned long r3, unsigned long r4, | |||
87 | dev_t boot_dev; | 87 | dev_t boot_dev; |
88 | #endif /* CONFIG_PPC_MULTIPLATFORM */ | 88 | #endif /* CONFIG_PPC_MULTIPLATFORM */ |
89 | 89 | ||
90 | int have_of; | ||
91 | EXPORT_SYMBOL(have_of); | ||
92 | |||
90 | #ifdef __DO_IRQ_CANON | 93 | #ifdef __DO_IRQ_CANON |
91 | int ppc_do_canonicalize_irqs; | 94 | int ppc_do_canonicalize_irqs; |
92 | EXPORT_SYMBOL(ppc_do_canonicalize_irqs); | 95 | EXPORT_SYMBOL(ppc_do_canonicalize_irqs); |
@@ -420,6 +423,8 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
420 | } | 423 | } |
421 | #endif | 424 | #endif |
422 | 425 | ||
426 | have_of = 1; | ||
427 | |||
423 | /* prom_init has already been called from __start */ | 428 | /* prom_init has already been called from __start */ |
424 | if (boot_infos) | 429 | if (boot_infos) |
425 | relocate_nodes(); | 430 | relocate_nodes(); |
@@ -735,7 +740,7 @@ void __init setup_arch(char **cmdline_p) | |||
735 | #endif | 740 | #endif |
736 | 741 | ||
737 | #ifdef CONFIG_XMON | 742 | #ifdef CONFIG_XMON |
738 | xmon_map_scc(); | 743 | xmon_init(1); |
739 | if (strstr(cmd_line, "xmon")) | 744 | if (strstr(cmd_line, "xmon")) |
740 | xmon(NULL); | 745 | xmon(NULL); |
741 | #endif /* CONFIG_XMON */ | 746 | #endif /* CONFIG_XMON */ |
diff --git a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c index 26606aa33de..3145e9773db 100644 --- a/arch/ppc/kernel/traps.c +++ b/arch/ppc/kernel/traps.c | |||
@@ -44,6 +44,11 @@ | |||
44 | #include <asm/perfmon.h> | 44 | #include <asm/perfmon.h> |
45 | 45 | ||
46 | #ifdef CONFIG_XMON | 46 | #ifdef CONFIG_XMON |
47 | extern int xmon_bpt(struct pt_regs *regs); | ||
48 | extern int xmon_sstep(struct pt_regs *regs); | ||
49 | extern int xmon_iabr_match(struct pt_regs *regs); | ||
50 | extern int xmon_dabr_match(struct pt_regs *regs); | ||
51 | |||
47 | void (*debugger)(struct pt_regs *regs) = xmon; | 52 | void (*debugger)(struct pt_regs *regs) = xmon; |
48 | int (*debugger_bpt)(struct pt_regs *regs) = xmon_bpt; | 53 | int (*debugger_bpt)(struct pt_regs *regs) = xmon_bpt; |
49 | int (*debugger_sstep)(struct pt_regs *regs) = xmon_sstep; | 54 | int (*debugger_sstep)(struct pt_regs *regs) = xmon_sstep; |
@@ -814,6 +819,17 @@ void TAUException(struct pt_regs *regs) | |||
814 | } | 819 | } |
815 | #endif /* CONFIG_INT_TAU */ | 820 | #endif /* CONFIG_INT_TAU */ |
816 | 821 | ||
822 | /* | ||
823 | * FP unavailable trap from kernel - print a message, but let | ||
824 | * the task use FP in the kernel until it returns to user mode. | ||
825 | */ | ||
826 | void kernel_fp_unavailable_exception(struct pt_regs *regs) | ||
827 | { | ||
828 | regs->msr |= MSR_FP; | ||
829 | printk(KERN_ERR "floating point used in kernel (task=%p, pc=%lx)\n", | ||
830 | current, regs->nip); | ||
831 | } | ||
832 | |||
817 | void altivec_unavailable_exception(struct pt_regs *regs) | 833 | void altivec_unavailable_exception(struct pt_regs *regs) |
818 | { | 834 | { |
819 | static int kernel_altivec_count; | 835 | static int kernel_altivec_count; |
diff --git a/arch/ppc/platforms/chrp_smp.c b/arch/ppc/platforms/chrp_smp.c index dc62e320944..97e539557ec 100644 --- a/arch/ppc/platforms/chrp_smp.c +++ b/arch/ppc/platforms/chrp_smp.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/residual.h> | 31 | #include <asm/residual.h> |
32 | #include <asm/time.h> | 32 | #include <asm/time.h> |
33 | #include <asm/open_pic.h> | 33 | #include <asm/open_pic.h> |
34 | #include <asm/machdep.h> | ||
34 | 35 | ||
35 | extern unsigned long smp_chrp_cpu_nr; | 36 | extern unsigned long smp_chrp_cpu_nr; |
36 | 37 | ||
diff --git a/arch/ppc/platforms/ev64360.c b/arch/ppc/platforms/ev64360.c index 9811a8a52c2..53388a1c334 100644 --- a/arch/ppc/platforms/ev64360.c +++ b/arch/ppc/platforms/ev64360.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/bootinfo.h> | 35 | #include <asm/bootinfo.h> |
36 | #include <asm/ppcboot.h> | 36 | #include <asm/ppcboot.h> |
37 | #include <asm/mv64x60.h> | 37 | #include <asm/mv64x60.h> |
38 | #include <asm/machdep.h> | ||
38 | #include <platforms/ev64360.h> | 39 | #include <platforms/ev64360.h> |
39 | 40 | ||
40 | #define BOARD_VENDOR "Marvell" | 41 | #define BOARD_VENDOR "Marvell" |
diff --git a/arch/ppc/platforms/gemini_setup.c b/arch/ppc/platforms/gemini_setup.c index a8ed5c0a298..a2a09dc4b5e 100644 --- a/arch/ppc/platforms/gemini_setup.c +++ b/arch/ppc/platforms/gemini_setup.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/time.h> | 36 | #include <asm/time.h> |
37 | #include <asm/open_pic.h> | 37 | #include <asm/open_pic.h> |
38 | #include <asm/bootinfo.h> | 38 | #include <asm/bootinfo.h> |
39 | #include <asm/machdep.h> | ||
39 | 40 | ||
40 | void gemini_find_bridges(void); | 41 | void gemini_find_bridges(void); |
41 | static int gemini_get_clock_speed(void); | 42 | static int gemini_get_clock_speed(void); |
diff --git a/arch/ppc/platforms/katana.c b/arch/ppc/platforms/katana.c index 2b53afae0e9..3eb611e23f6 100644 --- a/arch/ppc/platforms/katana.c +++ b/arch/ppc/platforms/katana.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/ppcboot.h> | 42 | #include <asm/ppcboot.h> |
43 | #include <asm/mv64x60.h> | 43 | #include <asm/mv64x60.h> |
44 | #include <platforms/katana.h> | 44 | #include <platforms/katana.h> |
45 | #include <asm/machdep.h> | ||
45 | 46 | ||
46 | static struct mv64x60_handle bh; | 47 | static struct mv64x60_handle bh; |
47 | static katana_id_t katana_id; | 48 | static katana_id_t katana_id; |
diff --git a/arch/ppc/platforms/lite5200.c b/arch/ppc/platforms/lite5200.c index b604cf8b3ca..d44cc991179 100644 --- a/arch/ppc/platforms/lite5200.c +++ b/arch/ppc/platforms/lite5200.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/io.h> | 35 | #include <asm/io.h> |
36 | #include <asm/mpc52xx.h> | 36 | #include <asm/mpc52xx.h> |
37 | #include <asm/ppc_sys.h> | 37 | #include <asm/ppc_sys.h> |
38 | #include <asm/machdep.h> | ||
38 | 39 | ||
39 | #include <syslib/mpc52xx_pci.h> | 40 | #include <syslib/mpc52xx_pci.h> |
40 | 41 | ||
diff --git a/arch/ppc/platforms/pal4_setup.c b/arch/ppc/platforms/pal4_setup.c index 12446b93e38..f93a3f87193 100644 --- a/arch/ppc/platforms/pal4_setup.c +++ b/arch/ppc/platforms/pal4_setup.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/io.h> | 28 | #include <asm/io.h> |
29 | #include <asm/todc.h> | 29 | #include <asm/todc.h> |
30 | #include <asm/bootinfo.h> | 30 | #include <asm/bootinfo.h> |
31 | #include <asm/machdep.h> | ||
31 | 32 | ||
32 | #include <syslib/cpc700.h> | 33 | #include <syslib/cpc700.h> |
33 | 34 | ||
diff --git a/arch/ppc/platforms/pmac_pic.c b/arch/ppc/platforms/pmac_pic.c index 3349cfb624a..9f2d95ea856 100644 --- a/arch/ppc/platforms/pmac_pic.c +++ b/arch/ppc/platforms/pmac_pic.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/open_pic.h> | 35 | #include <asm/open_pic.h> |
36 | #include <asm/xmon.h> | 36 | #include <asm/xmon.h> |
37 | #include <asm/pmac_feature.h> | 37 | #include <asm/pmac_feature.h> |
38 | #include <asm/machdep.h> | ||
38 | 39 | ||
39 | #include "pmac_pic.h" | 40 | #include "pmac_pic.h" |
40 | 41 | ||
diff --git a/arch/ppc/syslib/gt64260_pic.c b/arch/ppc/syslib/gt64260_pic.c index 44aa8738545..f97b3a9abd1 100644 --- a/arch/ppc/syslib/gt64260_pic.c +++ b/arch/ppc/syslib/gt64260_pic.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/system.h> | 45 | #include <asm/system.h> |
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/mv64x60.h> | 47 | #include <asm/mv64x60.h> |
48 | #include <asm/machdep.h> | ||
48 | 49 | ||
49 | #define CPU_INTR_STR "gt64260 cpu interface error" | 50 | #define CPU_INTR_STR "gt64260 cpu interface error" |
50 | #define PCI0_INTR_STR "gt64260 pci 0 error" | 51 | #define PCI0_INTR_STR "gt64260 pci 0 error" |
diff --git a/arch/ppc/syslib/mpc52xx_pci.c b/arch/ppc/syslib/mpc52xx_pci.c index 59cf3e8bd1a..02edff8befd 100644 --- a/arch/ppc/syslib/mpc52xx_pci.c +++ b/arch/ppc/syslib/mpc52xx_pci.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include "mpc52xx_pci.h" | 21 | #include "mpc52xx_pci.h" |
22 | 22 | ||
23 | #include <asm/delay.h> | 23 | #include <asm/delay.h> |
24 | #include <asm/machdep.h> | ||
24 | 25 | ||
25 | 26 | ||
26 | static int | 27 | static int |
diff --git a/arch/ppc/syslib/mpc83xx_devices.c b/arch/ppc/syslib/mpc83xx_devices.c index 95b3b8a7f0b..dbf8acac507 100644 --- a/arch/ppc/syslib/mpc83xx_devices.c +++ b/arch/ppc/syslib/mpc83xx_devices.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <asm/mpc83xx.h> | 21 | #include <asm/mpc83xx.h> |
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <asm/ppc_sys.h> | 23 | #include <asm/ppc_sys.h> |
24 | #include <asm/machdep.h> | ||
24 | 25 | ||
25 | /* We use offsets for IORESOURCE_MEM since we do not know at compile time | 26 | /* We use offsets for IORESOURCE_MEM since we do not know at compile time |
26 | * what IMMRBAR is, will get fixed up by mach_mpc83xx_fixup | 27 | * what IMMRBAR is, will get fixed up by mach_mpc83xx_fixup |
diff --git a/arch/ppc/syslib/mv64360_pic.c b/arch/ppc/syslib/mv64360_pic.c index 8356da4678a..58b0aa813e8 100644 --- a/arch/ppc/syslib/mv64360_pic.c +++ b/arch/ppc/syslib/mv64360_pic.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <asm/system.h> | 48 | #include <asm/system.h> |
49 | #include <asm/irq.h> | 49 | #include <asm/irq.h> |
50 | #include <asm/mv64x60.h> | 50 | #include <asm/mv64x60.h> |
51 | #include <asm/machdep.h> | ||
51 | 52 | ||
52 | #ifdef CONFIG_IRQ_ALL_CPUS | 53 | #ifdef CONFIG_IRQ_ALL_CPUS |
53 | #error "The mv64360 does not support distribution of IRQs on all CPUs" | 54 | #error "The mv64360 does not support distribution of IRQs on all CPUs" |
diff --git a/arch/ppc/syslib/mv64x60_dbg.c b/arch/ppc/syslib/mv64x60_dbg.c index 2927c7adf5e..fa5b2e45e0c 100644 --- a/arch/ppc/syslib/mv64x60_dbg.c +++ b/arch/ppc/syslib/mv64x60_dbg.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
25 | #include <asm/delay.h> | 25 | #include <asm/delay.h> |
26 | #include <asm/mv64x60.h> | 26 | #include <asm/mv64x60.h> |
27 | #include <asm/machdep.h> | ||
27 | 28 | ||
28 | 29 | ||
29 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) | 30 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) |
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c index 53da58523e3..df0f76dc0ce 100644 --- a/arch/ppc/syslib/open_pic.c +++ b/arch/ppc/syslib/open_pic.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/sections.h> | 24 | #include <asm/sections.h> |
25 | #include <asm/open_pic.h> | 25 | #include <asm/open_pic.h> |
26 | #include <asm/i8259.h> | 26 | #include <asm/i8259.h> |
27 | #include <asm/machdep.h> | ||
27 | 28 | ||
28 | #include "open_pic_defs.h" | 29 | #include "open_pic_defs.h" |
29 | 30 | ||
diff --git a/arch/ppc/syslib/open_pic2.c b/arch/ppc/syslib/open_pic2.c index 9a7e8748e2b..ef365cc04bd 100644 --- a/arch/ppc/syslib/open_pic2.c +++ b/arch/ppc/syslib/open_pic2.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/sections.h> | 28 | #include <asm/sections.h> |
29 | #include <asm/open_pic.h> | 29 | #include <asm/open_pic.h> |
30 | #include <asm/i8259.h> | 30 | #include <asm/i8259.h> |
31 | #include <asm/machdep.h> | ||
31 | 32 | ||
32 | #include "open_pic_defs.h" | 33 | #include "open_pic_defs.h" |
33 | 34 | ||
diff --git a/arch/ppc/syslib/ppc403_pic.c b/arch/ppc/syslib/ppc403_pic.c index ce4d1deb86e..c46043c4722 100644 --- a/arch/ppc/syslib/ppc403_pic.c +++ b/arch/ppc/syslib/ppc403_pic.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/ppc4xx_pic.h> | 28 | #include <asm/ppc4xx_pic.h> |
29 | #include <asm/machdep.h> | ||
29 | 30 | ||
30 | /* Function Prototypes */ | 31 | /* Function Prototypes */ |
31 | 32 | ||
diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c index 40086212b9c..0b435633a0d 100644 --- a/arch/ppc/syslib/ppc4xx_pic.c +++ b/arch/ppc/syslib/ppc4xx_pic.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/system.h> | 25 | #include <asm/system.h> |
26 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
27 | #include <asm/ppc4xx_pic.h> | 27 | #include <asm/ppc4xx_pic.h> |
28 | #include <asm/machdep.h> | ||
28 | 29 | ||
29 | /* See comment in include/arch-ppc/ppc4xx_pic.h | 30 | /* See comment in include/arch-ppc/ppc4xx_pic.h |
30 | * for more info about these two variables | 31 | * for more info about these two variables |
diff --git a/arch/ppc/syslib/ppc83xx_setup.c b/arch/ppc/syslib/ppc83xx_setup.c index 890484e576e..4da168a6ad0 100644 --- a/arch/ppc/syslib/ppc83xx_setup.c +++ b/arch/ppc/syslib/ppc83xx_setup.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/ppc_sys.h> | 40 | #include <asm/ppc_sys.h> |
41 | #include <asm/kgdb.h> | 41 | #include <asm/kgdb.h> |
42 | #include <asm/delay.h> | 42 | #include <asm/delay.h> |
43 | #include <asm/machdep.h> | ||
43 | 44 | ||
44 | #include <syslib/ppc83xx_setup.h> | 45 | #include <syslib/ppc83xx_setup.h> |
45 | #if defined(CONFIG_PCI) | 46 | #if defined(CONFIG_PCI) |
diff --git a/arch/ppc/syslib/ppc85xx_setup.c b/arch/ppc/syslib/ppc85xx_setup.c index 832b8bf99ae..de2f9057657 100644 --- a/arch/ppc/syslib/ppc85xx_setup.c +++ b/arch/ppc/syslib/ppc85xx_setup.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <asm/mmu.h> | 29 | #include <asm/mmu.h> |
30 | #include <asm/ppc_sys.h> | 30 | #include <asm/ppc_sys.h> |
31 | #include <asm/kgdb.h> | 31 | #include <asm/kgdb.h> |
32 | #include <asm/machdep.h> | ||
32 | 33 | ||
33 | #include <syslib/ppc85xx_setup.h> | 34 | #include <syslib/ppc85xx_setup.h> |
34 | 35 | ||
diff --git a/arch/ppc/syslib/pq2_devices.c b/arch/ppc/syslib/pq2_devices.c index 1d3869768f9..6f88ba93412 100644 --- a/arch/ppc/syslib/pq2_devices.c +++ b/arch/ppc/syslib/pq2_devices.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/cpm2.h> | 18 | #include <asm/cpm2.h> |
19 | #include <asm/irq.h> | 19 | #include <asm/irq.h> |
20 | #include <asm/ppc_sys.h> | 20 | #include <asm/ppc_sys.h> |
21 | #include <asm/machdep.h> | ||
21 | 22 | ||
22 | struct platform_device ppc_sys_platform_devices[] = { | 23 | struct platform_device ppc_sys_platform_devices[] = { |
23 | [MPC82xx_CPM_FCC1] = { | 24 | [MPC82xx_CPM_FCC1] = { |
diff --git a/arch/ppc/syslib/xilinx_pic.c b/arch/ppc/syslib/xilinx_pic.c index 2cbcad278ce..47f04c71fe9 100644 --- a/arch/ppc/syslib/xilinx_pic.c +++ b/arch/ppc/syslib/xilinx_pic.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | #include <asm/xparameters.h> | 18 | #include <asm/xparameters.h> |
19 | #include <asm/ibm4xx.h> | 19 | #include <asm/ibm4xx.h> |
20 | #include <asm/machdep.h> | ||
20 | 21 | ||
21 | /* No one else should require these constants, so define them locally here. */ | 22 | /* No one else should require these constants, so define them locally here. */ |
22 | #define ISR 0 /* Interrupt Status Register */ | 23 | #define ISR 0 /* Interrupt Status Register */ |
diff --git a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c index 507d4eeffe0..98612d42034 100644 --- a/arch/ppc/xmon/start.c +++ b/arch/ppc/xmon/start.c | |||
@@ -478,8 +478,9 @@ void *xmon_stdout; | |||
478 | void *xmon_stderr; | 478 | void *xmon_stderr; |
479 | 479 | ||
480 | void | 480 | void |
481 | xmon_init(void) | 481 | xmon_init(int arg) |
482 | { | 482 | { |
483 | xmon_map_scc(); | ||
483 | } | 484 | } |
484 | 485 | ||
485 | int | 486 | int |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index ff619630dff..06a1f0f2db2 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
@@ -74,7 +74,9 @@ | |||
74 | #define MSR_DR __MASK(MSR_DR_LG) /* Data Relocate */ | 74 | #define MSR_DR __MASK(MSR_DR_LG) /* Data Relocate */ |
75 | #define MSR_PE __MASK(MSR_PE_LG) /* Protection Enable */ | 75 | #define MSR_PE __MASK(MSR_PE_LG) /* Protection Enable */ |
76 | #define MSR_PX __MASK(MSR_PX_LG) /* Protection Exclusive Mode */ | 76 | #define MSR_PX __MASK(MSR_PX_LG) /* Protection Exclusive Mode */ |
77 | #ifndef MSR_PMM | ||
77 | #define MSR_PMM __MASK(MSR_PMM_LG) /* Performance monitor */ | 78 | #define MSR_PMM __MASK(MSR_PMM_LG) /* Performance monitor */ |
79 | #endif | ||
78 | #define MSR_RI __MASK(MSR_RI_LG) /* Recoverable Exception */ | 80 | #define MSR_RI __MASK(MSR_RI_LG) /* Recoverable Exception */ |
79 | #define MSR_LE __MASK(MSR_LE_LG) /* Little Endian */ | 81 | #define MSR_LE __MASK(MSR_LE_LG) /* Little Endian */ |
80 | 82 | ||
@@ -87,11 +89,13 @@ | |||
87 | 89 | ||
88 | #else /* 32-bit */ | 90 | #else /* 32-bit */ |
89 | /* Default MSR for kernel mode. */ | 91 | /* Default MSR for kernel mode. */ |
92 | #ifndef MSR_KERNEL /* reg_booke.h also defines this */ | ||
90 | #ifdef CONFIG_APUS_FAST_EXCEPT | 93 | #ifdef CONFIG_APUS_FAST_EXCEPT |
91 | #define MSR_KERNEL (MSR_ME|MSR_IP|MSR_RI|MSR_IR|MSR_DR) | 94 | #define MSR_KERNEL (MSR_ME|MSR_IP|MSR_RI|MSR_IR|MSR_DR) |
92 | #else | 95 | #else |
93 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_IR|MSR_DR) | 96 | #define MSR_KERNEL (MSR_ME|MSR_RI|MSR_IR|MSR_DR) |
94 | #endif | 97 | #endif |
98 | #endif | ||
95 | 99 | ||
96 | #define MSR_USER (MSR_KERNEL|MSR_PR|MSR_EE) | 100 | #define MSR_USER (MSR_KERNEL|MSR_PR|MSR_EE) |
97 | #endif | 101 | #endif |
diff --git a/include/asm-ppc/system.h b/include/asm-ppc/system.h index 6a49b138c21..af93ff04c53 100644 --- a/include/asm-ppc/system.h +++ b/include/asm-ppc/system.h | |||
@@ -77,6 +77,7 @@ extern void enable_kernel_fp(void); | |||
77 | extern void enable_kernel_altivec(void); | 77 | extern void enable_kernel_altivec(void); |
78 | extern void giveup_altivec(struct task_struct *); | 78 | extern void giveup_altivec(struct task_struct *); |
79 | extern void load_up_altivec(struct task_struct *); | 79 | extern void load_up_altivec(struct task_struct *); |
80 | extern int emulate_altivec(struct pt_regs *); | ||
80 | extern void giveup_spe(struct task_struct *); | 81 | extern void giveup_spe(struct task_struct *); |
81 | extern void load_up_spe(struct task_struct *); | 82 | extern void load_up_spe(struct task_struct *); |
82 | extern int fix_alignment(struct pt_regs *); | 83 | extern int fix_alignment(struct pt_regs *); |
@@ -89,6 +90,8 @@ extern int do_page_fault(struct pt_regs *, unsigned long, unsigned long); | |||
89 | extern void bad_page_fault(struct pt_regs *, unsigned long, int); | 90 | extern void bad_page_fault(struct pt_regs *, unsigned long, int); |
90 | extern int die(const char *, struct pt_regs *, long); | 91 | extern int die(const char *, struct pt_regs *, long); |
91 | extern void _exception(int, struct pt_regs *, int, unsigned long); | 92 | extern void _exception(int, struct pt_regs *, int, unsigned long); |
93 | void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); | ||
94 | |||
92 | #ifdef CONFIG_BOOKE_WDT | 95 | #ifdef CONFIG_BOOKE_WDT |
93 | extern u32 booke_wdt_enabled; | 96 | extern u32 booke_wdt_enabled; |
94 | extern u32 booke_wdt_period; | 97 | extern u32 booke_wdt_period; |