aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powermac
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2005-10-23 03:23:21 -0400
committerPaul Mackerras <paulus@samba.org>2005-10-23 03:23:21 -0400
commita575b807172ca7d8850e6e979c8e83d4258e8c43 (patch)
tree83c3a6be6f16e4e1d325ecb9b43d26bb4d3d1ab7 /arch/powerpc/platforms/powermac
parent96c44507601d64f29b8ccc867637292e326c7019 (diff)
powerpc: Run on old powermacs.
Old powermacs have a number of differences from current machines: - there is no interrupt tree in the device tree, just interrupt or AAPL,interrupt properties - the chosen node in the device tree is called /chosen@0 - the OF claim method doesn't map the memory, so we have to do an explicit map call as well - there is no /chosen/cpu property on SMP machines - the NVRAM isn't structured as a set of partitions. This adapts the merged powermac support code to cope with these issues. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/powermac')
-rw-r--r--arch/powerpc/platforms/powermac/setup.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 50f5dd787900..908e4921bac4 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -225,7 +225,7 @@ int find_via_pmu(void)
225 return 0; 225 return 0;
226 printk("WARNING ! Your machine is PMU-based but your kernel\n"); 226 printk("WARNING ! Your machine is PMU-based but your kernel\n");
227 printk(" wasn't compiled with CONFIG_ADB_PMU option !\n"); 227 printk(" wasn't compiled with CONFIG_ADB_PMU option !\n");
228 return; 228 return 0;
229} 229}
230#endif 230#endif
231 231
@@ -293,7 +293,7 @@ static void __init l2cr_init(void)
293 293
294void __init pmac_setup_arch(void) 294void __init pmac_setup_arch(void)
295{ 295{
296 struct device_node *cpu; 296 struct device_node *cpu, *ic;
297 int *fp; 297 int *fp;
298 unsigned long pvr; 298 unsigned long pvr;
299 299
@@ -319,6 +319,12 @@ void __init pmac_setup_arch(void)
319 of_node_put(cpu); 319 of_node_put(cpu);
320 } 320 }
321 321
322 /* See if newworld or oldworld */
323 ic = of_find_node_by_name(NULL, "interrupt-controller");
324 pmac_newworld = (ic != NULL);
325 if (ic)
326 of_node_put(ic);
327
322 /* Lookup PCI hosts */ 328 /* Lookup PCI hosts */
323 pmac_pci_init(); 329 pmac_pci_init();
324 330