|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 15/17] hvmloader: Set MCFG in ACPI table
On Fri, Mar 13, 2026 at 04:35:05PM +0000, Thierry Escande wrote:
> This patch extends hvmloader_acpi_build_tables() to detect if MMCONFIG
> is available by obtaining its base address and size from the hypercall
> HVMOP_get_ecam_space and sets the flag ACPI_HAS_MCFG in the ACPI config
> if needed.
>
> This also sets the MMCONFIG area in E820 map using the same method.
>
> Signed-off-by: Thierry Escande <thierry.escande@xxxxxxxxxx>
> ---
> tools/firmware/hvmloader/e820.c | 11 +++++++++++
> tools/firmware/hvmloader/util.c | 9 +++++++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/tools/firmware/hvmloader/e820.c b/tools/firmware/hvmloader/e820.c
> index 86d39544e8..ff5c270f57 100644
> --- a/tools/firmware/hvmloader/e820.c
> +++ b/tools/firmware/hvmloader/e820.c
> @@ -158,6 +158,8 @@ int build_e820_table(struct e820entry *e820,
> unsigned long acpi_mem_end = acpi_enabled ?
> ACPI_MEMORY_DYNAMIC_START + (acpi_pages_allocated() << PAGE_SHIFT) :
> RESERVED_MEMBASE;
> + uint64_t mmconfig_addr;
> + uint32_t mmconfig_size;
>
> if ( !lowmem_reserved_base )
> lowmem_reserved_base = 0xA0000;
> @@ -260,6 +262,15 @@ int build_e820_table(struct e820entry *e820,
> nr++;
> }
>
> + /* mark MMCONFIG area */
> + if ( ! hvm_get_ecam_space(&mmconfig_addr, &mmconfig_size) )
^ extra space
However, having to query the hypervisor for something that has been
set by hvmloader itself seems very inefficient. Just store the values
in global variables so they can be consumed from here?
Same for the usage below.
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |