qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 00/20] hw/net/xilinx_ethlite: Map RAM buffers as RAM and remo


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 00/20] hw/net/xilinx_ethlite: Map RAM buffers as RAM and remove tswap() calls
Date: Thu, 14 Nov 2024 19:55:11 +0100
User-agent: Mozilla Thunderbird

On 13/11/24 15:36, Edgar E. Iglesias wrote:
On Tue, Nov 12, 2024 at 07:10:24PM +0100, Philippe Mathieu-Daudé wrote:
This is the result of a long discussion with Edgar (started few
years ago!) and Paolo:
34f6fe2f-06e0-4e2a-a361-2d662f6814b5@redhat.com/">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.


Thanks Phil,

This looks good to me. Have you tested this with the Images I provied
a while back or some other way?

I'm running the same functional tests run on CI:

$ make check-functional-microblaze{,el}
[1/7] Generating qemu-version.h with a custom command (wrapped by meson to capture output) [1/7] Generating qemu-version.h with a custom command (wrapped by meson to capture output) /Users/philmd/qemu/build/pyvenv/bin/meson test --no-rebuild -t 1 --setup thorough --print-errorlogs --suite func-microblazeel --suite func-microblazeel-thorough /Users/philmd/qemu/build/pyvenv/bin/meson test --no-rebuild -t 1 --setup thorough --print-errorlogs --suite func-microblaze --suite func-microblaze-thorough 1/4 qemu:func-quick+func-microblazeel / func-microblazeel-empty_cpu_model OK 0.18s 1 subtests passed 1/4 qemu:func-quick+func-microblaze / func-microblaze-empty_cpu_model OK 0.18s 1 subtests passed 2/4 qemu:func-quick+func-microblaze / func-microblaze-version OK 0.18s 1 subtests passed 2/4 qemu:func-quick+func-microblazeel / func-microblazeel-version OK 0.18s 1 subtests passed 3/4 qemu:func-quick+func-microblaze / func-microblaze-info_usernet OK 0.28s 1 subtests passed 3/4 qemu:func-quick+func-microblazeel / func-microblazeel-info_usernet OK 0.28s 1 subtests passed 4/4 qemu:func-thorough+func-microblaze-thorough+thorough / func-microblaze-microblaze_s3adsp1800 OK 0.57s 1 subtests passed

Ok:                 4
Expected Fail:      0
Fail:               0
Unexpected Pass:    0
Skipped:            0
Timeout:            0

Full log written to /Users/philmd/qemu/build/meson-logs/testlog-thorough.txt
4/4 qemu:func-thorough+func-microblazeel-thorough+thorough / func-microblazeel-microblazeel_s3adsp1800 OK 1.50s 1 subtests passed

Ok:                 4
Expected Fail:      0
Fail:               0
Unexpected Pass:    0
Skipped:            0
Timeout:            0

Full log written to /Users/philmd/qemu/build/meson-logs/testlog-thorough.txt
$



reply via email to

[Prev in Thread] Current Thread [Next in Thread]