1 /* 2 * Copyright 2010 Tilera Corporation. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation, version 2. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 * NON INFRINGEMENT. See the GNU General Public License for 12 * more details. 13 * 14 * based on kexec.h from other architectures in linux-2.6.18 15 */ 16 17 #ifndef _ASM_TILE_KEXEC_H 18 #define _ASM_TILE_KEXEC_H 19 20 #include <asm/page.h> 21 22 /* Maximum physical address we can use pages from. */ 23 #define KEXEC_SOURCE_MEMORY_LIMIT TASK_SIZE 24 /* Maximum address we can reach in physical address mode. */ 25 #define KEXEC_DESTINATION_MEMORY_LIMIT TASK_SIZE 26 /* Maximum address we can use for the control code buffer. */ 27 #define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE 28 29 #define KEXEC_CONTROL_PAGE_SIZE PAGE_SIZE 30 31 /* 32 * We don't bother to provide a unique identifier, since we can only 33 * reboot with a single type of kernel image anyway. 34 */ 35 #define KEXEC_ARCH KEXEC_ARCH_DEFAULT 36 37 /* Use the tile override for the page allocator. */ 38 struct page *kimage_alloc_pages_arch(gfp_t gfp_mask, unsigned int order); 39 #define kimage_alloc_pages_arch kimage_alloc_pages_arch 40 41 #define MAX_NOTE_BYTES 1024 42 43 /* Defined in arch/tile/kernel/relocate_kernel.S */ 44 extern const unsigned char relocate_new_kernel[]; 45 extern const unsigned long relocate_new_kernel_size; 46 extern void relocate_new_kernel_end(void); 47 48 /* Provide a dummy definition to avoid build failures. */ crash_setup_regs(struct pt_regs * n,struct pt_regs * o)49static inline void crash_setup_regs(struct pt_regs *n, struct pt_regs *o) 50 { 51 } 52 53 #endif /* _ASM_TILE_KEXEC_H */ 54