[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/2] hw/misc/tmp105: Correct temperature limit check logic
From: |
Peter Maydell |
Subject: |
[PATCH 0/2] hw/misc/tmp105: Correct temperature limit check logic |
Date: |
Tue, 10 Nov 2020 15:00:21 +0000 |
This patchseries fixes bug https://bugs.launchpad.net/qemu/+bug/1734474
which is a regression between QEMU 1.3.0 and 1.4.0 of ability to boot a
guest image on the n800 machine. The regression was introduced by
commit cb5ef3fa1871522a08, which fixed a logic error in the tmp105
device's handling of i2c writes. That commit is correct, but it exposed
an underlying bug in the tmp105 implementation. Previously, we
accidentallywrote 0 to the config register when this guest tried to
write 0x36, which meant (among other things) that we left the device
in "comparator mode" rather than putting it into "interrupt mode" as
the guest wanted, and it turns out that our interrupt-mode logic was
buggy, so we would signal an over-temperature interrupt immediately
and continuously, and the guest would hang.
Patch 1 fixes a silly omission where we weren't setting the
reset values for the T_high and T_low limit registers.
Patch 2 fixes the interrupt mode limit checks.
With these two the n9800 image linked to in the bug report can
boot properly again.
thanks
-- PMM
Peter Maydell (2):
hw/misc/tmp105: reset the T_low and T_High registers
tmp105: Correct handling of temperature limit checks
hw/misc/tmp105.c | 73 ++++++++++++++++++++++++++++++++++++++++++------
hw/misc/tmp105.h | 7 +++++
2 files changed, 71 insertions(+), 9 deletions(-)
--
2.20.1
- [PATCH 0/2] hw/misc/tmp105: Correct temperature limit check logic,
Peter Maydell <=