[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 08/11] hw/arm/virt-acpi-build: Generate FACS tab
From: |
Shannon Zhao |
Subject: |
[Qemu-devel] [RFC PATCH 08/11] hw/arm/virt-acpi-build: Generate FACS table and update ACPI headers |
Date: |
Sat, 24 Jan 2015 17:21:17 +0800 |
FACS table is created as a mockup, as with the Hardware Reduced bit
set it will not be used.
Update the header definitions for FACS taking into account the new
additions of ACPI v5.1 in `include/hw/acpi/acpi-defs.h`
Signed-off-by: Shannon Zhao <address@hidden>
---
hw/arm/virt-acpi-build.c | 4 ++++
include/hw/acpi/acpi-defs.h | 28 +++++++++++++++++++++-------
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index e3c708d..de1f307 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -250,6 +250,10 @@ build_fadt(GArray *table_data, GArray *linker, uint64_t
facs, uint64_t dsdt)
static void
build_facs(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
{
+ AcpiFacsDescriptorRev5_1 *facs = acpi_data_push(table_data, sizeof *facs);
+ memcpy(&facs->signature, "FACS", sizeof(facs->signature));
+ facs->length = cpu_to_le32(sizeof(*facs));
+ facs->version = 0x02;
}
/* DSDT */
diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h
index c1255fa..91b3520 100644
--- a/include/hw/acpi/acpi-defs.h
+++ b/include/hw/acpi/acpi-defs.h
@@ -196,20 +196,34 @@ struct AcpiRsdtDescriptorRev1
typedef struct AcpiRsdtDescriptorRev1 AcpiRsdtDescriptorRev1;
/*
- * ACPI 1.0 Firmware ACPI Control Structure (FACS)
+ * ACPI Firmware ACPI Control Structure (FACS)
*/
+#define ACPI_FACS_COMMON_DEF /* FACS common definition */ \
+ uint32_t signature; /* ACPI Signature */ \
+ uint32_t length; /* Length of structure, in bytes */ \
+ uint32_t hardware_signature; /* Hardware configuration signature */ \
+ uint32_t firmware_waking_vector; /* ACPI OS waking vector */ \
+ uint32_t global_lock; /* Global Lock */ \
+ uint32_t flags;
+
struct AcpiFacsDescriptorRev1
{
- uint32_t signature; /* ACPI Signature */
- uint32_t length; /* Length of structure, in bytes */
- uint32_t hardware_signature; /* Hardware configuration signature */
- uint32_t firmware_waking_vector; /* ACPI OS waking vector */
- uint32_t global_lock; /* Global Lock */
- uint32_t flags;
+ ACPI_FACS_COMMON_DEF
uint8_t resverved3 [40]; /* Reserved - must be zero */
} QEMU_PACKED;
typedef struct AcpiFacsDescriptorRev1 AcpiFacsDescriptorRev1;
+struct AcpiFacsDescriptorRev5_1 {
+ ACPI_FACS_COMMON_DEF
+ /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */
+ uint64_t xfirmware_waking_vector;
+ uint8_t version; /* Version of this table (ACPI 2.0+) */
+ uint8_t reserved[3]; /* Reserved, must be zero */
+ uint32_t ospm_flags; /* Flags to be set by OSPM (ACPI 4.0) */
+ uint8_t reserved1[24]; /* Reserved, must be zero */
+} QEMU_PACKED;
+typedef struct AcpiFacsDescriptorRev5_1 AcpiFacsDescriptorRev5_1;
+
/*
* Differentiated System Description Table (DSDT)
*/
--
1.7.1
- [Qemu-devel] [RFC PATCH 09/11] hw/acpi/acpi-build-utils: Add acpi_fixed_memory32() and acpi_extended_irq(), (continued)
- [Qemu-devel] [RFC PATCH 09/11] hw/acpi/acpi-build-utils: Add acpi_fixed_memory32() and acpi_extended_irq(), Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 04/11] hw/arm/virt-acpi-build: Generate XSDT table and add a build_header function, Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 10/11] hw/arm/virt-acpi-build: Generation of DSDT table for virt devices, Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 08/11] hw/arm/virt-acpi-build: Generate FACS table and update ACPI headers,
Shannon Zhao <=
- [Qemu-devel] [RFC PATCH 11/11] hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables, Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 03/11] hw/arm/virt-acpi-build: Generate RSDP table, Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 01/11] hw/i386: Move ACPI header definitions in an arch-independent location, Shannon Zhao, 2015/01/24
- [Qemu-devel] [RFC PATCH 07/11] hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers, Shannon Zhao, 2015/01/24