mirror of
https://github.com/qemu/qemu.git
synced 2024-12-14 23:13:29 +08:00
a6b6414f0c
The TCO watchdog implementation default behaviour from POV of the
guest OS relies on the initial values for two I/O ports:
* TCO1_CNT == 0x0
Since bit 11 (TCO Timer Halt) is clear, the watchdog state
is considered to be initially running
* GCS == 0x20
Since bit 5 (No Reboot) is set, the watchdog will not trigger
when the timer expires
This is a safe default, because the No Reboot bit will prevent the
watchdog from triggering if the guest OS is unaware of its existance,
or is slow in configuring it. When a Linux guest initializes the TCO
watchdog, it will attempt to clear the "No Reboot" flag, and read the
value back. If the clear was honoured, the driver will treat this as
an indicator that the watchdog is functional and create the guest
watchdog device.
QEMU implements a second "no reboot" flag, however, via pin straps
which overrides the behaviour of the guest controlled "no reboot"
flag:
commit
|
||
---|---|---|
.. | ||
apm.c | ||
i82378.c | ||
isa-bus.c | ||
isa-superio.c | ||
Kconfig | ||
lpc_ich9.c | ||
meson.build | ||
pc87312.c | ||
piix3.c | ||
piix4.c | ||
smc37c669-superio.c | ||
trace-events | ||
trace.h | ||
vt82c686.c |