Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 2 | /* |
Heiko Carstens | a53c8fa | 2012-07-20 11:15:04 +0200 | [diff] [blame] | 3 | * Copyright IBM Corp. 2005 |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 4 | * |
| 5 | * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com> |
| 6 | * |
| 7 | */ |
| 8 | |
| 9 | #ifndef _S390_KEXEC_H |
| 10 | #define _S390_KEXEC_H |
| 11 | |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 12 | #include <asm/processor.h> |
Heiko Carstens | da47773 | 2012-05-23 13:55:45 +0200 | [diff] [blame] | 13 | #include <asm/page.h> |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 14 | /* |
| 15 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. |
| 16 | * I.e. Maximum page that is mapped directly into kernel memory, |
| 17 | * and kmap is not required. |
| 18 | */ |
| 19 | |
| 20 | /* Maximum physical address we can use pages from */ |
| 21 | #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL) |
| 22 | |
| 23 | /* Maximum address we can reach in physical address mode */ |
| 24 | #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) |
| 25 | |
| 26 | /* Maximum address we can use for the control pages */ |
| 27 | /* Not more than 2GB */ |
Heiko Carstens | a1a392f | 2006-12-04 15:40:28 +0100 | [diff] [blame] | 28 | #define KEXEC_CONTROL_MEMORY_LIMIT (1UL<<31) |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 29 | |
Martin Schwidefsky | 7e01b5a | 2015-04-16 14:47:33 +0200 | [diff] [blame] | 30 | /* Allocate control page with GFP_DMA */ |
| 31 | #define KEXEC_CONTROL_MEMORY_GFP GFP_DMA |
| 32 | |
Michael Holzheu | 60a0c68 | 2011-10-30 15:16:40 +0100 | [diff] [blame] | 33 | /* Maximum address we can use for the crash control pages */ |
| 34 | #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT (-1UL) |
| 35 | |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 36 | /* Allocate one page for the pdp and the second for the code */ |
Huang Ying | 163f687 | 2008-08-15 00:40:22 -0700 | [diff] [blame] | 37 | #define KEXEC_CONTROL_PAGE_SIZE 4096 |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 38 | |
Michael Holzheu | dab7a7b | 2011-10-30 15:16:44 +0100 | [diff] [blame] | 39 | /* Alignment of crashkernel memory */ |
| 40 | #define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE |
| 41 | |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 42 | /* The native architecture */ |
| 43 | #define KEXEC_ARCH KEXEC_ARCH_S390 |
| 44 | |
akpm@osdl.org | bf20830 | 2006-01-09 20:51:45 -0800 | [diff] [blame] | 45 | /* Provide a dummy definition to avoid build failures. */ |
| 46 | static inline void crash_setup_regs(struct pt_regs *newregs, |
| 47 | struct pt_regs *oldregs) { } |
| 48 | |
Heiko Carstens | cf13f0e | 2005-06-25 14:58:11 -0700 | [diff] [blame] | 49 | #endif /*_S390_KEXEC_H */ |