[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] optionrom/pvh: scan entire RSDP Area
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH] optionrom/pvh: scan entire RSDP Area |
Date: |
Wed, 4 Mar 2020 13:20:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 04/03/20 09:55, Stefano Garzarella wrote:
> CCing Paolo
>
> On Tue, Mar 03, 2020 at 02:52:47AM -0800, Joe Richey wrote:
>> From: Joe Richey <address@hidden>
>>
>> Right now the PVH option rom scans for the RSDP from 0xE0000 to
>> 0xE1FFF. This is probobly a typo, it should scan from 0xE0000 to
>> 0xFFFFF.
>>
>> This is actually an issue on some QEMU versions/machines. For example,
>> when I run QEMU the RSDP is placed at 0xf5ad0 which will not be picked
>> up by the current implementation.
>>
>> This bug still allows a Linux guest to boot (in most configurations) as
>> the kernel will just scan for the RSDP if one isn't provided.
>>
>> Signed-off-by: Joe Richey <address@hidden>
>> ---
>> pc-bios/optionrom/pvh_main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/pc-bios/optionrom/pvh_main.c b/pc-bios/optionrom/pvh_main.c
>> index a015e1bf22..28e79d7fc4 100644
>> --- a/pc-bios/optionrom/pvh_main.c
>> +++ b/pc-bios/optionrom/pvh_main.c
>> @@ -29,7 +29,7 @@ asm (".code32"); /* this code will be executed in
>> protected mode */
>>
>> #define RSDP_SIGNATURE 0x2052545020445352LL /* "RSD PTR " */
>> #define RSDP_AREA_ADDR 0x000E0000
>> -#define RSDP_AREA_SIZE 2048
>> +#define RSDP_AREA_SIZE 0x00020000
>> #define EBDA_BASE_ADDR 0x0000040E
>> #define EBDA_SIZE 1024
>>
>
> The patch LGTM!
>
> When I wrote this code I followed [1], where it is written that it can
> be found in the "memory region from 0x000E0000 to 0x000FFFFF", so it
> should be a typo.
>
> Thanks for fixing it!
>
>
> Fixes: 2785dc7b17 ("optionrom: add new PVH option rom")
> Reviewed-by: Stefano Garzarella <address@hidden>
>
>
> [1] https://wiki.osdev.org/RSDP#Detecting_the_RSDP
>
Queued, thanks for both the fix and the Cc.
Paolo