diff options
author | Hari Bathini <hbathini@linux.ibm.com> | 2019-09-11 20:27:39 +0530 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-09-14 00:04:46 +1000 |
commit | 7dee93a9a8808b3d8595e1cc79ccb8b1a7bc7a77 (patch) | |
tree | d1771d9e4267150a0a7bfbaa71a278ad2c2fd817 /arch/powerpc/include | |
parent | becd91d9c5467160984a0380df72fdf71fee82f6 (diff) | |
download | linux-stable-7dee93a9a8808b3d8595e1cc79ccb8b1a7bc7a77.tar.gz linux-stable-7dee93a9a8808b3d8595e1cc79ccb8b1a7bc7a77.tar.bz2 linux-stable-7dee93a9a8808b3d8595e1cc79ccb8b1a7bc7a77.zip |
powerpc/fadump: support holes in kernel boot memory area
With support to copy multiple kernel boot memory regions owing to copy
size limitation, also handle holes in the memory area to be preserved.
Support as many as 128 kernel boot memory regions. This allows having
an adequate FADump capture kernel size for different scenarios.
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/156821385448.5656.6124791213910877759.stgit@hbathini.in.ibm.com
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/fadump-internal.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/fadump-internal.h b/arch/powerpc/include/asm/fadump-internal.h index aec1515ac8f8..c814a2b55389 100644 --- a/arch/powerpc/include/asm/fadump-internal.h +++ b/arch/powerpc/include/asm/fadump-internal.h @@ -9,6 +9,9 @@ #ifndef _ASM_POWERPC_FADUMP_INTERNAL_H #define _ASM_POWERPC_FADUMP_INTERNAL_H +/* Maximum number of memory regions kernel supports */ +#define FADUMP_MAX_MEM_REGS 128 + #ifndef CONFIG_PRESERVE_FA_DUMP /* The upper limit percentage for user specified boot memory size (25%) */ @@ -88,11 +91,20 @@ struct fw_dump { unsigned long boot_memory_size; u64 boot_mem_dest_addr; + u64 boot_mem_addr[FADUMP_MAX_MEM_REGS]; + u64 boot_mem_sz[FADUMP_MAX_MEM_REGS]; + u64 boot_mem_top; + u64 boot_mem_regs_cnt; unsigned long fadumphdr_addr; unsigned long cpu_notes_buf_vaddr; unsigned long cpu_notes_buf_size; + /* + * Maximum size supported by firmware to copy from source to + * destination address per entry. + */ + u64 max_copy_size; u64 kernel_metadata; int ibm_configure_kernel_dump; |