[RFC v1 0/1] Implement AVR WDT (watchdog timer)

Michael Rolnik posted 1 patch 2 years, 11 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210505211849.101005-1-mrolnik@gmail.com
There is a newer version of this series
MAINTAINERS                   |   2 +
hw/avr/Kconfig                |   1 +
hw/avr/atmega.c               |  15 +-
hw/avr/atmega.h               |   2 +
hw/watchdog/Kconfig           |   3 +
hw/watchdog/avr_wdt.c         | 274 ++++++++++++++++++++++++++++++++++
hw/watchdog/meson.build       |   2 +
hw/watchdog/trace-events      |   5 +
include/hw/watchdog/avr_wdt.h |  47 ++++++
target/avr/cpu.c              |   3 +
target/avr/cpu.h              |   1 +
target/avr/helper.c           |   7 +-
target/avr/translate.c        |  38 ++++-
13 files changed, 391 insertions(+), 9 deletions(-)
create mode 100644 hw/watchdog/avr_wdt.c
create mode 100644 include/hw/watchdog/avr_wdt.h
[RFC v1 0/1] Implement AVR WDT (watchdog timer)
Posted by Michael Rolnik 2 years, 11 months ago
1.  Initial implementation of AVR WDT
    There are two issues with this implementation so I need your help here
    a. when I configure the WDT to fire an interrupt every 15ms it actually happens every 6 instructions
    b. when I specify --icount shift=0 qemu stucks

changes since v1
1.  correct RW or RW1C behavior is implemented
2.  icount functionality is fixed
3.  I still observe something strange, it takes AVR 150 instructions to simulate 15ms


*** BLURB HERE ***

Michael Rolnik (1):
  Implement AVR watchdog timer

 MAINTAINERS                   |   2 +
 hw/avr/Kconfig                |   1 +
 hw/avr/atmega.c               |  15 +-
 hw/avr/atmega.h               |   2 +
 hw/watchdog/Kconfig           |   3 +
 hw/watchdog/avr_wdt.c         | 274 ++++++++++++++++++++++++++++++++++
 hw/watchdog/meson.build       |   2 +
 hw/watchdog/trace-events      |   5 +
 include/hw/watchdog/avr_wdt.h |  47 ++++++
 target/avr/cpu.c              |   3 +
 target/avr/cpu.h              |   1 +
 target/avr/helper.c           |   7 +-
 target/avr/translate.c        |  38 ++++-
 13 files changed, 391 insertions(+), 9 deletions(-)
 create mode 100644 hw/watchdog/avr_wdt.c
 create mode 100644 include/hw/watchdog/avr_wdt.h

-- 
2.25.1