* [PATCH 0/3] x86: make rsdp address accessible via boot params
@ 2017-11-28 9:43 Juergen Gross
2017-11-28 9:43 ` [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 9:43 UTC (permalink / raw)
To: linux-kernel, xen-devel, x86
Cc: boris.ostrovsky, hpa, tglx, mingo, corbet, rjw, lenb, linux-acpi,
Juergen Gross
In the non-EFI boot path the ACPI RSDP table is currently found via
either EBDA or by searching through low memory for the RSDP magic.
This requires the RSDP to be located in the first 1MB of physical
memory. Xen PVH guests, however, get the RSDP address via the start of
day information block.
In order to support an arbitrary RSDP address this patch series adds
the physical address of the RSDP to the boot params structure filled
by the boot loader. A kernel booted directly in PVH mode can save the
RSDP address in the boot params, while a kernel booted in PVH mode via
grub can rely on the RSDP address being specified by grub2 (which in
turn got the address via the start of day information block from Xen).
Juergen Gross (3):
x86/boot: add acpi rsdp address to setup_header
x86/acpi: take rsdp address for boot params if available
x86/xen: supply rsdp address in boot params for pvh guests
Documentation/x86/boot.txt | 19 +++++++++++++++++++
arch/x86/boot/header.S | 6 +++++-
arch/x86/include/uapi/asm/bootparam.h | 1 +
arch/x86/xen/enlighten_pvh.c | 2 ++
drivers/acpi/osl.c | 8 ++++++++
5 files changed, 35 insertions(+), 1 deletion(-)
--
2.12.3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header
2017-11-28 9:43 [PATCH 0/3] x86: make rsdp address accessible via boot params Juergen Gross
@ 2017-11-28 9:43 ` Juergen Gross
2017-11-28 10:07 ` [Xen-devel] " Roger Pau Monné
2017-11-28 9:43 ` [PATCH 2/3] x86/acpi: take rsdp address for boot params if available Juergen Gross
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 9:43 UTC (permalink / raw)
To: linux-kernel, xen-devel, x86
Cc: boris.ostrovsky, hpa, tglx, mingo, corbet, rjw, lenb, linux-acpi,
Juergen Gross
Xen PVH guests receive the address of the RSDP table from Xen. In order
to support booting a Xen PVH guest via grub2 using the standard x86
boot entry we need a way fro grub2 to pass the RSDP address to the
kernel.
For this purpose expand the struct setup_header to hold the physical
address of the RSDP address. Being zero means it isn't specified and
has to be located the legacy way (searching through low memory or
EBDA).
Signed-off-by: Juergen Gross <jgross@suse.com>
---
Documentation/x86/boot.txt | 19 +++++++++++++++++++
| 6 +++++-
arch/x86/include/uapi/asm/bootparam.h | 1 +
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index 5e9b826b5f62..a33c224797e4 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -61,6 +61,13 @@ Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields
to struct boot_params for loading bzImage and ramdisk
above 4G in 64bit.
+Protocol 2.13: (Kernel 3.14) Support 32- and 64-bit flags being set in
+ xloadflags to support booting a 64 bit kernel from 32 bit
+ EFI
+
+Protocol 2.14 (Kernel 4.16) Added acpi_rsdp_addr holding the physical
+ address of the ACPI RSDP table.
+
**** MEMORY LAYOUT
The traditional memory map for the kernel loader, used for Image or
@@ -197,6 +204,7 @@ Offset Proto Name Meaning
0258/8 2.10+ pref_address Preferred loading address
0260/4 2.10+ init_size Linear memory required during initialization
0264/4 2.11+ handover_offset Offset of handover entry point
+0268/8 2.14+ acpi_rsdp_addr Physical address of RSDP table
(1) For backwards compatibility, if the setup_sects field contains 0, the
real value is 4.
@@ -744,6 +752,17 @@ Offset/size: 0x264/4
See EFI HANDOVER PROTOCOL below for more details.
+Field name: acpi_rsdp_addr
+Type: write
+Offset/size: 0x268/8
+Protocol: 2.14+
+
+ This field can be set by the boot loader to tell the kernel the
+ physical address of the ACPI RSDP table.
+
+ A value of 0 indicates the kernel should fall back to the standard
+ methods to locate the RSDP (search in EBDA/low memory).
+
**** THE IMAGE CHECKSUM
--git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 850b8762e889..e7184127f309 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -300,7 +300,7 @@ _start:
# Part 2 of the header, from the old setup.S
.ascii "HdrS" # header signature
- .word 0x020d # header version number (>= 0x0105)
+ .word 0x020e # header version number (>= 0x0105)
# or else old loadlin-1.5 will fail)
.globl realmode_swtch
realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
@@ -558,6 +558,10 @@ pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr
init_size: .long INIT_SIZE # kernel initialization size
handover_offset: .long 0 # Filled in by build.c
+acpi_rsdp_addr: .quad 0 # 64-bit physical pointer to
+ # ACPI RSDP table, added with
+ # version 2.14
+
# End of setup header #####################################################
.section ".entrytext", "ax"
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
index afdd5ae0fcc4..5742e433e93e 100644
--- a/arch/x86/include/uapi/asm/bootparam.h
+++ b/arch/x86/include/uapi/asm/bootparam.h
@@ -85,6 +85,7 @@ struct setup_header {
__u64 pref_address;
__u32 init_size;
__u32 handover_offset;
+ __u64 acpi_rsdp_addr;
} __attribute__((packed));
struct sys_desc_table {
--
2.12.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] x86/acpi: take rsdp address for boot params if available
2017-11-28 9:43 [PATCH 0/3] x86: make rsdp address accessible via boot params Juergen Gross
2017-11-28 9:43 ` [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
@ 2017-11-28 9:43 ` Juergen Gross
2017-11-28 10:18 ` [Xen-devel] " Roger Pau Monné
2017-11-28 9:44 ` [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests Juergen Gross
2017-11-28 21:03 ` [PATCH 0/3] x86: make rsdp address accessible via boot params Rafael J. Wysocki
3 siblings, 1 reply; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 9:43 UTC (permalink / raw)
To: linux-kernel, xen-devel, x86
Cc: boris.ostrovsky, hpa, tglx, mingo, corbet, rjw, lenb, linux-acpi,
Juergen Gross
In case the rsdp address in struct boot_params is specified don't try
to find the table by searching, but take the address directly as set
by the boot loader.
Signed-off-by: Juergen Gross <jgross@suse.com>
---
drivers/acpi/osl.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 3bb46cb24a99..3b25e2ad7d75 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -45,6 +45,10 @@
#include <linux/uaccess.h>
#include <linux/io-64-nonatomic-lo-hi.h>
+#ifdef CONFIG_X86
+#include <asm/setup.h>
+#endif
+
#include "internal.h"
#define _COMPONENT ACPI_OS_SERVICES
@@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
if (acpi_rsdp)
return acpi_rsdp;
#endif
+#ifdef CONFIG_X86
+ if (boot_params.hdr.acpi_rsdp_addr)
+ return boot_params.hdr.acpi_rsdp_addr;
+#endif
if (efi_enabled(EFI_CONFIG_TABLES)) {
if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
--
2.12.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests
2017-11-28 9:43 [PATCH 0/3] x86: make rsdp address accessible via boot params Juergen Gross
2017-11-28 9:43 ` [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
2017-11-28 9:43 ` [PATCH 2/3] x86/acpi: take rsdp address for boot params if available Juergen Gross
@ 2017-11-28 9:44 ` Juergen Gross
2017-11-28 10:17 ` [Xen-devel] " Roger Pau Monné
2017-11-28 21:03 ` [PATCH 0/3] x86: make rsdp address accessible via boot params Rafael J. Wysocki
3 siblings, 1 reply; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 9:44 UTC (permalink / raw)
To: linux-kernel, xen-devel, x86
Cc: boris.ostrovsky, hpa, tglx, mingo, corbet, rjw, lenb, linux-acpi,
Juergen Gross
When booted via the special PVH entry save the RSDP address set in the
boot information block in struct boot_params. This will enable Xen to
locate the RSDP at an arbitrary address.
Signed-off-by: Juergen Gross <jgross@suse.com>
---
arch/x86/xen/enlighten_pvh.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 436c4f003e17..0175194f4236 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -71,6 +71,8 @@ static void __init init_pvh_bootparams(void)
*/
pvh_bootparams.hdr.version = 0x212;
pvh_bootparams.hdr.type_of_loader = (9 << 4) | 0; /* Xen loader */
+
+ pvh_bootparams.hdr.acpi_rsdp_addr = pvh_start_info.rsdp_paddr;
}
/*
--
2.12.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header
2017-11-28 9:43 ` [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
@ 2017-11-28 10:07 ` Roger Pau Monné
0 siblings, 0 replies; 12+ messages in thread
From: Roger Pau Monné @ 2017-11-28 10:07 UTC (permalink / raw)
To: Juergen Gross
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On Tue, Nov 28, 2017 at 10:43:58AM +0100, Juergen Gross wrote:
> Xen PVH guests receive the address of the RSDP table from Xen. In order
> to support booting a Xen PVH guest via grub2 using the standard x86
> boot entry we need a way fro grub2 to pass the RSDP address to the
> kernel.
>
> For this purpose expand the struct setup_header to hold the physical
> address of the RSDP address. Being zero means it isn't specified and
> has to be located the legacy way (searching through low memory or
> EBDA).
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Thanks, Roger.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests
2017-11-28 9:44 ` [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests Juergen Gross
@ 2017-11-28 10:17 ` Roger Pau Monné
2017-11-28 10:47 ` Juergen Gross
0 siblings, 1 reply; 12+ messages in thread
From: Roger Pau Monné @ 2017-11-28 10:17 UTC (permalink / raw)
To: Juergen Gross
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On Tue, Nov 28, 2017 at 10:44:00AM +0100, Juergen Gross wrote:
> When booted via the special PVH entry save the RSDP address set in the
> boot information block in struct boot_params. This will enable Xen to
> locate the RSDP at an arbitrary address.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> arch/x86/xen/enlighten_pvh.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
> index 436c4f003e17..0175194f4236 100644
> --- a/arch/x86/xen/enlighten_pvh.c
> +++ b/arch/x86/xen/enlighten_pvh.c
> @@ -71,6 +71,8 @@ static void __init init_pvh_bootparams(void)
> */
> pvh_bootparams.hdr.version = 0x212;
Shouldn't this be 0x20e, like it's set in patch 1?
Roger.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 2/3] x86/acpi: take rsdp address for boot params if available
2017-11-28 9:43 ` [PATCH 2/3] x86/acpi: take rsdp address for boot params if available Juergen Gross
@ 2017-11-28 10:18 ` Roger Pau Monné
2017-11-28 10:30 ` Juergen Gross
0 siblings, 1 reply; 12+ messages in thread
From: Roger Pau Monné @ 2017-11-28 10:18 UTC (permalink / raw)
To: Juergen Gross
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On Tue, Nov 28, 2017 at 10:43:59AM +0100, Juergen Gross wrote:
> In case the rsdp address in struct boot_params is specified don't try
> to find the table by searching, but take the address directly as set
> by the boot loader.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> drivers/acpi/osl.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 3bb46cb24a99..3b25e2ad7d75 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -45,6 +45,10 @@
> #include <linux/uaccess.h>
> #include <linux/io-64-nonatomic-lo-hi.h>
>
> +#ifdef CONFIG_X86
> +#include <asm/setup.h>
> +#endif
> +
> #include "internal.h"
>
> #define _COMPONENT ACPI_OS_SERVICES
> @@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
> if (acpi_rsdp)
> return acpi_rsdp;
> #endif
> +#ifdef CONFIG_X86
> + if (boot_params.hdr.acpi_rsdp_addr)
> + return boot_params.hdr.acpi_rsdp_addr;
> +#endif
I'm struggling to figure out how was PVH getting the RSDP previously,
because that should be removed now that it's in the zero-page.
Roger.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 2/3] x86/acpi: take rsdp address for boot params if available
2017-11-28 10:18 ` [Xen-devel] " Roger Pau Monné
@ 2017-11-28 10:30 ` Juergen Gross
2017-11-28 10:48 ` Roger Pau Monné
0 siblings, 1 reply; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 10:30 UTC (permalink / raw)
To: Roger Pau Monné
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On 28/11/17 11:18, Roger Pau Monné wrote:
> On Tue, Nov 28, 2017 at 10:43:59AM +0100, Juergen Gross wrote:
>> In case the rsdp address in struct boot_params is specified don't try
>> to find the table by searching, but take the address directly as set
>> by the boot loader.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> drivers/acpi/osl.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
>> index 3bb46cb24a99..3b25e2ad7d75 100644
>> --- a/drivers/acpi/osl.c
>> +++ b/drivers/acpi/osl.c
>> @@ -45,6 +45,10 @@
>> #include <linux/uaccess.h>
>> #include <linux/io-64-nonatomic-lo-hi.h>
>>
>> +#ifdef CONFIG_X86
>> +#include <asm/setup.h>
>> +#endif
>> +
>> #include "internal.h"
>>
>> #define _COMPONENT ACPI_OS_SERVICES
>> @@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
>> if (acpi_rsdp)
>> return acpi_rsdp;
>> #endif
>> +#ifdef CONFIG_X86
>> + if (boot_params.hdr.acpi_rsdp_addr)
>> + return boot_params.hdr.acpi_rsdp_addr;
>> +#endif
>
> I'm struggling to figure out how was PVH getting the RSDP previously,
> because that should be removed now that it's in the zero-page.
I don't think it should be removed, because this was the legacy case
(searching through memory). It was pure luck that Xen put it at the
right location.
Juergen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests
2017-11-28 10:17 ` [Xen-devel] " Roger Pau Monné
@ 2017-11-28 10:47 ` Juergen Gross
0 siblings, 0 replies; 12+ messages in thread
From: Juergen Gross @ 2017-11-28 10:47 UTC (permalink / raw)
To: Roger Pau Monné
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On 28/11/17 11:17, Roger Pau Monné wrote:
> On Tue, Nov 28, 2017 at 10:44:00AM +0100, Juergen Gross wrote:
>> When booted via the special PVH entry save the RSDP address set in the
>> boot information block in struct boot_params. This will enable Xen to
>> locate the RSDP at an arbitrary address.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> arch/x86/xen/enlighten_pvh.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
>> index 436c4f003e17..0175194f4236 100644
>> --- a/arch/x86/xen/enlighten_pvh.c
>> +++ b/arch/x86/xen/enlighten_pvh.c
>> @@ -71,6 +71,8 @@ static void __init init_pvh_bootparams(void)
>> */
>> pvh_bootparams.hdr.version = 0x212;
>
> Shouldn't this be 0x20e, like it's set in patch 1?
I think it was meant to be 0x20c. But setting it to 0x20e in this patch
seems to be a good idea.
In the end it doesn't really matter, as hdr.version is meant to be read
by the boot loader which is already history when this code is being
executed.
Juergen
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH 2/3] x86/acpi: take rsdp address for boot params if available
2017-11-28 10:30 ` Juergen Gross
@ 2017-11-28 10:48 ` Roger Pau Monné
0 siblings, 0 replies; 12+ messages in thread
From: Roger Pau Monné @ 2017-11-28 10:48 UTC (permalink / raw)
To: Juergen Gross
Cc: linux-kernel, xen-devel, x86, corbet, rjw, linux-acpi, mingo,
hpa, boris.ostrovsky, tglx, lenb
On Tue, Nov 28, 2017 at 11:30:15AM +0100, Juergen Gross wrote:
> On 28/11/17 11:18, Roger Pau Monné wrote:
> > On Tue, Nov 28, 2017 at 10:43:59AM +0100, Juergen Gross wrote:
> >> In case the rsdp address in struct boot_params is specified don't try
> >> to find the table by searching, but take the address directly as set
> >> by the boot loader.
> >>
> >> Signed-off-by: Juergen Gross <jgross@suse.com>
> >> ---
> >> drivers/acpi/osl.c | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >>
> >> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> >> index 3bb46cb24a99..3b25e2ad7d75 100644
> >> --- a/drivers/acpi/osl.c
> >> +++ b/drivers/acpi/osl.c
> >> @@ -45,6 +45,10 @@
> >> #include <linux/uaccess.h>
> >> #include <linux/io-64-nonatomic-lo-hi.h>
> >>
> >> +#ifdef CONFIG_X86
> >> +#include <asm/setup.h>
> >> +#endif
> >> +
> >> #include "internal.h"
> >>
> >> #define _COMPONENT ACPI_OS_SERVICES
> >> @@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
> >> if (acpi_rsdp)
> >> return acpi_rsdp;
> >> #endif
> >> +#ifdef CONFIG_X86
> >> + if (boot_params.hdr.acpi_rsdp_addr)
> >> + return boot_params.hdr.acpi_rsdp_addr;
> >> +#endif
> >
> > I'm struggling to figure out how was PVH getting the RSDP previously,
> > because that should be removed now that it's in the zero-page.
>
> I don't think it should be removed, because this was the legacy case
> (searching through memory). It was pure luck that Xen put it at the
> right location.
Oh, right. This is working out of pure luck then.
Thanks, Roger.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/3] x86: make rsdp address accessible via boot params
2017-11-28 9:43 [PATCH 0/3] x86: make rsdp address accessible via boot params Juergen Gross
` (2 preceding siblings ...)
2017-11-28 9:44 ` [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests Juergen Gross
@ 2017-11-28 21:03 ` Rafael J. Wysocki
2017-11-29 7:56 ` Juergen Gross
3 siblings, 1 reply; 12+ messages in thread
From: Rafael J. Wysocki @ 2017-11-28 21:03 UTC (permalink / raw)
To: Juergen Gross
Cc: Linux Kernel Mailing List, xen-devel, the arch/x86 maintainers,
Boris Ostrovsky, H. Peter Anvin, Thomas Gleixner, Ingo Molnar,
Jonathan Corbet, Rafael J. Wysocki, Len Brown,
ACPI Devel Maling List
On Tue, Nov 28, 2017 at 10:43 AM, Juergen Gross <jgross@suse.com> wrote:
> In the non-EFI boot path the ACPI RSDP table is currently found via
> either EBDA or by searching through low memory for the RSDP magic.
> This requires the RSDP to be located in the first 1MB of physical
> memory. Xen PVH guests, however, get the RSDP address via the start of
> day information block.
>
> In order to support an arbitrary RSDP address this patch series adds
> the physical address of the RSDP to the boot params structure filled
> by the boot loader. A kernel booted directly in PVH mode can save the
> RSDP address in the boot params, while a kernel booted in PVH mode via
> grub can rely on the RSDP address being specified by grub2 (which in
> turn got the address via the start of day information block from Xen).
>
> Juergen Gross (3):
> x86/boot: add acpi rsdp address to setup_header
> x86/acpi: take rsdp address for boot params if available
> x86/xen: supply rsdp address in boot params for pvh guests
>
> Documentation/x86/boot.txt | 19 +++++++++++++++++++
> arch/x86/boot/header.S | 6 +++++-
> arch/x86/include/uapi/asm/bootparam.h | 1 +
> arch/x86/xen/enlighten_pvh.c | 2 ++
> drivers/acpi/osl.c | 8 ++++++++
> 5 files changed, 35 insertions(+), 1 deletion(-)
>
> --
Is this going to work with all existing setups?
Thanks,
Rafael
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/3] x86: make rsdp address accessible via boot params
2017-11-28 21:03 ` [PATCH 0/3] x86: make rsdp address accessible via boot params Rafael J. Wysocki
@ 2017-11-29 7:56 ` Juergen Gross
0 siblings, 0 replies; 12+ messages in thread
From: Juergen Gross @ 2017-11-29 7:56 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Linux Kernel Mailing List, xen-devel, the arch/x86 maintainers,
Boris Ostrovsky, H. Peter Anvin, Thomas Gleixner, Ingo Molnar,
Jonathan Corbet, Rafael J. Wysocki, Len Brown,
ACPI Devel Maling List
On 28/11/17 22:03, Rafael J. Wysocki wrote:
> On Tue, Nov 28, 2017 at 10:43 AM, Juergen Gross <jgross@suse.com> wrote:
>> In the non-EFI boot path the ACPI RSDP table is currently found via
>> either EBDA or by searching through low memory for the RSDP magic.
>> This requires the RSDP to be located in the first 1MB of physical
>> memory. Xen PVH guests, however, get the RSDP address via the start of
>> day information block.
>>
>> In order to support an arbitrary RSDP address this patch series adds
>> the physical address of the RSDP to the boot params structure filled
>> by the boot loader. A kernel booted directly in PVH mode can save the
>> RSDP address in the boot params, while a kernel booted in PVH mode via
>> grub can rely on the RSDP address being specified by grub2 (which in
>> turn got the address via the start of day information block from Xen).
>>
>> Juergen Gross (3):
>> x86/boot: add acpi rsdp address to setup_header
>> x86/acpi: take rsdp address for boot params if available
>> x86/xen: supply rsdp address in boot params for pvh guests
>>
>> Documentation/x86/boot.txt | 19 +++++++++++++++++++
>> arch/x86/boot/header.S | 6 +++++-
>> arch/x86/include/uapi/asm/bootparam.h | 1 +
>> arch/x86/xen/enlighten_pvh.c | 2 ++
>> drivers/acpi/osl.c | 8 ++++++++
>> 5 files changed, 35 insertions(+), 1 deletion(-)
>>
>> --
>
> Is this going to work with all existing setups?
I think so, yes.
In EFI environment this doesn't matter, direct PVH boot is working,
grub2 support is optional (without grub2 support things are working as
today).
I'm already writing grub2 patches to support booting in PVH environment.
Those were the reason I need this patch set, as otherwise Xen would have
to put the RSDP into low memory which is limiting the guest's ability to
use large page mappings for all its memory.
Additionally something like this is needed for PVH dom0 support anyway.
Juergen
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-11-29 7:56 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-28 9:43 [PATCH 0/3] x86: make rsdp address accessible via boot params Juergen Gross
2017-11-28 9:43 ` [PATCH 1/3] x86/boot: add acpi rsdp address to setup_header Juergen Gross
2017-11-28 10:07 ` [Xen-devel] " Roger Pau Monné
2017-11-28 9:43 ` [PATCH 2/3] x86/acpi: take rsdp address for boot params if available Juergen Gross
2017-11-28 10:18 ` [Xen-devel] " Roger Pau Monné
2017-11-28 10:30 ` Juergen Gross
2017-11-28 10:48 ` Roger Pau Monné
2017-11-28 9:44 ` [PATCH 3/3] x86/xen: supply rsdp address in boot params for pvh guests Juergen Gross
2017-11-28 10:17 ` [Xen-devel] " Roger Pau Monné
2017-11-28 10:47 ` Juergen Gross
2017-11-28 21:03 ` [PATCH 0/3] x86: make rsdp address accessible via boot params Rafael J. Wysocki
2017-11-29 7:56 ` Juergen Gross
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).