Using this allocation zone permits the guest firmware to allocate the blob being downloaded anywhere in the 64-bit address space. QEMU code that generates ADD_POINTER commands with @src_file set to such a blob is responsible for using @dst_patched_offset_size=8.
Cc: "Michael S. Tsirkin" mst@redhat.com Cc: Ard Biesheuvel ard.biesheuvel@linaro.org Cc: Ben Warren ben@skyportsystems.com Cc: Dongjiu Geng gengdongjiu@huawei.com Cc: Igor Mammedov imammedo@redhat.com Cc: Shannon Zhao zhaoshenglong@huawei.com Cc: Stefan Berger stefanb@linux.vnet.ibm.com Cc: Xiao Guangrong guangrong.xiao@linux.intel.com Signed-off-by: Laszlo Ersek lersek@redhat.com --- include/hw/acpi/bios-linker-loader.h | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/include/hw/acpi/bios-linker-loader.h b/include/hw/acpi/bios-linker-loader.h index 5202fd14977d..621de7bd98e8 100644 --- a/include/hw/acpi/bios-linker-loader.h +++ b/include/hw/acpi/bios-linker-loader.h @@ -11,10 +11,13 @@ typedef enum BIOSLinkerLoaderAllocZone { /* request blob allocation in 32-bit memory */ BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH = 0x1,
/* request blob allocation in FSEG zone (useful for the RSDP ACPI table) */ BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG = 0x2, + + /* request blob allocation in 64-bit memory */ + BIOS_LINKER_LOADER_ALLOC_ZONE_64BIT = 0x3, } BIOSLinkerLoaderAllocZone;
typedef enum BIOSLinkerLoaderAllocContent { /* the blob may or may not contain ACPI tables */ BIOS_LINKER_LOADER_ALLOC_CONTENT_MIXED = 0x00,