linux/arch/powerpc/kernel
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
..
vdso32
vdso64
.gitignore powerpc: Ignore generated vmlinux.lds in git 2008-10-07 14:26:18 +11:00
align.c powerpc: Fix uninitialised variable in VSX alignment code 2008-09-03 20:53:14 +10:00
asm-offsets.c Merge branch 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm 2008-10-16 15:36:00 -07:00
audit.c
btext.c powerpc: Use the common ascii hex helpers 2008-08-20 16:34:57 +10:00
clock.c
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_pa6t.S
cpu_setup_ppc970.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
cputable.c powerpc/40x: Add AMCC PowerPC 405EZ to cputable 2008-10-17 10:31:18 -04:00
crash_dump.c powerpc: Support for relocatable kdump kernel 2008-10-22 15:01:22 +11:00
crash.c
dma-iommu.c powerpc: Drop archdata numa_node 2008-09-24 16:26:43 -05:00
dma.c powerpc: Fix DMA offset for non-coherent DMA 2008-10-14 10:35:26 +11:00
entry_32.S
entry_64.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
firmware.c
fpu.S
ftrace.c
head_8xx.S
head_32.S powerpc: Fix 32-bit SMP boot on CHRP 2008-10-15 10:13:29 +11:00
head_40x.S
head_44x.S
head_64.S powerpc/ppc64/kdump: Better flag for running relocatable 2008-10-31 16:11:49 +11:00
head_booke.h
head_fsl_booke.S powerpc: remove non-dependent load fsl_booke PTE_64BIT 2008-10-13 11:09:59 -05:00
ibmebus.c powerpc/ibmebus: Restore "name" sysfs attribute on ibmebus devices 2008-08-20 09:50:21 +10:00
idle_6xx.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_e500.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_power4.S
idle.c powerpc: Fix failure to shutdown with CPU hotplug 2008-09-30 13:25:06 +10:00
init_task.c
io.c
iomap.c
iommu.c powerpc: Use is_kdump_kernel() 2008-10-31 16:11:47 +11:00
irq.c powerpc: Make the irq reverse mapping radix tree lockless 2008-09-15 11:08:45 -07:00
isa-bridge.c
kgdb.c kgdb, x86, arm, mips, powerpc: ignore user space single stepping 2008-09-26 10:36:41 -05:00
kprobes.c
l2cr_6xx.S
legacy_serial.c
lparcfg.c powerpc: Replace __FUNCTION__ with __func__ 2008-08-20 16:34:57 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc: Kexec exit should not use magic numbers 2008-10-31 16:11:44 +11:00
machine_kexec.c powerpc: Support for relocatable kdump kernel 2008-10-22 15:01:22 +11:00
Makefile powerpc: Merge 32 and 64-bit dma code 2008-09-24 16:26:45 -05:00
misc_32.S powerpc: Fix error path in kernel_thread function 2008-10-10 15:55:18 +11:00
misc_64.S powerpc: Kexec exit should not use magic numbers 2008-10-31 16:11:44 +11:00
misc.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
module_32.c
module_64.c Fix compile failure with non modular builds 2008-09-17 09:14:42 -07:00
module.c powerpc: Remove dead module_find_bug code 2008-08-18 14:22:35 +10:00
msi.c
nvram_64.c
of_device.c powerpc: Drop archdata numa_node 2008-09-24 16:26:43 -05:00
of_platform.c
paca.c powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
pci_32.c powerpc: Fix link errors on 32-bit machines using legacy DMA 2008-10-15 10:13:29 +11:00
pci_64.c powerpc: Merge 32 and 64-bit dma code 2008-09-24 16:26:45 -05:00
pci_dn.c
pci-common.c powerpc: Further compile fixup for STRICT_MM_TYPECHECKS 2008-10-22 11:00:26 +11:00
pmc.c
ppc32.h
ppc_ksyms.c powerpc: Introduce local (non-broadcast) forms of tlb invalidates 2008-09-24 16:29:40 -05:00
proc_ppc64.c
process.c
prom_init_check.sh powerpc: Fix build issue with CONFIG_RELOCATABLE=y 2008-10-21 15:17:49 +11:00
prom_init.c powerpc: Delete unused prom_strtoul and prom_memparse 2008-10-21 15:20:08 +11:00
prom_parse.c
prom.c powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
ptrace32.c
ptrace.c
reloc_64.S powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas-rtc.c
rtas.c
setup_32.c powerpc: Reflect the used arguments in machine_init() prototype 2008-10-14 10:35:26 +11:00
setup_64.c powerpc: Make it possible to move the interrupt handlers away from the kernel 2008-09-15 11:08:08 -07:00
setup-common.c powerpc: Move memory size print into common show_cpuinfo for 32-bit 2008-10-22 11:00:25 +11:00
setup.h
signal_32.c
signal_64.c powerpc: Remove empty #else from signal_64.c 2008-10-22 11:00:26 +11:00
signal.c
signal.h x86, um: get rid of uml signal.h 2008-10-22 22:55:20 -07:00
smp-tbsync.c
smp.c Merge commit 'origin' 2008-10-15 11:31:54 +11:00
softemu8xx.c Remove asm/a.out.h files for all architectures without a.out support. 2008-09-06 19:30:24 +01:00
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S powerpc: Fix 64-bit hibernation with 64k pages 2008-10-07 14:26:20 +11:00
swsusp.c
sys_ppc32.c compat: generic compat get/settimeofday 2008-10-16 11:21:33 -07:00
syscalls.c
sysfs.c powerpc: Fix build warnings introduced by PMC support on 32-bit 2008-09-18 17:57:50 -05:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c
traps.c Remove asm/a.out.h files for all architectures without a.out support. 2008-09-06 19:30:24 +01:00
udbg_16550.c powerpc: Unsigned speed cannot be negative in udbg_16559.c 2008-10-21 15:17:47 +11:00
udbg.c
vdso.c
vecemu.c
vector.S
vio.c powerpc: Drop archdata numa_node 2008-09-24 16:26:43 -05:00
vmlinux.lds.S powerpc: Sync RPA note in zImage with kernel's RPA note 2008-10-10 15:55:19 +11:00