Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8f50b1b authored by Dale Farnsworth's avatar Dale Farnsworth Committed by Paul Mackerras
Browse files

powerpc/32: Wire up the trampoline code for kdump



Wire up the trampoline code for ppc32 to relay exceptions from the
vectors at address 0 to vectors at address 32MB, and modify Kconfig
to enable Kdump support for all classic powerpcs.

Signed-off-by: default avatarDale Farnsworth <dale@farnsworth.org>
Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent ccdcef72
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -326,7 +326,7 @@ config KEXEC

config CRASH_DUMP
	bool "Build a kdump crash kernel"
	depends on PPC_MULTIPLATFORM && PPC64 && RELOCATABLE
	depends on (PPC64 && RELOCATABLE) || 6xx
	help
	  Build a kernel suitable for use as a kdump capture kernel.
	  The same kernel binary can be used as production kernel and dump
+13 −0
Original line number Diff line number Diff line
#ifndef _PPC64_KDUMP_H
#define _PPC64_KDUMP_H

#include <asm/page.h>

/* Kdump kernel runs at 32 MB, change at your peril. */
#define KDUMP_KERNELBASE	0x2000000

@@ -11,8 +13,19 @@

#ifdef CONFIG_CRASH_DUMP

/*
 * On PPC64 translation is disabled during trampoline setup, so we use
 * physical addresses. Though on PPC32 translation is already enabled,
 * so we can't do the same. Luckily create_trampoline() creates relative
 * branches, so we can just add the PAGE_OFFSET and don't worry about it.
 */
#ifdef __powerpc64__
#define KDUMP_TRAMPOLINE_START	0x0100
#define KDUMP_TRAMPOLINE_END	0x3000
#else
#define KDUMP_TRAMPOLINE_START	(0x0100 + PAGE_OFFSET)
#define KDUMP_TRAMPOLINE_END	(0x3000 + PAGE_OFFSET)
#endif /* __powerpc64__ */

#define KDUMP_MIN_TCE_ENTRIES	2048

+2 −0
Original line number Diff line number Diff line
@@ -126,6 +126,8 @@ notrace void __init machine_init(unsigned long dt_ptr)

	probe_machine();

	setup_kdump_trampoline();

#ifdef CONFIG_6xx
	if (cpu_has_feature(CPU_FTR_CAN_DOZE) ||
	    cpu_has_feature(CPU_FTR_CAN_NAP))