linux/arch/powerpc/platforms/powermac
Benjamin Herrenschmidt c478b58135 powerpc/powermac: Fix occasional SMP boot failure
The PowerMac kernel occasionally fails to bring up the secondary CPUs on
SMP, the trigger factor seem to be fairly random and related to location
of code and data.

This appears to be due to the initial loading of the TOC value by the
secondary processor which now happens before we clear HID4:RM_CI (Real
Mode Cache Invalidate). This bit should really be cleared before we do
any load or store other than fetching code.

This fix works based on the assumption that all SMP 64-bit PowerMacs use
variants of the 970, which fortunately is true, by explicitely clearing
that bit, adding an slbia for good measure as RM_CI mode is known to
create bogus ERAT entries.

I also removed some spurrious debug output that was left enabled by
mistake while at it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-01-13 14:48:03 +11:00
..
backlight.c [POWERPC] Remove old interface find_devices 2007-04-24 22:09:02 +10:00
bootx_init.c [POWERPC] Remove old includes from arch/ppc 2007-08-22 22:39:35 -05:00
cache.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpufreq_32.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
cpufreq_64.c powerpc: Fix cpufreq drivers after cpufreq core changes 2009-01-11 21:32:01 -08:00
feature.c powerpc: Fix duplicate test of MACIO_FLAG_SCCB_ON 2008-09-15 11:07:35 -07:00
Kconfig [POWERPC] disallow building powermac and tsi108 without PCI 2007-06-29 01:57:00 -05:00
low_i2c.c [POWERPC] powermac: Use machine_*_initcall() hooks in platform code 2008-01-17 14:57:14 +11:00
Makefile ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
nvram.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
pci.c powerpc/powermac: Add missing of_node_put 2009-01-08 16:25:07 +11:00
pfunc_base.c [POWERPC] powermac: Use machine_*_initcall() hooks in platform code 2008-01-17 14:57:14 +11:00
pfunc_core.c arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
pic.c [POWERPC] Move xmon_irq() declaration into xmon.h 2008-05-14 22:31:54 +10:00
pic.h [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
pmac.h ppc/pmac: remove ppc_ide_md hooks 2008-04-18 00:46:29 +02:00
setup.c powerpc: Remove default kexec/crash_kernel ops assignments 2008-12-23 15:13:28 +11:00
sleep.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
smp.c powerpc/powermac: Fix occasional SMP boot failure 2009-01-13 14:48:03 +11:00
time.c powerpc/powermac: Add missing of_node_put 2009-01-08 16:25:07 +11:00
udbg_adb.c [POWERPC] Fix section mismatches in udbg_adb.c 2007-08-17 11:02:06 +10:00
udbg_scc.c powerpc/powermac: Use sane default baudrate for SCC debugging 2008-07-28 16:30:52 +10:00