@@ -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;
@@ -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);
@@ -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) {
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/hw/i386/microvm.h | 3 +++ hw/i386/acpi-build.c | 3 +++ hw/i386/microvm.c | 5 ++--- 3 files changed, 8 insertions(+), 3 deletions(-)