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 <[email protected]>:
> 
>  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 <[email protected]>
> ---
>  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.

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to