From: Brian Cain <brian.cain@oss.qualcomm.com>
To: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>,
qemu-devel@nongnu.org
Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
qemu-rust@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH 0/3] hw/misc: QUP UART device
Date: Wed, 28 Oct 2026 19:21:06 -0500 [thread overview]
Message-ID: <c980adde-e156-42b2-8cd2-3dae45e54feb@oss.qualcomm.com> (raw)
In-Reply-To: <59fa861d-a909-4b60-b1a2-c6f6eebc51fc@oss.qualcomm.com>
On 10/27/2026 3:12 PM, Pierrick Bouvier wrote:
> On 10/27/2026 12:02 PM, Brian Cain wrote:
>> On 10/27/2026 1:43 PM, Pierrick Bouvier wrote:
>>> On 10/27/2026 10:38 AM, Brian Cain wrote:
>>>> Add the QUP + GENI uart device models. The QUP is a "Universal
>>>> Peripheral"
>>>> present on Qualcomm SoCs, with connections for SPI, UART, I2C, I3C. For
>>>> now we're only interested in UART.
>>>>
>>>> Will follow up with a v2 including wiring into machines + qtest after
>>>> https://lore.kernel.org/qemu-devel/20261027143721.4125584-1-
>>>> brian.cain@oss.qualcomm.com/
>>>> lands.
>>>>
>>>> Brian Cain (3):
>>>> hw/misc: add the QUP wrapper device
>>>> rust/chardev: fix write errors and add write watches
>>>> rust/hw/char: add QUP GENI UART device model
>>>>
>>>> MAINTAINERS | 3 +
>>>> docs/system/device-emulation.rst | 1 +
>>>> docs/system/devices/qup.rst | 10 +
>>>> include/hw/misc/qup-wrapper.h | 27 +
>>>> hw/misc/qup-wrapper.c | 90 ++
>>>> Cargo.lock | 15 +
>>>> Cargo.toml | 1 +
>>>> hw/misc/Kconfig | 3 +
>>>> hw/misc/meson.build | 3 +
>>>> rust/chardev/src/chardev.rs | 82 +-
>>>> rust/hw/char/Kconfig | 4 +
>>>> rust/hw/char/meson.build | 1 +
>>>> rust/hw/char/qup_geni_uart/Cargo.toml | 27 +
>>>> rust/hw/char/qup_geni_uart/meson.build | 28 +
>>>> rust/hw/char/qup_geni_uart/src/device.rs | 1293 +++++++++++++++++++
>>>> rust/hw/char/qup_geni_uart/src/lib.rs | 9 +
>>>> rust/hw/char/qup_geni_uart/src/registers.rs | 160 +++
>>>> 17 files changed, 1741 insertions(+), 16 deletions(-)
>>>> create mode 100644 docs/system/devices/qup.rst
>>>> create mode 100644 include/hw/misc/qup-wrapper.h
>>>> create mode 100644 hw/misc/qup-wrapper.c
>>>> create mode 100644 rust/hw/char/qup_geni_uart/Cargo.toml
>>>> create mode 100644 rust/hw/char/qup_geni_uart/meson.build
>>>> create mode 100644 rust/hw/char/qup_geni_uart/src/device.rs
>>>> create mode 100644 rust/hw/char/qup_geni_uart/src/lib.rs
>>>> create mode 100644 rust/hw/char/qup_geni_uart/src/registers.rs
>>>>
>>> Any specific reason to have this implemented in Rust?
>>>
>>> Not a bad thing in itself, but it means it's only available with rust
>>> builds, which can be a problem if a machine defined in C wants to use it
>>> unconditionally. Rust is not (yet) a mandatory dep for QEMU.
>> A new device model -> a brand new day -> a new frontier?
>>
>> It was an interesting challenge and seemed appropriate given the nice
>> reference pl011 device. But I will concede it can be impractical.
>> Making this device conditionally enabled in the machine that uses it
>> felt kinda "lame" and made me long for a day when it *was* a mandatory
>> dependency.
>>
>> Seeing as how we have a pl011 device in C, maybe it's better to start
>> with a C version of the QUP? If so, that's okay with me.
>>
> If it's a mandatory device as part of a machine definition, it would
> probably be better to stick to C for now.
> I hope we can get Rust as a main dep at some point. I'm not sure what is
> the criteria to do this change, out of deciding "let's do this".
Hmm - so ... can I put in a vote for this, then? Can "at some point" be
now? What are the criteria?
> Regards,
> Pierrick
next prev parent reply other threads:[~2026-10-29 0:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 18:38 [PATCH 0/3] hw/misc: QUP UART device Brian Cain
2026-10-27 18:38 ` [PATCH 1/3] hw/misc: add the QUP wrapper device Brian Cain
2026-10-27 18:38 ` [PATCH 2/3] rust/chardev: fix write errors and add write watches Brian Cain
2026-10-28 7:03 ` Philippe Mathieu-Daudé
2026-10-27 18:38 ` [PATCH 3/3] rust/hw/char: add QUP GENI UART device model Brian Cain
2026-10-27 19:05 ` Philippe Mathieu-Daudé
2026-10-27 18:43 ` [PATCH 0/3] hw/misc: QUP UART device Pierrick Bouvier
2026-10-27 20:02 ` Brian Cain
2026-10-27 20:12 ` Pierrick Bouvier
2026-10-29 0:21 ` Brian Cain [this message]
2026-10-29 0:31 ` Pierrick Bouvier
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=c980adde-e156-42b2-8cd2-3dae45e54feb@oss.qualcomm.com \
--to=brian.cain@oss.qualcomm.com \
--cc=manos.pitsidianakis@linaro.org \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-rust@nongnu.org \
/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.