diff options
Diffstat (limited to 'arch/powerpc/include/asm/kexec.h')
| -rw-r--r-- | arch/powerpc/include/asm/kexec.h | 27 | 
1 files changed, 24 insertions, 3 deletions
| diff --git a/arch/powerpc/include/asm/kexec.h b/arch/powerpc/include/asm/kexec.h index a46f5f45570c..25668bc8cb2a 100644 --- a/arch/powerpc/include/asm/kexec.h +++ b/arch/powerpc/include/asm/kexec.h @@ -53,7 +53,7 @@  typedef void (*crash_shutdown_t)(void); -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE  /*   * This function is responsible for capturing register states if coming @@ -91,7 +91,28 @@ static inline bool kdump_in_progress(void)  	return crashing_cpu >= 0;  } -#else /* !CONFIG_KEXEC */ +#ifdef CONFIG_KEXEC_FILE +extern struct kexec_file_ops kexec_elf64_ops; + +#ifdef CONFIG_IMA_KEXEC +#define ARCH_HAS_KIMAGE_ARCH + +struct kimage_arch { +	phys_addr_t ima_buffer_addr; +	size_t ima_buffer_size; +}; +#endif + +int setup_purgatory(struct kimage *image, const void *slave_code, +		    const void *fdt, unsigned long kernel_load_addr, +		    unsigned long fdt_load_addr); +int setup_new_fdt(const struct kimage *image, void *fdt, +		  unsigned long initrd_load_addr, unsigned long initrd_len, +		  const char *cmdline); +int delete_fdt_mem_rsv(void *fdt, unsigned long start, unsigned long size); +#endif /* CONFIG_KEXEC_FILE */ + +#else /* !CONFIG_KEXEC_CORE */  static inline void crash_kexec_secondary(struct pt_regs *regs) { }  static inline int overlaps_crashkernel(unsigned long start, unsigned long size) @@ -116,7 +137,7 @@ static inline bool kdump_in_progress(void)  	return false;  } -#endif /* CONFIG_KEXEC */ +#endif /* CONFIG_KEXEC_CORE */  #endif /* ! __ASSEMBLY__ */  #endif /* __KERNEL__ */  #endif /* _ASM_POWERPC_KEXEC_H */ |