This patch series implements the OpenTitan Always-On Timer device, and includes several fixes/feature additions to existing devices.
The memory map used for reference can be found here: https://github.com/lowRISC/opentitan/blob/217a0168ba118503c166a9587819e3811eeb0c0c/hw/top_earlgrey/sw/autogen/top_earlgrey_memory.h The main components of this patch series are: 1. The OpenTitan AON Timer device itself, and an associated qtest. 2. Fix a bug found with the sifive plic device. 3. Adds support for writes to mtime in the Ibex timer device and adds a qtest for it. Tyler Ng (3): hw/watchdog: wdt_ibex_aon.c: Implement the watchdog for the OpenTitan hw/intc: sifive_plic.c: Fix interrupt priority index. hw/timer: ibex_timer.c: Add support for writes to mtime hw/intc/sifive_plic.c | 4 +- hw/riscv/Kconfig | 4 + hw/riscv/opentitan.c | 21 +- hw/timer/ibex_timer.c | 98 +++++-- hw/watchdog/Kconfig | 3 + hw/watchdog/meson.build | 1 + hw/watchdog/wdt_ibex_aon.c | 405 +++++++++++++++++++++++++++++ include/hw/riscv/opentitan.h | 7 +- include/hw/timer/ibex_timer.h | 6 + include/hw/watchdog/wdt_ibex_aon.h | 67 +++++ tests/qtest/ibex-aon-timer-test.c | 189 ++++++++++++++ tests/qtest/ibex-timer-test.c | 178 +++++++++++++ tests/qtest/meson.build | 4 + 13 files changed, 953 insertions(+), 34 deletions(-) create mode 100644 hw/watchdog/wdt_ibex_aon.c create mode 100644 include/hw/watchdog/wdt_ibex_aon.h create mode 100644 tests/qtest/ibex-aon-timer-test.c create mode 100644 tests/qtest/ibex-timer-test.c -- 2.34.1