All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>,
	Sergio Lopez <slp@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <rth@twiddle.net>
Subject: [PATCH v2 05/13] acpi: move acpi_init_common_fadt_data to acpi-common.c
Date: Tue,  5 May 2020 15:42:57 +0200	[thread overview]
Message-ID: <20200505134305.22666-6-kraxel@redhat.com> (raw)
In-Reply-To: <20200505134305.22666-1-kraxel@redhat.com>

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/i386/acpi-common.h |  5 ++++-
 hw/i386/acpi-build.c  | 43 +------------------------------------------
 hw/i386/acpi-common.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 43 deletions(-)

diff --git a/hw/i386/acpi-common.h b/hw/i386/acpi-common.h
index 583c320bbe7d..5788a13da9ca 100644
--- a/hw/i386/acpi-common.h
+++ b/hw/i386/acpi-common.h
@@ -1,7 +1,8 @@
 #ifndef HW_I386_ACPI_COMMON_H
 #define HW_I386_ACPI_COMMON_H
+
+#include "include/hw/acpi/acpi-defs.h"
 #include "include/hw/acpi/acpi_dev_interface.h"
-
 #include "include/hw/acpi/bios-linker-loader.h"
 #include "include/hw/i386/x86.h"
 
@@ -12,5 +13,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
                      X86MachineState *x86ms, AcpiDeviceIf *adev,
                      bool has_pci);
 void acpi_build_facs(GArray *table_data);
+void acpi_init_common_fadt_data(MachineState *ms, Object *o,
+                                AcpiFadtData *data);
 
 #endif
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index a69b85a266e7..d1f14394734e 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -132,47 +132,6 @@ const struct AcpiGenericAddress x86_nvdimm_acpi_dsmio = {
     .bit_width = NVDIMM_ACPI_IO_LEN << 3
 };
 
