linux/arch/powerpc
Peter Tyser d1d47ec6e6 powerpc/85xx: Fix SMP when "cpu-release-addr" is in lowmem
Recent U-Boot commit 5ccd29c3679b3669b0bde5c501c1aa0f325a7acb caused
the "cpu-release-addr" device tree property to contain the physical RAM
location that secondary cores were spinning at.  Previously, the
"cpu-release-addr" property contained a value referencing the boot page
translation address range of 0xfffffxxx, which then indirectly accessed
RAM.

The "cpu-release-addr" is currently ioremapped and the secondary cores
kicked.  However, due to the recent change in "cpu-release-addr", it
sometimes points to a memory location in low memory that cannot be
ioremapped.  For example on a P2020-based board with 512MB of RAM the
following error occurs on bootup:

  <...>
  mpic: requesting IPIs ...
  __ioremap(): phys addr 0x1ffff000 is RAM lr c05df9a0
  Unable to handle kernel paging request for data at address 0x00000014
  Faulting instruction address: 0xc05df9b0
  Oops: Kernel access of bad area, sig: 11 [#1]
  SMP NR_CPUS=2 P2020 RDB
  Modules linked in:
  <... eventual kernel panic>

Adding logic to conditionally ioremap or access memory directly resolves
the issue.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Signed-off-by: Nate Case <ncase@xes-inc.com>
Reported-by: Dipen Dudhat <B09055@freescale.com>
Tested-by: Dipen Dudhat <B09055@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2010-02-13 14:23:24 -06:00
..
boot zlib: Fix build of powerpc boot wrapper 2010-01-13 16:13:39 -08:00
configs Merge commit 'jwb/merge' into merge 2010-01-29 16:52:27 +11:00
include/asm powerpc: TIF_ABI_PENDING bit removal 2010-02-01 14:00:30 +11:00
kernel powerpc: TIF_ABI_PENDING bit removal 2010-02-01 14:00:30 +11:00
kvm KVM: powerpc: Show timing option only on embedded 2010-01-25 12:26:36 -02:00
lib locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
math-emu powerpc/math-emu: Fix efp dependence 2009-03-11 06:00:08 -05:00
mm powerpc: Fix address masking bug in hpte_need_flush() 2010-02-10 13:58:06 +11:00
oprofile tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
platforms powerpc/85xx: Fix SMP when "cpu-release-addr" is in lowmem 2010-02-13 14:23:24 -06:00
sysdev powerpc/4xx: Add pcix type 1 transactions 2010-01-29 16:51:12 +11:00
xmon powerpc/pseries: Add extended_cede_processor() helper function. 2009-11-24 14:33:03 +11:00
Kconfig Merge branch 'next' of git://git.secretlab.ca/git/linux-2.6 2009-12-16 13:26:53 -08:00
Kconfig.debug Merge branch 'next' of git://git.secretlab.ca/git/linux-2.6 2009-12-16 13:26:53 -08:00
Makefile powerpc: Check for unsupported relocs when using CONFIG_RELOCATABLE 2009-09-24 15:31:40 +10:00
relocs_check.pl powerpc: Check for unsupported relocs when using CONFIG_RELOCATABLE 2009-09-24 15:31:40 +10:00