1
0
Fork 0
alistair23-linux/arch/powerpc
Milton Miller 8b8b0cc1c7 powerpc/ppc64/kdump: Better flag for running relocatable
The __kdump_flag ABI is overly constraining for future development.

As of 2.6.27, the kernel entry point has 4 constraints:  Offset 0 is
the starting point for the master (boot) cpu (entered with r3 pointing
to the device tree structure), offset 0x60 is code for the slave cpus
(entered with r3 set to their device tree physical id), offset 0x20 is
used by the iseries hypervisor, and secondary cpus must be well behaved
when the first 256 bytes are copied to address 0.

Placing the __kdump_flag at 0x18 is bad because:

- It was taking the last 8 bytes before the iseries hypervisor data.
- It was 8 bytes for a boolean flag
- It had no way of identifying that the flag was present
- It does leave any room for the master to add any additional code
  before branching, which hurts debug.
- It will be unnecessarily hard for 32 bit code to be common (8 bytes)

Now that we have eliminated the use of __kdump_flag in favor of
the standard is_kdump_kernel(), this flag only controls run without
relocating the kernel to PHYSICAL_START (0), so rename it __run_at_load.

Move the flag to 0x5c, 1 word before the secondary cpu entry point at
0x60.  Initialize it with "run0" to say it will run at 0 unless it is
set to 1.  It only exists if we are relocatable.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-10-31 16:11:49 +11:00
..
boot powerpc: Add del_node() for early boot code to prune inapplicable devices. 2008-10-22 15:01:21 +11:00
configs Merge branch 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx into merge 2008-10-31 16:08:14 +11:00
include/asm powerpc: Use is_kdump_kernel() 2008-10-31 16:11:47 +11:00
kernel powerpc/ppc64/kdump: Better flag for running relocatable 2008-10-31 16:11:49 +11:00
kvm KVM: switch to get_user_pages_fast 2008-10-15 14:25:06 +02:00
lib powerpc: Fix DMA offset for non-coherent DMA 2008-10-14 10:35:26 +11:00
math-emu powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
mm powerpc: Don't use a 16G page if beyond mem= limits 2008-10-22 15:01:21 +11:00
oprofile Merge branch 'v28-range-hrtimers-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-23 10:53:02 -07:00
platforms powerpc: Use is_kdump_kernel() 2008-10-31 16:11:47 +11:00
sysdev Merge commit 'origin' into master 2008-10-21 15:52:04 +11:00
xmon Merge branch 'linux-2.6' 2008-06-30 10:16:50 +10:00
Kconfig powerpc: Support for relocatable kdump kernel 2008-10-22 15:01:22 +11:00
Kconfig.debug powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
Makefile powerpc: Enforce a non-spe kernel build even on broken compilers 2008-09-15 11:08:41 -07:00