-static void init_common_fadt_data(MachineState *ms, Object *o,
-                                  AcpiFadtData *data)
-{
-    uint32_t io = object_property_get_uint(o, ACPI_PM_PROP_PM_IO_BASE, NULL);
-    AmlAddressSpace as = AML_AS_SYSTEM_IO;
-    AcpiFadtData fadt = {
-        .rev = 3,
-        .flags =
-            (1 << ACPI_FADT_F_WBINVD) |
-            (1 << ACPI_FADT_F_PROC_C1) |
-            (1 << ACPI_FADT_F_SLP_BUTTON) |
-            (1 << ACPI_FADT_F_RTC_S4) |
-            (1 << ACPI_FADT_F_USE_PLATFORM_CLOCK) |
-            /* APIC destination mode ("Flat Logical") has an upper limit of 8
-             * CPUs for more than 8 CPUs, "Clustered Logical" mode has to be
-             * used
-             */
-            ((ms->smp.max_cpus > 8) ?
-                        (1 << ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL) : 0),
-        .int_model = 1 /* Multiple APIC */,
-        .rtc_century = RTC_CENTURY,
-        .plvl2_lat = 0xfff /* C2 state not supported */,
-        .plvl3_lat = 0xfff /* C3 state not supported */,
-        .smi_cmd = ACPI_PORT_SMI_CMD,
-        .sci_int = object_property_get_uint(o, ACPI_PM_PROP_SCI_INT, NULL),
-        .acpi_enable_cmd =
-            object_property_get_uint(o, ACPI_PM_PROP_ACPI_ENABLE_CMD, NULL),
-        .acpi_disable_cmd =
-            object_property_get_uint(o, ACPI_PM_PROP_ACPI_DISABLE_CMD, NULL),
-        .pm1a_evt = { .space_id = as, .bit_width = 4 * 8, .address = io },
-        .pm1a_cnt = { .space_id = as, .bit_width = 2 * 8,
-                      .address = io + 0x04 },
-        .pm_tmr = { .space_id = as, .bit_width = 4 * 8, .address = io + 0x08 },
-        .gpe0_blk = { .space_id = as, .bit_width =
-            object_property_get_uint(o, ACPI_PM_PROP_GPE0_BLK_LEN, NULL) * 8,
-            .address = object_property_get_uint(o, ACPI_PM_PROP_GPE0_BLK, NULL)
-        },
-    };
-    *data = fadt;
-}
-
 static Object *object_resolve_type_unambiguous(const char *typename)
 {
     bool ambig;
@@ -195,7 +154,7 @@ static void acpi_get_pm_info(MachineState *machine, AcpiPmInfo *pm)
     pm->pcihp_io_len = 0;
 
     assert(obj);
-    init_common_fadt_data(machine, obj, &pm->fadt);
+    acpi_init_common_fadt_data(machine, obj, &pm->fadt);
     if (piix) {
         /* w2k requires FADT(rev1) or it won't boot, keep PC compatible */
         pm->fadt.rev = 1;
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c
index 5187653893a8..69dfbf0252f3 100644
--- a/hw/i386/acpi-common.c
+++ b/hw/i386/acpi-common.c
@@ -28,6 +28,8 @@
 #include "hw/acpi/aml-build.h"
 #include "hw/acpi/utils.h"
 #include "hw/i386/pc.h"
+#include "hw/isa/apm.h"
+#include "hw/rtc/mc146818rtc_regs.h"
 #include "target/i386/cpu.h"
 
 #include "acpi-build.h"
@@ -161,3 +163,44 @@ void acpi_build_facs(GArray *table_data)
     memcpy(&facs->signature, "FACS", 4);
     facs->length = cpu_to_le32(sizeof(*facs));
 }
+
+void acpi_init_common_fadt_data(MachineState *ms, Object *o,
+                                AcpiFadtData *data)
+{
+    uint32_t io = object_property_get_uint(o, ACPI_PM_PROP_PM_IO_BASE, NULL);
+    AmlAddressSpace as = AML_AS_SYSTEM_IO;
+    AcpiFadtData fadt = {
+        .rev = 3,
+        .flags =
+            (1 << ACPI_FADT_F_WBINVD) |
+            (1 << ACPI_FADT_F_PROC_C1) |
+            (1 << ACPI_FADT_F_SLP_BUTTON) |
+            (1 << ACPI_FADT_F_RTC_S4) |
+            (1 << ACPI_FADT_F_USE_PLATFORM_CLOCK) |
+            /* APIC destination mode ("Flat Logical") has an upper limit of 8
+             * CPUs for more than 8 CPUs, "Clustered Logical" mode has to be
+             * used
+             */
+            ((ms->smp.max_cpus > 8) ?
+                        (1 << ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL) : 0),
+        .int_model = 1 /* Multiple APIC */,
+        .rtc_century = RTC_CENTURY,
+        .plvl2_lat = 0xfff /* C2 state not supported */,
+        .plvl3_lat = 0xfff /* C3 state not supported */,
+        .smi_cmd = ACPI_PORT_SMI_CMD,
+        .sci_int = object_property_get_uint(o, ACPI_PM_PROP_SCI_INT, NULL),
+        .acpi_enable_cmd =
+            object_property_get_uint(o, ACPI_PM_PROP_ACPI_ENABLE_CMD, NULL),
+        .acpi_disable_cmd =
+            object_property_get_uint(o, ACPI_PM_PROP_ACPI_DISABLE_CMD, NULL),
+        .pm1a_evt = { .space_id = as, .bit_width = 4 * 8, .address = io },
+        .pm1a_cnt = { .space_id = as, .bit_width = 2 * 8,
+                      .address = io + 0x04 },
+        .pm_tmr = { .space_id = as, .bit_width = 4 * 8, .address = io + 0x08 },
+        .gpe0_blk = { .space_id = as, .bit_width =
+            object_property_get_uint(o, ACPI_PM_PROP_GPE0_BLK_LEN, NULL) * 8,
+            .address = object_property_get_uint(o, ACPI_PM_PROP_GPE0_BLK, NULL)
+        },
+    };
+    *data = fadt;
+}
-- 
2.18.4



  parent reply	other threads:[~2020-05-05 13:53 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05 13:42 [PATCH v2 00/13] microvm: add acpi support Gerd Hoffmann
2020-05-05 13:42 ` [PATCH v2 01/13] acpi: make build_madt() more generic Gerd Hoffmann
2020-05-05 13:54   ` Igor Mammedov
2020-05-05 13:42 ` [PATCH v2 02/13] acpi: create acpi-common.c and move madt code Gerd Hoffmann
2020-05-05 14:00   ` Igor Mammedov
2020-05-05 13:42 ` [PATCH v2 03/13] acpi: madt: skip pci override on pci-less systems (microvm) Gerd Hoffmann
2020-05-05 14:10   ` Igor Mammedov
2020-05-05 14:17   ` Philippe Mathieu-Daudé
2020-05-05 13:42 ` [PATCH v2 04/13] acpi: move acpi_build_facs to acpi-common.c Gerd Hoffmann
2020-05-05 13:49   ` Philippe Mathieu-Daudé
2020-05-05 14:16   ` Igor Mammedov
2020-05-05 13:42 ` Gerd Hoffmann [this message]
2020-05-05 14:25   ` [PATCH v2 05/13] acpi: move acpi_init_common_fadt_data " Igor Mammedov
2020-05-06 10:03     ` Gerd Hoffmann
2020-05-05 13:42 ` [PATCH v2 06/13] acpi: move acpi_align_size to acpi-common.h Gerd Hoffmann
2020-05-05 13:53   ` Philippe Mathieu-Daudé
2020-05-05 14:30   ` Igor Mammedov
2020-05-05 13:42 ` [PATCH v2 07/13] acpi: fadt: add hw-reduced sleep register support Gerd Hoffmann
2020-05-05 14:35   ` Igor Mammedov
2020-05-05 13:43 ` [PATCH v2 08/13] acpi: generic event device for x86 Gerd Hoffmann
2020-05-05 15:03   ` Igor Mammedov
2020-05-06 10:31     ` Gerd Hoffmann
2020-05-06 12:41       ` Igor Mammedov
2020-05-07 14:03         ` Gerd Hoffmann
2020-05-05 13:43 ` [PATCH v2 09/13] microvm: add minimal acpi support Gerd Hoffmann
2020-05-05 15:20   ` Igor Mammedov
2020-05-06 10:35     ` Gerd Hoffmann
2020-05-06 14:14       ` Igor Mammedov
2020-05-07 13:39         ` Gerd Hoffmann
2020-05-05 13:43 ` [PATCH v2 10/13] microvm: disable virtio-mmio cmdline hack Gerd Hoffmann
2020-05-05 15:22   ` Igor Mammedov
2020-05-05 13:43 ` [PATCH v2 11/13] microvm: add acpi_dsdt_add_virtio() for x86 Gerd Hoffmann
2020-05-06  7:27   ` Sergio Lopez
2020-05-05 13:43 ` [PATCH v2 12/13] microvm: make virtio irq base runtime configurable Gerd Hoffmann
2020-05-06  7:28   ` Sergio Lopez
2020-05-05 13:43 ` [PATCH v2 13/13] microvm/acpi: use GSI 16-23 for virtio Gerd Hoffmann
2020-05-06  7:28   ` Sergio Lopez
2020-05-05 14:04 ` [PATCH v2 00/13] microvm: add acpi support Michael S. Tsirkin
2020-05-05 14:16   ` Philippe Mathieu-Daudé
2020-05-06  7:25     ` Sergio Lopez
2020-05-06 11:46   ` Gerd Hoffmann
2020-05-06 11:50     ` Michael S. Tsirkin
2020-05-07 13:57       ` Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200505134305.22666-6-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=slp@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.