From: Chao Liu <chao.liu.zevorn@gmail.com>
To: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>
Cc: jack wang <163wangjack@gmail.com>,
qemu-devel@nongnu.org,
Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Alistair Francis <alistair.francis@wdc.com>,
Weiwei Li <liwei1518@gmail.com>,
Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
"open list:K230 Machines" <qemu-riscv@nongnu.org>
Subject: Re: [RFC PATCH 2/2] hw/riscv/k230: wire up the RMU device
Date: Fri, 17 Jul 2026 22:04:05 +0800 [thread overview]
Message-ID: <alo1wgC0ExaLLznS@ChaodeMacBook-Pro.local> (raw)
In-Reply-To: <6225b3ef-461f-458e-9275-ec471d6fd2d6@oss.qualcomm.com>
On Fri, Jul 17, 2026 at 10:56:17AM +0800, Daniel Henrique Barboza wrote:
>
>
> On 7/17/2026 10:41 AM, Chao Liu wrote:
> > On Thu, Jul 16, 2026 at 02:56:30PM +0800, Daniel Henrique Barboza wrote:
> >
> > Hi Daniel,
> > > Hi,
> > >
> > > On 7/9/2026 12:12 AM, jack wang wrote:
> > > > From: Jack Wang <163wangjack@gmail.com>
> > > >
> > > > Replace the "rmu" create_unimplemented_device() stub with a real
> > > > K230RmuState instance mapped at the K230_DEV_RMU memmap entry, select
> > > > K230_RMU from the K230 Kconfig, and document the device.
> > >
> > > So, as I said in patch 1, applying this patch will fix the qtest that you
> > > introduced there. I believe we want to either squash this patch in patch
> > > 1 or move the qtest creation to this patch. Both are fine to me.
> > >
> > > >
> > > > Closes: gevico/qemu-camp-2026-k230#11
> > >
> > > Not sure what gevico is (seems like a bootcamp, according to Google at least) but
> > > the "Closes" tag usually contains a gitlab bug or any other link that is publicly
> > > available. It's better to remove it.
> > >
> > I believe this link refers to:
> > https://github.com/gevico/qemu-camp-2026-k230/issues/11
> >
> > However, according to the QEMU development collaboration workflow,
> > we don't need to add it.
> >
> > Gevico, here is the English transliteration for the Chinese "格维". This
> > is a major open-source community in China focused on technical software,
> > which I currently organize and own.
> >
> > Within our community, we run a QEMU technical training camp primarily
> > centered on the RISC-V architecture and exploratory work regarding
> > GPGPU microarchitecture.
> >
> > One of our key projects involves hardware modeling for the K230, where
> > we are implementing a digital satellite-borne computer. The recent
> > contributions seen upstream were primarily patches sent by participants
> > of this project. We are currently in the process of contributing our
> > results from this stage to the QEMU upstream.
>
> Thanks for the info. This seems very interesting indeed, and please keep
> the QEMU contributions flowing :D
>
Yes, sir. :)
Thanks,
Chao
> Cheers,
> Daniel
>
> >
> > If you are interested in this, you can visit the link below.
> > https://qemu.gevico.online/tutorial/2026/ch3/qemu-k230/
> >
> > Thanks,
> > Chao
> > >
> > > Thanks,
> > > Daniel
> > >
> > >
> > > > Signed-off-by: Jack Wang <163wangjack@gmail.com>
> > > > ---
> > > > docs/system/riscv/k230.rst | 1 +
> > > > hw/riscv/Kconfig | 1 +
> > > > hw/riscv/k230.c | 10 +++++++---
> > > > include/hw/riscv/k230.h | 2 ++
> > > > 4 files changed, 11 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/docs/system/riscv/k230.rst b/docs/system/riscv/k230.rst
> > > > index cea8202e55..3f2313a127 100644
> > > > --- a/docs/system/riscv/k230.rst
> > > > +++ b/docs/system/riscv/k230.rst
> > > > @@ -19,6 +19,7 @@ The ``k230`` machine supports the following devices:
> > > > * Core Local Interruptor (CLINT)
> > > > * Platform-Level Interrupt Controller (PLIC)
> > > > * 2 K230 Watchdog Timer
> > > > +* K230 Reset Management Unit (RMU)
> > > > * 5 UART
> > > > Boot options
> > > > diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
> > > > index 54e41a6afc..bffa4e69c8 100644
> > > > --- a/hw/riscv/Kconfig
> > > > +++ b/hw/riscv/Kconfig
> > > > @@ -149,3 +149,4 @@ config K230
> > > > select SERIAL_MM
> > > > select UNIMP
> > > > select K230_WDT
> > > > + select K230_RMU
> > > > diff --git a/hw/riscv/k230.c b/hw/riscv/k230.c
> > > > index 502281c52c..b55e90c0d2 100644
> > > > --- a/hw/riscv/k230.c
> > > > +++ b/hw/riscv/k230.c
> > > > @@ -110,6 +110,7 @@ static void k230_soc_init(Object *obj)
> > > > object_initialize_child(obj, "c908-cpu", cpu0, TYPE_RISCV_HART_ARRAY);
> > > > object_initialize_child(obj, "k230-wdt0", &s->wdt[0], TYPE_K230_WDT);
> > > > object_initialize_child(obj, "k230-wdt1", &s->wdt[1], TYPE_K230_WDT);
> > > > + object_initialize_child(obj, "k230-rmu", &s->rmu, TYPE_K230_RMU);
> > > > qdev_prop_set_uint32(DEVICE(cpu0), "hartid-base", 0);
> > > > qdev_prop_set_string(DEVICE(cpu0), "cpu-type", TYPE_RISCV_CPU_THEAD_C908);
> > > > @@ -206,6 +207,12 @@ static void k230_soc_realize(DeviceState *dev, Error **errp)
> > > > sysbus_connect_irq(SYS_BUS_DEVICE(&s->wdt[1]), 0,
> > > > qdev_get_gpio_in(DEVICE(s->c908_plic), K230_WDT1_IRQ));
> > > > + /* RMU (reset management unit) */
> > > > + if (!sysbus_realize(SYS_BUS_DEVICE(&s->rmu), errp)) {
> > > > + return;
> > > > + }
> > > > + sysbus_mmio_map(SYS_BUS_DEVICE(&s->rmu), 0, memmap[K230_DEV_RMU].base);
> > > > +
> > > > /* unimplemented devices */
> > > > create_unimplemented_device("kpu.l2-cache",
> > > > memmap[K230_DEV_KPU_L2_CACHE].base,
> > > > @@ -268,9 +275,6 @@ static void k230_soc_realize(DeviceState *dev, Error **errp)
> > > > create_unimplemented_device("cmu", memmap[K230_DEV_CMU].base,
> > > > memmap[K230_DEV_CMU].size);
> > > > - create_unimplemented_device("rmu", memmap[K230_DEV_RMU].base,
> > > > - memmap[K230_DEV_RMU].size);
> > > > -
> > > > create_unimplemented_device("boot", memmap[K230_DEV_BOOT].base,
> > > > memmap[K230_DEV_BOOT].size);
> > > > diff --git a/include/hw/riscv/k230.h b/include/hw/riscv/k230.h
> > > > index 592e1c26bf..13f2a1ab0b 100644
> > > > --- a/include/hw/riscv/k230.h
> > > > +++ b/include/hw/riscv/k230.h
> > > > @@ -18,6 +18,7 @@
> > > > #include "hw/core/boards.h"
> > > > #include "hw/riscv/riscv_hart.h"
> > > > #include "hw/watchdog/k230_wdt.h"
> > > > +#include "hw/misc/k230_rmu.h"
> > > > #define C908_CPU_HARTID (0)
> > > > @@ -33,6 +34,7 @@ typedef struct K230SoCState {
> > > > RISCVHartArrayState c908_cpu; /* Small core */
> > > > K230WdtState wdt[2];
> > > > + K230RmuState rmu;
> > > > MemoryRegion sram;
> > > > MemoryRegion bootrom;
> > >
>
next prev parent reply other threads:[~2026-07-17 14:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-09 3:12 [RFC PATCH 0/2] *** Add k230 reset management unit support *** jack wang
2026-07-09 3:12 ` [RFC PATCH 1/2] hw/misc/k230_rmu: add Kendryte K230 Reset Management Unit model jack wang
2026-07-16 17:48 ` Daniel Henrique Barboza
2026-07-17 10:11 ` Junze Cao
2026-07-09 3:12 ` [RFC PATCH 2/2] hw/riscv/k230: wire up the RMU device jack wang
2026-07-16 17:56 ` Daniel Henrique Barboza
2026-07-17 13:41 ` Chao Liu
2026-07-17 13:56 ` Daniel Henrique Barboza
2026-07-17 14:04 ` Chao Liu [this message]
2026-07-15 11:56 ` [RFC PATCH 0/2] *** Add k230 reset management unit support *** Jack wang
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=alo1wgC0ExaLLznS@ChaodeMacBook-Pro.local \
--to=chao.liu.zevorn@gmail.com \
--cc=163wangjack@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=daniel.barboza@oss.qualcomm.com \
--cc=liwei1518@gmail.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.