From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Anton Johansson" <anjo@rev.ng>,
"Gustavo Romero" <gustavo.romero@linaro.org>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Alistair Francis" <alistair@alistair23.me>,
qemu-arm@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Bernhard Beschow" <shentey@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v2 00/19] hw/net/xilinx_ethlite: Map RAM buffers as RAM and remove tswap() calls
Date: Thu, 14 Nov 2024 20:07:14 +0100 [thread overview]
Message-ID: <20241114190733.33902-1-philmd@linaro.org> (raw)
Missing review: patch #19 (new)
Since v1:
- Addressed Edgar review comments
- New patch to map RSVD I/O region (Paolo)
- Added Edgar R-b tags
This is the result of a long discussion with Edgar (started few
years ago!) and Paolo:
https://lore.kernel.org/qemu-devel/34f6fe2f-06e0-4e2a-a361-2d662f6814b5@redhat.com/
After clarification from Richard on MMIO/RAM accesses, I figured
strengthening the model regions would make things obvious,
eventually allowing to remove the tswap() calls for good.
This costly series mostly plays around with MemoryRegions.
The model has a mix of RAM/MMIO in its address range. Currently
they are implemented as a MMIO array of u32. Since the core
memory layer swaps accesses for MMIO, the device implementation
has to swap them back.
In order to avoid that, we'll map the RAM regions as RAM MRs.
First we move each MMIO register to new MMIO regions (RX and TX).
Then what is left are the RAM buffers; we convert them to RAM MRs,
removing the need for tswap() at all.
Once reviewed, I'll respin my "hw/microblaze: Allow running
cross-endian vCPUs" series based on this.
Tested using 'make check-functional-microblaze{,el}'.
Please review,
Phil.
Philippe Mathieu-Daudé (19):
hw/microblaze: Restrict MemoryRegionOps are implemented as 32-bit
hw/net/xilinx_ethlite: Convert some debug logs to trace events
hw/net/xilinx_ethlite: Remove unuseful debug logs
hw/net/xilinx_ethlite: Update QOM style
hw/net/xilinx_ethlite: Correct maximum RX buffer size
hw/net/xilinx_ethlite: Map MDIO registers (as unimplemented)
hw/net/xilinx_ethlite: Rename rxbuf -> port_index
hw/net/xilinx_ethlite: Introduce txbuf_ptr() helper
hw/net/xilinx_ethlite: Introduce rxbuf_ptr() helper
hw/net/xilinx_ethlite: Access TX_GIE register for each port
hw/net/xilinx_ethlite: Access TX_LEN register for each port
hw/net/xilinx_ethlite: Access TX_CTRL register for each port
hw/net/xilinx_ethlite: Map RX_CTRL as MMIO
hw/net/xilinx_ethlite: Map TX_LEN as MMIO
hw/net/xilinx_ethlite: Map TX_GIE as MMIO
hw/net/xilinx_ethlite: Map TX_CTRL as MMIO
hw/net/xilinx_ethlite: Map the RAM buffer as RAM memory region
hw/net/xilinx_ethlite: Rename 'mmio' MR as 'container'
hw/net/xilinx_ethlite: Map RESERVED I/O as unimplemented
hw/char/xilinx_uartlite.c | 4 +
hw/intc/xilinx_intc.c | 4 +
hw/net/xilinx_ethlite.c | 371 ++++++++++++++++++++++++--------------
hw/timer/xilinx_timer.c | 4 +
hw/net/trace-events | 4 +
5 files changed, 256 insertions(+), 131 deletions(-)
--
2.45.2
next reply other threads:[~2024-11-14 19:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 19:07 Philippe Mathieu-Daudé [this message]
2024-11-14 19:07 ` [PATCH v2 01/19] hw/microblaze: Restrict MemoryRegionOps are implemented as 32-bit Philippe Mathieu-Daudé
2024-11-14 19:07 ` [PATCH v2 02/19] hw/net/xilinx_ethlite: Convert some debug logs to trace events Philippe Mathieu-Daudé
2024-11-14 19:07 ` [PATCH v2 03/19] hw/net/xilinx_ethlite: Remove unuseful debug logs Philippe Mathieu-Daudé
2024-11-14 19:07 ` [PATCH v2 04/19] hw/net/xilinx_ethlite: Update QOM style Philippe Mathieu-Daudé
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=20241114190733.33902-1-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=alistair@alistair23.me \
--cc=anjo@rev.ng \
--cc=edgar.iglesias@gmail.com \
--cc=gustavo.romero@linaro.org \
--cc=jasowang@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shentey@gmail.com \
--cc=thuth@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).