On 19/08/2016:10:26:52 AM, AKASHI Takahiro wrote: > >From 740563e4a437f0d6ecf6e421c91433f9b8f19041 Mon Sep 17 00:00:00 2001 > From: AKASHI Takahiro <takahiro.akashi at linaro.org> > Date: Fri, 19 Aug 2016 09:57:52 +0900 > Subject: [PATCH] arm64: mark reserved memblock regions explicitly > > --- > arch/arm64/kernel/setup.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c > index 38eda13..38589b5 100644 > --- a/arch/arm64/kernel/setup.c > +++ b/arch/arm64/kernel/setup.c > @@ -205,10 +205,15 @@ static void __init request_standard_resources(void) > > for_each_memblock(memory, region) { > res = alloc_bootmem_low(sizeof(*res)); > - res->name = "System RAM"; > + if (memblock_is_nomap(region)) { > + res->name = "reserved"; > + res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; > + } else { > + res->name = "System RAM"; > + res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY; > + } > res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); > res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; > - res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY; > > request_resource(&iomem_resource, res); It will help kexec-tools to prevent copying of any unnecessary data. I think, then you also need to change phys_offset calculation in kexec-tools. That should be start of either of first "reserved" or "System RAM" block. ~Pratyush