2005-06-25 14:58:11 -07:00
/*
* include / asm - s390 / kexec . h
*
* ( C ) Copyright IBM Corp . 2005
*
* Author ( s ) : Rolf Adelsberger < adelsberger @ de . ibm . com >
*
*/
# ifndef _S390_KEXEC_H
# define _S390_KEXEC_H
# include <asm/processor.h>
2012-05-23 13:55:45 +02:00
# include <asm/page.h>
2005-06-25 14:58:11 -07:00
/*
* KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return .
* I . e . Maximum page that is mapped directly into kernel memory ,
* and kmap is not required .
*/
/* Maximum physical address we can use pages from */
# define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
/* Maximum address we can reach in physical address mode */
# define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
/* Maximum address we can use for the control pages */
/* Not more than 2GB */
2006-12-04 15:40:28 +01:00
# define KEXEC_CONTROL_MEMORY_LIMIT (1UL<<31)
2005-06-25 14:58:11 -07:00
2011-10-30 15:16:40 +01:00
/* Maximum address we can use for the crash control pages */
# define KEXEC_CRASH_CONTROL_MEMORY_LIMIT (-1UL)
2005-06-25 14:58:11 -07:00
/* Allocate one page for the pdp and the second for the code */
2008-08-15 00:40:22 -07:00
# define KEXEC_CONTROL_PAGE_SIZE 4096
2005-06-25 14:58:11 -07:00
2011-10-30 15:16:44 +01:00
/* Alignment of crashkernel memory */
# define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE
2005-06-25 14:58:11 -07:00
/* The native architecture */
# define KEXEC_ARCH KEXEC_ARCH_S390
2012-01-20 14:34:16 -08:00
/*
* Size for s390x ELF notes per CPU
*
* Seven notes plus zero note at the end : prstatus , fpregset , timer ,
* tod_cmp , tod_reg , control regs , and prefix
*/
# define KEXEC_NOTE_BYTES \
( ALIGN ( sizeof ( struct elf_note ) , 4 ) * 8 + \
ALIGN ( sizeof ( " CORE " ) , 4 ) * 7 + \
ALIGN ( sizeof ( struct elf_prstatus ) , 4 ) + \
ALIGN ( sizeof ( elf_fpregset_t ) , 4 ) + \
ALIGN ( sizeof ( u64 ) , 4 ) + \
ALIGN ( sizeof ( u64 ) , 4 ) + \
ALIGN ( sizeof ( u32 ) , 4 ) + \
ALIGN ( sizeof ( u64 ) * 16 , 4 ) + \
ALIGN ( sizeof ( u32 ) , 4 ) \
)
2006-01-09 20:51:45 -08:00
/* Provide a dummy definition to avoid build failures. */
static inline void crash_setup_regs ( struct pt_regs * newregs ,
struct pt_regs * oldregs ) { }
2005-06-25 14:58:11 -07:00
# endif /*_S390_KEXEC_H */