summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/AcpiPlatformDxe
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2021-05-26 22:14:12 +0200
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-06-04 16:01:50 +0000
commit747b1ef72543c321c386198641a29de7f8537520 (patch)
tree70139060ecf2cc98a0bbb6b319482e7f83fa89a3 /OvmfPkg/AcpiPlatformDxe
parent6d1e56e71567303435e0fb3173dacd0ff4859efe (diff)
downloadedk2-747b1ef72543c321c386198641a29de7f8537520.tar.gz
edk2-747b1ef72543c321c386198641a29de7f8537520.tar.bz2
edk2-747b1ef72543c321c386198641a29de7f8537520.zip
OvmfPkg/AcpiPlatformDxe: move "QemuLoader.h" to IndustryStandard
Turn the "QemuLoader.h" header into a public (IndustryStandard) one. The QEMU ACPI linker-loader interface is stable between QEMU and multiple guest firmwares. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2122 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20210526201446.12554-10-lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Diffstat (limited to 'OvmfPkg/AcpiPlatformDxe')
-rw-r--r--OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf1
-rw-r--r--OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c2
-rw-r--r--OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf1
-rw-r--r--OvmfPkg/AcpiPlatformDxe/QemuLoader.h106
4 files changed, 1 insertions, 109 deletions
diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
index 4522d7f611..3daeb2ee42 100644
--- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -28,7 +28,6 @@
PciDecoding.c
Qemu.c
QemuFwCfgAcpi.c
- QemuLoader.h
Xen.c
[Packages]
diff --git a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
index c07b84a213..621e69410d 100644
--- a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
+++ b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c
@@ -9,6 +9,7 @@
**/
#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/QemuLoader.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DxeServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
@@ -18,7 +19,6 @@
#include <Library/QemuFwCfgS3Lib.h>
#include "AcpiPlatform.h"
-#include "QemuLoader.h"
//
// The user structure for the ordered collection that will track the fw_cfg
diff --git a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf
index cc24f35bd8..48c8269a8b 100644
--- a/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf
+++ b/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf
@@ -27,7 +27,6 @@
PciDecoding.c
QemuFwCfgAcpi.c
QemuFwCfgAcpiPlatform.c
- QemuLoader.h
[Packages]
MdeModulePkg/MdeModulePkg.dec
diff --git a/OvmfPkg/AcpiPlatformDxe/QemuLoader.h b/OvmfPkg/AcpiPlatformDxe/QemuLoader.h
deleted file mode 100644
index 5782a23c43..0000000000
--- a/OvmfPkg/AcpiPlatformDxe/QemuLoader.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/** @file
- Command structures for the QEMU FwCfg table loader interface.
-
- Copyright (C) 2014, Red Hat, Inc.
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef QEMU_LOADER_H_
-#define QEMU_LOADER_H_
-
-#include <Base.h>
-#include <IndustryStandard/QemuFwCfg.h>
-
-//
-// The types and the documentation reflects the SeaBIOS interface.
-//
-#define QEMU_LOADER_FNAME_SIZE QEMU_FW_CFG_FNAME_SIZE
-
-typedef enum {
- QemuLoaderCmdAllocate = 1,
- QemuLoaderCmdAddPointer,
- QemuLoaderCmdAddChecksum,
- QemuLoaderCmdWritePointer,
-} QEMU_LOADER_COMMAND_TYPE;
-
-typedef enum {
- QemuLoaderAllocHigh = 1,
- QemuLoaderAllocFSeg
-} QEMU_LOADER_ALLOC_ZONE;
-
-#pragma pack (1)
-//
-// QemuLoaderCmdAllocate: download the fw_cfg file named File, to a buffer
-// allocated in the zone specified by Zone, aligned at a multiple of Alignment.
-//
-typedef struct {
- UINT8 File[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT32 Alignment; // power of two
- UINT8 Zone; // QEMU_LOADER_ALLOC_ZONE values
-} QEMU_LOADER_ALLOCATE;
-
-//
-// QemuLoaderCmdAddPointer: the bytes at
-// [PointerOffset..PointerOffset+PointerSize) in the file PointerFile contain a
-// relative pointer (an offset) into PointeeFile. Increment the relative
-// pointer's value by the base address of where PointeeFile's contents have
-// been placed (when QemuLoaderCmdAllocate has been executed for PointeeFile).
-//
-typedef struct {
- UINT8 PointerFile[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT8 PointeeFile[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT32 PointerOffset;
- UINT8 PointerSize; // one of 1, 2, 4, 8
-} QEMU_LOADER_ADD_POINTER;
-
-//
-// QemuLoaderCmdAddChecksum: calculate the UINT8 checksum (as per
-// CalculateChecksum8()) of the range [Start..Start+Length) in File. Store the
-// UINT8 result at ResultOffset in the same File.
-//
-typedef struct {
- UINT8 File[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT32 ResultOffset;
- UINT32 Start;
- UINT32 Length;
-} QEMU_LOADER_ADD_CHECKSUM;
-
-//
-// QemuLoaderCmdWritePointer: the bytes at
-// [PointerOffset..PointerOffset+PointerSize) in the writeable fw_cfg file
-// PointerFile are to receive the absolute address of PointeeFile, as allocated
-// and downloaded by the firmware, incremented by the value of PointeeOffset.
-// Store the sum of (a) the base address of where PointeeFile's contents have
-// been placed (when QemuLoaderCmdAllocate has been executed for PointeeFile)
-// and (b) PointeeOffset, to this portion of PointerFile.
-//
-// This command is similar to QemuLoaderCmdAddPointer; the difference is that
-// the "pointer to patch" does not exist in guest-physical address space, only
-// in "fw_cfg file space". In addition, the "pointer to patch" is not
-// initialized by QEMU in-place with a possibly nonzero offset value: the
-// relative offset into PointeeFile comes from the explicit PointeeOffset
-// field.
-//
-typedef struct {
- UINT8 PointerFile[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT8 PointeeFile[QEMU_LOADER_FNAME_SIZE]; // NUL-terminated
- UINT32 PointerOffset;
- UINT32 PointeeOffset;
- UINT8 PointerSize; // one of 1, 2, 4, 8
-} QEMU_LOADER_WRITE_POINTER;
-
-typedef struct {
- UINT32 Type; // QEMU_LOADER_COMMAND_TYPE values
- union {
- QEMU_LOADER_ALLOCATE Allocate;
- QEMU_LOADER_ADD_POINTER AddPointer;
- QEMU_LOADER_ADD_CHECKSUM AddChecksum;
- QEMU_LOADER_WRITE_POINTER WritePointer;
- UINT8 Padding[124];
- } Command;
-} QEMU_LOADER_ENTRY;
-#pragma pack ()
-
-#endif