[PATCH 0/4] Kendryte K230 CMU register model

Simon Law <[email protected]>
Newsgroups org.nongnu.qemu-devel,org.nongnu.qemu-riscv
Message-ID <[email protected]>
The Kendryte K230 machine currently lacks the Clock Management Unit (CMU)
  register interface required by the K230 SDK U-Boot and the Linux K230 clock
  driver. As a result, software probing the PLL and sysclk providers cannot
  observe the expected reset values or register update semantics.

  This series adds a minimal, deterministic K230 CMU model.

  The model covers:

  - four PLL register blocks at 0x91102000..0x9110203f;
  - the defined sysclk registers in the 0x91100000 window;
  - the software-visible SPI2AXI_CLK_DIV register at sysclk offset 0x108;
  - reset values and writable/reserved/read-only masks;
  - PLL control write-enable semantics;
  - write-one-to-trigger update behavior;
  - deterministic PLL lock and initialization status;
  - VMState for stable PLL and sysclk register state;
  - qtest coverage for reset, masks, write-enable, W1T, status, sysclk
    updates, unknown offsets, and system reset;
  - K230 machine wiring and user-facing documentation.

  The model intentionally does not propagate clock frequencies to QEMU devices or
  change CPU execution speed. Peripheral reset, power control, and the
  guest-initiated K230 reboot backend remain outside the scope of this series.
  Those functions require separate reset/power models and a matching OpenSBI
  backend.

  The implementation is based only on the existing K230 machine and does not
  depend on unmerged RMU, Timer, SPI, or SDHCI device series.

  Testing:
  - QTEST_QEMU_BINARY=/workspace/qemu/build/qemu-system-riscv64
    /workspace/qemu/build/tests/qtest/k230-cmu-test
    (10/10 subtests passed)
  - QTEST_QEMU_BINARY=/workspace/qemu/build/qemu-system-riscv64
    /workspace/qemu/build/tests/qtest/k230-wdt-test
    (7/7 subtests passed)
  - K230 direct Linux boot and K230 U-Boot boot
  - Linux K230 clock probe and clk_summary validation
  - CMU source/destination migration smoke

Signed-off-by: Simon Law <[email protected]>
---
Simon Law (4):
      hw/misc: model K230 CMU registers
      hw/riscv: connect the K230 CMU
      tests/qtest: add K230 CMU coverage
      docs/system/riscv: document K230 CMU support

 MAINTAINERS                 |   4 +
 docs/system/riscv/k230.rst  |  22 ++
 hw/misc/Kconfig             |   3 +
 hw/misc/k230_cmu.c          | 881 ++++++++++++++++++++++++++++++++++++++++++++
 hw/misc/meson.build         |   1 +
 hw/misc/trace-events        |   9 +
 hw/riscv/Kconfig            |   1 +
 hw/riscv/k230.c             |  14 +-
 include/hw/misc/k230_cmu.h  |  58 +++
 include/hw/riscv/k230.h     |   2 +
 tests/qtest/k230-cmu-test.c | 310 ++++++++++++++++
 tests/qtest/meson.build     |   3 +-
 12 files changed, 1302 insertions(+), 6 deletions(-)
---
base-commit: f893c46c3931b3684d235d221bf8b7844ddbf1d7
change-id: 20260809-feat-k230-cmu-9b62e6dd23f3

Best regards,
-- 
Simon Law <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.