The K230 machine and its watchdog are already in tree. This series adds
device models for the peripherals on the c908 little-core bus and wires them
into the machine, each with a qtest.

Patch 1 adds the DesignWare APB GPIO controller (one PLIC line per pin).
Patch 2 adds the RTC (date/time, masked alarm, periodic tick, live sub-second
count).
Patch 3 adds the IOMUX pin controller and the mailbox/IPCM block (doorbell
interrupts + hardware spinlock).
Patch 4 adds the SD/eMMC host (DesignWare dw_mmc) register model.
Patch 5 wires the devices into the k230 machine, adds two SiFive PWM instances,
a satellite-safety fault-injection qtest, and updates docs and MAINTAINERS.

Register layouts are taken from the K230 TRM v0.3.1, the upstream Linux
pinctrl-k230 driver, and the Canaan k230_sdk. Exercised by the k230 qtests
(gpio, rtc, iomux, mailbox, dwmmc, pwm, safety) under qtest-riscv64.

Based on commit f893c46 (qemu-openbios-20260707 merge); hw/riscv/k230.c and
include/hw/riscv/k230.h are unchanged from that base upstream.

Leo Cheng (5):
  hw/gpio: add K230 GPIO controller.
  hw/rtc: add K230 RTC.
  hw/misc: add K230 IOMUX and mailbox/IPCM.
  hw/sd: add K230 SD/eMMC (DesignWare dw_mmc).
  hw/riscv: wire K230 peripherals into the machine.

 MAINTAINERS                     |  12 +-
 docs/system/riscv/k230.rst      |   6 +
 hw/gpio/Kconfig                 |   3 +
 hw/gpio/k230_gpio.c             | 270 ++++++++++++++++++++++++++++
 hw/gpio/meson.build             |   1 +
 hw/gpio/trace-events            |   4 +
 hw/misc/Kconfig                 |   6 +
 hw/misc/k230_iomux.c            | 101 +++++++++++
 hw/misc/k230_mailbox.c          | 206 +++++++++++++++++++++
 hw/misc/meson.build             |   2 +
 hw/misc/trace-events            |  10 ++
 hw/riscv/Kconfig                |   7 +
 hw/riscv/k230.c                 |  89 ++++++++--
 hw/rtc/Kconfig                  |   3 +
 hw/rtc/k230_rtc.c               | 306 ++++++++++++++++++++++++++++++++
 hw/rtc/meson.build              |   1 +
 hw/rtc/trace-events             |   5 +
 hw/sd/Kconfig                   |   3 +
 hw/sd/k230_dwmmc.c              | 139 +++++++++++++++
 hw/sd/meson.build               |   1 +
 hw/sd/trace-events              |   4 +
 include/hw/gpio/k230_gpio.h     |  68 +++++++
 include/hw/misc/k230_iomux.h    |  44 +++++
 include/hw/misc/k230_mailbox.h  |  61 +++++++
 include/hw/riscv/k230.h         |  18 ++
 include/hw/rtc/k230_rtc.h       |  61 +++++++
 include/hw/sd/k230_dwmmc.h      |  61 +++++++
 tests/qtest/k230-dwmmc-test.c   |  79 +++++++++
 tests/qtest/k230-gpio-test.c    | 143 +++++++++++++++
 tests/qtest/k230-iomux-test.c   |  62 +++++++
 tests/qtest/k230-mailbox-test.c |  89 ++++++++++
 tests/qtest/k230-pwm-test.c     |  43 +++++
 tests/qtest/k230-rtc-test.c     | 188 ++++++++++++++++++++
 tests/qtest/k230-safety-test.c  | 127 +++++++++++++
 tests/qtest/meson.build         |   2 +-
 35 files changed, 2211 insertions(+), 14 deletions(-)
 create mode 100644 hw/gpio/k230_gpio.c
 create mode 100644 hw/misc/k230_iomux.c
 create mode 100644 hw/misc/k230_mailbox.c
 create mode 100644 hw/rtc/k230_rtc.c
 create mode 100644 hw/sd/k230_dwmmc.c
 create mode 100644 include/hw/gpio/k230_gpio.h
 create mode 100644 include/hw/misc/k230_iomux.h
 create mode 100644 include/hw/misc/k230_mailbox.h
 create mode 100644 include/hw/rtc/k230_rtc.h
 create mode 100644 include/hw/sd/k230_dwmmc.h
 create mode 100644 tests/qtest/k230-dwmmc-test.c
 create mode 100644 tests/qtest/k230-gpio-test.c
 create mode 100644 tests/qtest/k230-iomux-test.c
 create mode 100644 tests/qtest/k230-mailbox-test.c
 create mode 100644 tests/qtest/k230-pwm-test.c
 create mode 100644 tests/qtest/k230-rtc-test.c
 create mode 100644 tests/qtest/k230-safety-test.c

-- 
2.43.0


Reply via email to