2005-12-04 18:39:37 +11:00
# ifndef _PPC64_KDUMP_H
# define _PPC64_KDUMP_H
2008-12-17 10:09:26 +00:00
# include <asm/page.h>
2006-05-17 18:00:49 +10:00
# define KDUMP_KERNELBASE 0x2000000
2005-12-04 18:39:37 +11:00
/* How many bytes to reserve at zero for kdump. The reserve limit should
2006-05-17 18:00:49 +10:00
* be greater or equal to the trampoline ' s end address .
* Reserve to the end of the FWNMI area , see head_64 . S */
2006-09-08 07:59:52 +05:30
# define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */
2005-12-04 18:39:37 +11:00
2006-05-17 18:00:49 +10:00
# ifdef CONFIG_CRASH_DUMP
2008-12-17 10:09:26 +00:00
/*
* 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__
2005-12-04 18:39:37 +11:00
# define KDUMP_TRAMPOLINE_START 0x0100
# define KDUMP_TRAMPOLINE_END 0x3000
2008-12-17 10:09:26 +00:00
# else
# define KDUMP_TRAMPOLINE_START (0x0100 + PAGE_OFFSET)
# define KDUMP_TRAMPOLINE_END (0x3000 + PAGE_OFFSET)
# endif /* __powerpc64__ */
2005-12-04 18:39:37 +11:00
2006-06-22 23:35:10 -07:00
# define KDUMP_MIN_TCE_ENTRIES 2048
2006-05-17 18:00:49 +10:00
# endif /* CONFIG_CRASH_DUMP */
# ifndef __ASSEMBLY__
2011-12-14 22:57:15 +00:00
# if defined(CONFIG_CRASH_DUMP) && !defined(CONFIG_NONSTATIC_KERNEL)
2006-05-17 18:00:49 +10:00
extern void reserve_kdump_trampoline ( void ) ;
extern void setup_kdump_trampoline ( void ) ;
2008-10-21 17:38:10 +00:00
# else
2011-12-14 22:57:15 +00:00
/* !CRASH_DUMP || !NONSTATIC_KERNEL */
2006-05-17 18:00:49 +10:00
static inline void reserve_kdump_trampoline ( void ) { ; }
static inline void setup_kdump_trampoline ( void ) { ; }
2008-10-21 17:38:10 +00:00
# endif
2006-05-17 18:00:49 +10:00
# endif /* __ASSEMBLY__ */
2005-12-04 18:39:37 +11:00
# endif /* __PPC64_KDUMP_H */