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" <m...@redhat.com> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> Cc: Ben Warren <b...@skyportsystems.com> Cc: Dongjiu Geng <gengdong...@huawei.com> Cc: Igor Mammedov <imamm...@redhat.com> Cc: Shannon Zhao <zhaoshengl...@huawei.com> Cc: Stefan Berger <stef...@linux.vnet.ibm.com> Cc: Xiao Guangrong <guangrong.x...@linux.intel.com> Signed-off-by: Laszlo Ersek <ler...@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, -- 2.9.3