aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc')
-rw-r--r--arch/ppc/kernel/setup.c7
-rw-r--r--arch/ppc/mm/init.c2
-rw-r--r--arch/ppc/mm/mmu_decl.h2
-rw-r--r--arch/ppc/platforms/4xx/yucca.c1
-rw-r--r--arch/ppc/syslib/virtex_devices.c31
5 files changed, 41 insertions, 2 deletions
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
index aac88c2f3db9..5255bd80aa6b 100644
--- a/arch/ppc/kernel/setup.c
+++ b/arch/ppc/kernel/setup.c
@@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
312 * Identify the CPU type and fix up code sections 312 * Identify the CPU type and fix up code sections
313 * that depend on which cpu we have. 313 * that depend on which cpu we have.
314 */ 314 */
315#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
316 /* We pass the virtual PVR here for 440EP as 440EP and 440GR have
317 * identical PVRs and there is no reliable way to check for the FPU
318 */
319 spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
320#else
315 spec = identify_cpu(offset, mfspr(SPRN_PVR)); 321 spec = identify_cpu(offset, mfspr(SPRN_PVR));
322#endif
316 do_feature_fixups(spec->cpu_features, 323 do_feature_fixups(spec->cpu_features,
317 PTRRELOC(&__start___ftr_fixup), 324 PTRRELOC(&__start___ftr_fixup),
318 PTRRELOC(&__stop___ftr_fixup)); 325 PTRRELOC(&__stop___ftr_fixup));
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c
index 390dd1995c2a..dd898d32480e 100644
--- a/arch/ppc/mm/init.c
+++ b/arch/ppc/mm/init.c
@@ -561,7 +561,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
561 * That means the zeroed TLB has to be invalidated 561 * That means the zeroed TLB has to be invalidated
562 * whenever a page miss occurs. 562 * whenever a page miss occurs.
563 */ 563 */
564 _tlbie(address); 564 _tlbie(address, 0 /* 8xx doesn't care about PID */);
565#endif 565#endif
566 if (!PageReserved(page) 566 if (!PageReserved(page)
567 && !test_bit(PG_arch_1, &page->flags)) { 567 && !test_bit(PG_arch_1, &page->flags)) {
diff --git a/arch/ppc/mm/mmu_decl.h b/arch/ppc/mm/mmu_decl.h
index f1d4f2109a99..b298b60c202f 100644
--- a/arch/ppc/mm/mmu_decl.h
+++ b/arch/ppc/mm/mmu_decl.h
@@ -49,7 +49,7 @@ extern unsigned int num_tlbcam_entries;
49 * architectures. -- Dan 49 * architectures. -- Dan
50 */ 50 */
51#if defined(CONFIG_8xx) 51#if defined(CONFIG_8xx)
52#define flush_HPTE(X, va, pg) _tlbie(va) 52#define flush_HPTE(X, va, pg) _tlbie(va, 0 /* 8xx doesn't care about PID */)
53#define MMU_init_hw() do { } while(0) 53#define MMU_init_hw() do { } while(0)
54#define mmu_mapin_ram() (0UL) 54#define mmu_mapin_ram() (0UL)
55 55
diff --git a/arch/ppc/platforms/4xx/yucca.c b/arch/ppc/platforms/4xx/yucca.c
index a83b0baea011..66a44ff0d926 100644
--- a/arch/ppc/platforms/4xx/yucca.c
+++ b/arch/ppc/platforms/4xx/yucca.c
@@ -211,6 +211,7 @@ static void __init yucca_setup_pcie_fpga_rootpoint(int port)
211 break; 211 break;
212 212
213 default: 213 default:
214 iounmap(pcie_reg_fpga_base);
214 return; 215 return;
215 } 216 }
216 217
diff --git a/arch/ppc/syslib/virtex_devices.c b/arch/ppc/syslib/virtex_devices.c
index ace4ec08de51..f658ff3b3890 100644
--- a/arch/ppc/syslib/virtex_devices.c
+++ b/arch/ppc/syslib/virtex_devices.c
@@ -87,6 +87,29 @@
87 }, \ 87 }, \
88} 88}
89 89
90#define XPAR_AC97_CONTROLLER_REFERENCE(num) { \
91 .name = "ml403_ac97cr", \
92 .id = num, \
93 .num_resources = 3, \
94 .resource = (struct resource[]) { \
95 { \
96 .start = XPAR_OPB_AC97_CONTROLLER_REF_##num##_BASEADDR, \
97 .end = XPAR_OPB_AC97_CONTROLLER_REF_##num##_HIGHADDR, \
98 .flags = IORESOURCE_MEM, \
99 }, \
100 { \
101 .start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_PLAYBACK_INTERRUPT_INTR, \
102 .end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_PLAYBACK_INTERRUPT_INTR, \
103 .flags = IORESOURCE_IRQ, \
104 }, \
105 { \
106 .start = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_RECORD_INTERRUPT_INTR, \
107 .end = XPAR_OPB_INTC_0_OPB_AC97_CONTROLLER_REF_##num##_RECORD_INTERRUPT_INTR, \
108 .flags = IORESOURCE_IRQ, \
109 }, \
110 }, \
111}
112
90/* UART 8250 driver platform data table */ 113/* UART 8250 driver platform data table */
91struct plat_serial8250_port virtex_serial_platform_data[] = { 114struct plat_serial8250_port virtex_serial_platform_data[] = {
92#if defined(XPAR_UARTNS550_0_BASEADDR) 115#if defined(XPAR_UARTNS550_0_BASEADDR)
@@ -173,6 +196,14 @@ struct platform_device virtex_platform_devices[] = {
173#if defined(XPAR_TFT_3_BASEADDR) 196#if defined(XPAR_TFT_3_BASEADDR)
174 XPAR_TFT(3), 197 XPAR_TFT(3),
175#endif 198#endif
199
200 /* AC97 Controller Reference instances */
201#if defined(XPAR_OPB_AC97_CONTROLLER_REF_0_BASEADDR)
202 XPAR_AC97_CONTROLLER_REFERENCE(0),
203#endif
204#if defined(XPAR_OPB_AC97_CONTROLLER_REF_1_BASEADDR)
205 XPAR_AC97_CONTROLLER_REFERENCE(1),
206#endif
176}; 207};
177 208
178/* Early serial support functions */ 209/* Early serial support functions */