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
This commit is contained in:
@@ -42,7 +42,13 @@ static void rtas_fadump_update_config(struct fw_dump *fadump_conf,
|
||||
static void rtas_fadump_get_config(struct fw_dump *fadump_conf,
|
||||
const struct rtas_fadump_mem_struct *fdm)
|
||||
{
|
||||
fadump_conf->boot_memory_size = be64_to_cpu(fdm->rmr_region.source_len);
|
||||
fadump_conf->boot_mem_addr[0] =
|
||||
be64_to_cpu(fdm->rmr_region.source_address);
|
||||
fadump_conf->boot_mem_sz[0] = be64_to_cpu(fdm->rmr_region.source_len);
|
||||
fadump_conf->boot_memory_size = fadump_conf->boot_mem_sz[0];
|
||||
|
||||
fadump_conf->boot_mem_top = fadump_conf->boot_memory_size;
|
||||
fadump_conf->boot_mem_regs_cnt = 1;
|
||||
|
||||
/*
|
||||
* Start address of reserve dump area (permanent reservation) for
|
||||
@@ -499,6 +505,9 @@ void __init rtas_fadump_dt_scan(struct fw_dump *fadump_conf, u64 node)
|
||||
fadump_conf->ops = &rtas_fadump_ops;
|
||||
fadump_conf->fadump_supported = 1;
|
||||
|
||||
/* Firmware supports 64-bit value for size, align it to pagesize. */
|
||||
fadump_conf->max_copy_size = _ALIGN_DOWN(U64_MAX, PAGE_SIZE);
|
||||
|
||||
/*
|
||||
* The 'ibm,kernel-dump' rtas node is present only if there is
|
||||
* dump data waiting for us.
|
||||
|
Reference in New Issue
Block a user