9a5b40b842
hw: rtc: Add Goldfish RTC device
...
This patch adds model for Google Goldfish virtual platform RTC device.
We will be adding Goldfish RTC device to the QEMU RISC-V virt machine
for providing real date-time to Guest Linux. The corresponding Linux
driver for Goldfish RTC device is already available in upstream Linux.
For now, VM migration support is available but untested for Goldfish RTC
device. It will be hardened in-future when we implement VM migration for
KVM RISC-V.
Signed-off-by: Anup Patel <anup.patel@wdc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com >
2020-02-10 12:01:37 -08:00
e21d73ec7f
hw/timer/m48t59: Convert debug printf()s to trace events
...
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Hervé Poussineau <hpoussin@reactos.org >
Message-Id: <20200117165809.31067-3-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2020-02-06 10:51:24 +01:00
4f67d30b5e
qdev: set properties with device_class_set_props()
...
The following patch will need to handle properties registration during
class_init time. Let's use a device_class_set_props() setter.
spatch --macro-file scripts/cocci-macro-file.h --sp-file
./scripts/coccinelle/qdev-set-props.cocci --keep-comments --in-place
--dir .
@@
typedef DeviceClass;
DeviceClass *d;
expression val;
@@
- d->props = val
+ device_class_set_props(d, val)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com >
Message-Id: <20200110153039.1379601-20-marcandre.lureau@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2020-01-24 20:59:15 +01:00
c9c6b2e1c4
hw/rtc/mc146818: Add missing dependency on ISA Bus
...
The MC146818 sits on an ISA bus. Since it can not be used
without it, select ISA in the Kconfig.
Fixes: 82f5181777
("kconfig: introduce kconfig files", 2019-03-07)
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20191224111628.3551-1-philmd@redhat.com >
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2020-01-07 12:23:10 +01:00
06b43e082c
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
...
* microvm docs and fixes (Sergio, Liam)
* New processor features for Intel errata (myself, Pawan)
* Kconfig fixes (myself, Thomas)
* Revert mc146818rtc change (myself)
* Deprecate scsi-disk (myself)
* RTC fix (myself, Marcelo)
# gpg: Signature made Tue 19 Nov 2019 09:03:49 GMT
# gpg: using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org >" [full]
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com >" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1
# Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83
* remotes/bonzini/tags/for-upstream:
mc146818rtc: fix timer interrupt reinjection again
Revert "mc146818rtc: fix timer interrupt reinjection"
scsi: deprecate scsi-disk
hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass
docs/microvm.rst: add instructions for shutting down the guest
docs/microvm.rst: fix alignment in "Limitations"
vfio: vfio-pci requires EDID
hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled
target/i386: Export TAA_NO bit to guests
target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR
microvm: fix memory leak in microvm_fix_kernel_cmdline
scripts: Detect git worktrees for get_maintainer.pl --git
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2019-11-19 16:31:27 +00:00
83ad95957c
pl031: Expose RTCICR as proper WC register
...
The current PL031 RTCICR register implementation always clears the
IRQ pending status on a register write, regardless of the value the
guest writes.
To justify that behavior, it references the ARM926EJ-S Development
Chip Reference Manual (DDI0287B) and indicates that said document
states that any write clears the internal IRQ state. It is indeed
true that in section 11.1 this document says:
"The interrupt is cleared by writing any data value to the
interrupt clear register RTCICR".
However, later in section 11.2.2 it contradicts itself by saying:
"Writing 1 to bit 0 of RTCICR clears the RTCINTR flag."
The latter statement matches the PL031 TRM (DDI0224C), which says:
"Writing 1 to bit position 0 clears the corresponding interrupt.
Writing 0 has no effect."
Let's assume that the self-contradictory DDI0287B is in error, and
follow the reference manual for the device itself, by making the
register write-one-to-clear.
Reported-by: Hendrik Borghorst <hborghor@amazon.de >
Signed-off-by: Alexander Graf <graf@amazon.com >
Message-id: 20191104115228.30745-1-graf@amazon.com
[PMM: updated commit message to note that DDI0287B says two
conflicting things]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2019-11-19 13:20:27 +00:00
7a3e29b12f
mc146818rtc: fix timer interrupt reinjection again
...
Commit 369b41359a
broke timer interrupt
reinjection when there is no period change by the guest. In that
case, old_period is 0, which ends up zeroing irq_coalesced (counter of
reinjected interrupts).
The consequence is Windows 7 is unable to synchronize time via NTP.
Easily reproducible by playing a fullscreen video with cirrus and VNC.
Fix by passing s->period when periodic_timer_update is called due to
expiration of the timer. With this change, old_period == 0 only
means that the periodic timer was off.
Reported-by: Marcelo Tosatti <mtosatti@redhat.com >
Co-developed-by: Marcelo Tosatti <mtosatti@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2019-11-19 10:02:13 +01:00
3ae32adff1
Revert "mc146818rtc: fix timer interrupt reinjection"
...
This reverts commit b429de7301
, except
that the reversal of the outer "if (period)" is left in.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2019-11-19 10:01:34 +01:00
673652a785
Merge commit 'df84f17' into HEAD
...
This merge fixes a semantic conflict with the trivial tree.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2019-10-26 15:38:02 +02:00
2330113bf5
hw/rtc/xlnx-zynqmp-rtc: Remove unused "ptimer.h" include
...
The "hw/ptimer.h" header is not used, remove it.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-14-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:34:12 +02:00
7ffcb73d3f
hw/rtc/mc146818: Include mc146818rtc_regs.h a bit less
...
Only 2 source files require the "mc146818rtc_regs.h" header.
Instead of having it processed 12 times, by all objects
using "mc146818rtc.h", include it directly where used.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20191003230404.19384-13-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:33:07 +02:00
ea5dcf4e1d
hw: Move Aspeed RTC from hw/timer/ to hw/rtc/ subdirectory
...
Move RTC devices under the hw/rtc/ subdirectory.
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-12-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:31:44 +02:00
7f0df1ccdf
hw: Move Exynos4210 RTC from hw/timer/ to hw/rtc/ subdirectory
...
Move RTC devices under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-11-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:29:18 +02:00
8035f85ef3
hw: Move Xilinx ZynqMP RTC from hw/timer/ to hw/rtc/ subdirectory
...
Move RTC devices under the hw/rtc/ subdirectory.
Remove Alistair outdated email address (see commit c22e580c2a
).
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-10-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:28:01 +02:00
64e85ffde8
hw: Move DS1338 device from hw/timer/ to hw/rtc/ subdirectory
...
The DS1338 is a Real Time Clock, not a timer.
Move it under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-9-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:26:35 +02:00
6a648a5f23
hw: Move TWL92230 device from hw/timer/ to hw/rtc/ subdirectory
...
The TWL92230 is an "energy management device" companion with
a RTC. Since we mostly model the RTC, move it under the hw/rtc/
subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-8-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:24:50 +02:00
2811ac3059
hw: Move sun4v hypervisor RTC from hw/timer/ to hw/rtc/ subdirectory
...
Move RTC devices under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Artyom Tarasenko <atar4qemu@gmail.com >
Message-Id: <20191003230404.19384-7-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:23:15 +02:00
de04c31d31
hw: Move M41T80 device from hw/timer/ to hw/rtc/ subdirectory
...
The M41T80 is a Real Time Clock, not a timer.
Move it under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20191003230404.19384-6-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:22:12 +02:00
819ce6b2a5
hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory
...
The M48T59 is a Real Time Clock, not a timer.
Move it under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20191003230404.19384-5-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:20:45 +02:00
bcdb90640a
hw: Move MC146818 device from hw/timer/ to hw/rtc/ subdirectory
...
The MC146818 is a Real Time Clock, not a timer.
Move it under the hw/rtc/ subdirectory.
Use copyright statement from 80cabfad16
for "hw/rtc/mc146818rtc.h".
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Acked-by: David Gibson <david@gibson.dropbear.id.au >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Message-Id: <20191003230404.19384-4-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:13:10 +02:00
877c181cd4
hw: Move PL031 device from hw/timer/ to hw/rtc/ subdirectory
...
The PL031 is a Real Time Clock, not a timer.
Move it under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Acked-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20191003230404.19384-3-philmd@redhat.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2019-10-24 20:10:27 +02:00