Message ID | 20210515220957.13053-1-mrolnik@gmail.com |
---|---|
Headers | show |
Series | Implement AVR WDT (watchdog timer) | expand |
ping On Sun, May 16, 2021 at 1:10 AM Michael Rolnik <mrolnik@gmail.com> wrote: > 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 > > changes since v2 > 1. use REG8 & FIELD macros to define registers > 2. fixing ICOUNT behavior > > *** 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 | 279 ++++++++++++++++++++++++++++++++++ > 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 | 58 ++++++- > 13 files changed, 419 insertions(+), 6 deletions(-) > create mode 100644 hw/watchdog/avr_wdt.c > create mode 100644 include/hw/watchdog/avr_wdt.h > > -- > 2.25.1 > >