1 /* 2 * include/asm-s390/kexec.h 3 * 4 * (C) Copyright IBM Corp. 2005 5 * 6 * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com> 7 * 8 */ 9 10 #ifndef _S390_KEXEC_H 11 #define _S390_KEXEC_H 12 13 #ifdef __KERNEL__ 14 #include <asm/page.h> 15 #endif 16 #include <asm/processor.h> 17 /* 18 * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. 19 * I.e. Maximum page that is mapped directly into kernel memory, 20 * and kmap is not required. 21 */ 22 23 /* Maximum physical address we can use pages from */ 24 #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL) 25 26 /* Maximum address we can reach in physical address mode */ 27 #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) 28 29 /* Maximum address we can use for the control pages */ 30 /* Not more than 2GB */ 31 #define KEXEC_CONTROL_MEMORY_LIMIT (1UL<<31) 32 33 /* Maximum address we can use for the crash control pages */ 34 #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT (-1UL) 35 36 /* Allocate one page for the pdp and the second for the code */ 37 #define KEXEC_CONTROL_PAGE_SIZE 4096 38 39 /* Alignment of crashkernel memory */ 40 #define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE 41 42 /* The native architecture */ 43 #define KEXEC_ARCH KEXEC_ARCH_S390 44 45 /* 46 * Size for s390x ELF notes per CPU 47 * 48 * Seven notes plus zero note at the end: prstatus, fpregset, timer, 49 * tod_cmp, tod_reg, control regs, and prefix 50 */ 51 #define KEXEC_NOTE_BYTES \ 52 (ALIGN(sizeof(struct elf_note), 4) * 8 + \ 53 ALIGN(sizeof("CORE"), 4) * 7 + \ 54 ALIGN(sizeof(struct elf_prstatus), 4) + \ 55 ALIGN(sizeof(elf_fpregset_t), 4) + \ 56 ALIGN(sizeof(u64), 4) + \ 57 ALIGN(sizeof(u64), 4) + \ 58 ALIGN(sizeof(u32), 4) + \ 59 ALIGN(sizeof(u64) * 16, 4) + \ 60 ALIGN(sizeof(u32), 4) \ 61 ) 62 63 /* Provide a dummy definition to avoid build failures. */ 64 static inline void crash_setup_regs(struct pt_regs *newregs, 65 struct pt_regs *oldregs) { } 66 67 #endif /*_S390_KEXEC_H */ 68