qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 10/13] microvm/acpi: add rtc


From: Gerd Hoffmann
Subject: [PATCH 10/13] microvm/acpi: add rtc
Date: Thu, 19 Mar 2020 09:01:14 +0100

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 include/hw/i386/microvm.h | 3 +++
 hw/i386/acpi-build.c      | 3 +++
 hw/i386/microvm.c         | 5 ++---
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h
index da2852a70195..53b2457db752 100644
--- a/include/hw/i386/microvm.h
+++ b/include/hw/i386/microvm.h
@@ -57,6 +57,9 @@ typedef struct {
     bool option_roms;
     bool auto_kernel_cmdline;
 
+    /* built-in devices */
+    ISADevice *rtc_state;
+
     /* Machine state */
     bool kernel_cmdline_fixed;
     Notifier machine_done;
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 80844db24d6b..928e0ee2deeb 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2815,6 +2815,9 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *linker,
     build_dbg_aml(dsdt);
 
     sb_scope = aml_scope("_SB");
+    if (mms->rtc_state) {
+        aml_append(sb_scope, build_rtc_device_aml());
+    }
     acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg));
     acpi_dsdt_add_virtio(sb_scope);
     aml_append(dsdt, sb_scope);
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index fd753764fc10..748f9826fb0e 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -101,7 +101,6 @@ static void microvm_devices_init(MicrovmMachineState *mms)
 {
     X86MachineState *x86ms = X86_MACHINE(mms);
     ISABus *isa_bus;
-    ISADevice *rtc_state;
     GSIState *gsi_state;
     int i;
 
@@ -155,8 +154,8 @@ static void microvm_devices_init(MicrovmMachineState *mms)
 
     if (mms->rtc == ON_OFF_AUTO_ON ||
         (mms->rtc == ON_OFF_AUTO_AUTO && !kvm_enabled())) {
-        rtc_state = mc146818_rtc_init(isa_bus, 2000, NULL);
-        microvm_set_rtc(mms, rtc_state);
+        mms->rtc_state = mc146818_rtc_init(isa_bus, 2000, NULL);
+        microvm_set_rtc(mms, mms->rtc_state);
     }
 
     if (mms->isa_serial) {
-- 
2.18.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]