diff options
author | Paul Mackerras <paulus@samba.org> | 2005-10-23 03:23:21 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-10-23 03:23:21 -0400 |
commit | a575b807172ca7d8850e6e979c8e83d4258e8c43 (patch) | |
tree | 83c3a6be6f16e4e1d325ecb9b43d26bb4d3d1ab7 /arch/powerpc/platforms/powermac | |
parent | 96c44507601d64f29b8ccc867637292e326c7019 (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.c | 10 |
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 | ||
294 | void __init pmac_setup_arch(void) | 294 | void __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 | ||