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.