From: Kangjie Huang <flamboyant.h.01@gmail.com>
To: qemu-devel@nongnu.org
Cc: qemu-riscv@nongnu.org, Chao Liu <chao.liu@processmission.com>,
Alistair Francis <alistair.francis@wdc.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Weiwei Li <liwei1518@gmail.com>,
Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,
Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Fabiano Rosas <farosas@suse.de>,
Laurent Vivier <lvivier@redhat.com>,
Kangjie Huang <flamboyant.h.01@gmail.com>
Subject: [PATCH v2 0/3] hw/riscv/k230: add IOMUX register block model
Date: Tue, 14 Jul 2026 18:21:59 +0800 [thread overview]
Message-ID: <cover.1784022244.git.flamboyant.h.01@gmail.com> (raw)
Add a SysBus model for the 64 K230 Function IO configuration registers
documented by the K230 Technical Reference Manual. The model retains the
writable configuration fields needed by the SDK U-Boot and Linux
read-modify-write paths.
The series adds the device model, wires it into the K230 SoC at
0x91105000, and adds qtest coverage.
Changes in v2:
- Split the device model, SoC wiring, and qtest coverage into separate
patches.
- Removed redundant MMIO bounds, access-size, and alignment checks.
- Limited register storage to the 64 documented Function IO registers.
- Applied the documented 0x00003fff writable mask.
- Treated offsets 0x100 through 0x7ff as reserved.
- Added tests for write masking, read-modify-write accesses, IO63,
reserved offsets, and system reset.
Tested with:
- qtest-riscv64/k230-iomux-test
- qtest-riscv64/k230-wdt-test
- SDK U-Boot smoke test, reaching the K230 prompt
v1:
https://lore.kernel.org/qemu-devel/20260710041845.67170-1-flamboyant.h.01@gmail.com/
Kangjie Huang (3):
hw/misc/k230_iomux: add Kendryte K230 IOMUX model
hw/riscv/k230: wire up the IOMUX device
tests/qtest: add test for K230 IOMUX
docs/system/riscv/k230.rst | 1 +
hw/misc/Kconfig | 3 +
hw/misc/k230_iomux.c | 124 +++++++++++++++++++++++++++
hw/misc/meson.build | 2 +
hw/misc/trace-events | 4 +
hw/riscv/Kconfig | 1 +
hw/riscv/k230.c | 11 ++-
include/hw/misc/k230_iomux.h | 34 ++++++++
include/hw/riscv/k230.h | 2 +
tests/qtest/k230-iomux-test.c | 155 ++++++++++++++++++++++++++++++++++
tests/qtest/meson.build | 5 +-
11 files changed, 338 insertions(+), 4 deletions(-)
create mode 100644 hw/misc/k230_iomux.c
create mode 100644 include/hw/misc/k230_iomux.h
create mode 100644 tests/qtest/k230-iomux-test.c
--
2.43.0
next reply other threads:[~2026-07-14 10:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 10:21 Kangjie Huang [this message]
2026-07-14 10:22 ` [PATCH v2 1/3] hw/misc/k230_iomux: add Kendryte K230 IOMUX model Kangjie Huang
2026-07-14 10:22 ` [PATCH v2 2/3] hw/riscv/k230: wire up the IOMUX device Kangjie Huang
2026-07-14 10:22 ` [PATCH v2 3/3] tests/qtest: add test for K230 IOMUX Kangjie Huang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1784022244.git.flamboyant.h.01@gmail.com \
--to=flamboyant.h.01@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=chao.liu@processmission.com \
--cc=daniel.barboza@oss.qualcomm.com \
--cc=farosas@suse.de \
--cc=liwei1518@gmail.com \
--cc=lvivier@redhat.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.