[PATCH] kdump: pass e820 reserved region to 2nd kernel via e820 table or setup_data
WANG Chao
chaowang at redhat.com
Mon Apr 28 06:29:34 PDT 2014
On 04/28/14 at 03:21pm, WANG Chao wrote:
> e820 reserved region could be useful in 2nd kernel.
>
> For example, PCI mmconf (extended mode) requires reserved region
> otherwise it falls back to legacy mode. The following log is from Cliff
> Wickman <cpw at sgi.com>:
>
> PCI: MMCONFIG for domain 1003 [bus 3f-3f] at [mem 0xff0ff00000-0xff0fffffff] (base 0xff0c000000)
> [Firmware Bug]: PCI: MMCONFIG at [mem 0x80000000-0x80cfffff] not reserved in ACPI motherboard resources
> PCI: not using MMCONFIG
>
> PCI devices on segment 1 (>0) can't fall back to legacy mode, thus
> kernel probing fails and device can't be found.
>
> We don't pass reserved region because these regions could be too much
> and eat up our very limited kernel command line resource in
> memmap=exactmap case.
>
> However now we use e820 map and setup_data to pass memory map to 2nd
> kernel and the number of reserved regions should not be a problem any
> more.
>
> Signed-off-by: WANG Chao <chaowang at redhat.com>
> ---
> kexec/arch/i386/crashdump-x86.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
> index 4a1491b..321ed3d 100644
> --- a/kexec/arch/i386/crashdump-x86.c
> +++ b/kexec/arch/i386/crashdump-x86.c
> @@ -300,6 +300,9 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges,
> type = RANGE_ACPI;
> } else if(memcmp(str,"ACPI Non-volatile Storage\n",26) == 0 ) {
> type = RANGE_ACPI_NVS;
> + } else if(memcmp(str,"reserved\n",9) == 0 ) {
> + type = RANGE_RANGE;
This is wrong. I've resend the correct one.
More information about the kexec
mailing list