2005-12-04 10:39:37 +03:00
# ifndef _PPC64_KDUMP_H
# define _PPC64_KDUMP_H
2008-12-17 13:09:26 +03:00
# include <asm/page.h>
2006-05-17 12:00:49 +04:00
# define KDUMP_KERNELBASE 0x2000000
2005-12-04 10:39:37 +03:00
/* How many bytes to reserve at zero for kdump. The reserve limit should
2006-05-17 12:00:49 +04: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 06:29:52 +04:00
# define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */
2005-12-04 10:39:37 +03:00
2006-05-17 12:00:49 +04:00
# ifdef CONFIG_CRASH_DUMP
2008-12-17 13:09:26 +03: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 10:39:37 +03:00
# define KDUMP_TRAMPOLINE_START 0x0100
# define KDUMP_TRAMPOLINE_END 0x3000
2008-12-17 13:09:26 +03:00
# else
# define KDUMP_TRAMPOLINE_START (0x0100 + PAGE_OFFSET)
# define KDUMP_TRAMPOLINE_END (0x3000 + PAGE_OFFSET)
# endif /* __powerpc64__ */
2005-12-04 10:39:37 +03:00
2006-06-23 10:35:10 +04:00
# define KDUMP_MIN_TCE_ENTRIES 2048
2006-05-17 12:00:49 +04:00
# endif /* CONFIG_CRASH_DUMP */
# ifndef __ASSEMBLY__
2008-10-21 21:38:10 +04:00
# if defined(CONFIG_CRASH_DUMP) && !defined(CONFIG_RELOCATABLE)
2006-05-17 12:00:49 +04:00
extern void reserve_kdump_trampoline ( void ) ;
extern void setup_kdump_trampoline ( void ) ;
2008-10-21 21:38:10 +04:00
# else
/* !CRASH_DUMP || RELOCATABLE */
2006-05-17 12:00:49 +04:00
static inline void reserve_kdump_trampoline ( void ) { ; }
static inline void setup_kdump_trampoline ( void ) { ; }
2008-10-21 21:38:10 +04:00
# endif
2006-05-17 12:00:49 +04:00
# endif /* __ASSEMBLY__ */
2005-12-04 10:39:37 +03:00
# endif /* __PPC64_KDUMP_H */