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