aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2005-09-28 06:28:14 -0400
committerPaul Mackerras <paulus@samba.org>2005-09-28 06:28:14 -0400
commit20c8c2106305729e7d5e06f6c3d390e965a3dd34 (patch)
tree23ae68e9ed3c7bdb1fccb19a761904a67c671f57 /arch/powerpc/platforms
parenta3a9e99e36b2897b3e038869e61f363d62434086 (diff)
powerpc: Fixes to get the merged kernel to boot on powermac.
This merges ppc_ksyms.c, puts back the actual do_execve call in sys_execve, makes init_MMU call find_end_of_memory rather than ppc_md.find_end_of_memory (every platform has a device tree with a /memory node now, right?) and fixes some problems with the mpic initialization on newworld powermacs. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/powermac/pmac_pic.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/powermac/pmac_pic.c b/arch/powerpc/platforms/powermac/pmac_pic.c
index bf3e1899a4cc..a6b1b577e19f 100644
--- a/arch/powerpc/platforms/powermac/pmac_pic.c
+++ b/arch/powerpc/platforms/powermac/pmac_pic.c
@@ -424,6 +424,8 @@ void __init pmac_pic_init(void)
424 424
425 printk(KERN_INFO "PowerMac using OpenPIC irq controller at 0x%08x\n", 425 printk(KERN_INFO "PowerMac using OpenPIC irq controller at 0x%08x\n",
426 (unsigned int)irqctrler->addrs[0].address); 426 (unsigned int)irqctrler->addrs[0].address);
427 ppc_md.get_irq = mpic_get_irq;
428 pmac_call_feature(PMAC_FTR_ENABLE_MPIC, irqctrler, 0, 0);
427 429
428 prom_get_irq_senses(senses, 0, 128); 430 prom_get_irq_senses(senses, 0, 128);
429 mpic1 = mpic_alloc(irqctrler->addrs[0].address, 431 mpic1 = mpic_alloc(irqctrler->addrs[0].address,
@@ -452,7 +454,22 @@ void __init pmac_pic_init(void)
452 mpic_setup_cascade(irqctrler2->intrs[0].line, 454 mpic_setup_cascade(irqctrler2->intrs[0].line,
453 pmac_u3_cascade, mpic2); 455 pmac_u3_cascade, mpic2);
454 } 456 }
457#ifdef CONFIG_XMON
458 {
459 struct device_node* pswitch;
460 int nmi_irq;
461
462 pswitch = find_devices("programmer-switch");
463 if (pswitch && pswitch->n_intrs) {
464 nmi_irq = pswitch->intrs[0].line;
465 openpic_init_nmi_irq(nmi_irq);
466 setup_irq(nmi_irq, &xmon_action);
467 }
468 }
469#endif /* CONFIG_XMON */
470 return;
455 } 471 }
472 irqctrler = NULL;
456 473
457 /* Get the level/edge settings, assume if it's not 474 /* Get the level/edge settings, assume if it's not
458 * a Grand Central nor an OHare, then it's an Heathrow 475 * a Grand Central nor an OHare, then it's an Heathrow