[PATCH v7 0/9] Add virtio-mmio support to m68k virt machine
Daniel Palmer
daniel at thingy.jp
Sat May 16 09:39:52 CEST 2026
Lets start making the m68k virt machine support useful.
First we need to fix some m68k endian issues.
Then allow virtio mmio driver instances to be created with
platform data and fix a minor endian issue.
Finally, add the code for the board to create the instances.
v7:
- An extra patch is added before changing the qemu sysreset driver
to use __raw_writel() to fix issues with versions of writel()/__raw_writel()
that don't cast the address to a pointer.
- Hopefully this fixes all of the CI issues. I have tested locally by building
a few different targets with allyesconfig. A github pipeline passed with this
patch and its running again now since I rebase and force pushed.
v6:
- Remove an extra signed-of-by that go added by b4 or me somehow.
- Fix the warning about a phys_addr_t being cast to a pointer of different
size if phys_addr_t is 32bits but the target cpu is 64bits.
CC drivers/virtio/virtio_mmio.o
drivers/virtio/virtio_mmio.c: In function ‘virtio_mmio_probe’:
drivers/virtio/virtio_mmio.c:359:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
359 | priv->base = (void __iomem *)plat->base;
|
v5:
- Add Kuan-Wei's fixes for the two other goldfish endian issues
I hadn't spotted. Should be good to go!
v4:
- Small changes to "board: qemu: m68k: Create virtio mmio instances"
requested by Simon.
- Add another patch to make the virtio cmd depend on CONFIG_VIRTIO_BLK
as the build breaks if it isn't selected.
v3:
- Fix the bug with the vendor string in virtio-blk properly,
this removes the last endian hack in virtio-mmio
- Leave the current behaviour for readl() for coldfire as it
breaks thing.
v2:
- Added patch to fix readl() etc on m68k, hopefully this
doesn't break everything. This should match Linux now.
- Added patch to fix sys reset which is broken by the above
- Hacks to virtio-mmio are gone because they aren't needed
anymore, just one minor endian fix now.
- Removed RFC because it looks good to me*.
* I wouldn't trust me. :)
Daniel Palmer (7):
sysreset: qemu virt: Use map_sysmem()
sysreset: qemu virt: Use __raw_writel()
m68k: Fix writew(), writel(), readw(), readl() endianness for classic
m68k
virtio: mmio: Allow instantiation via platform data
virtio: cmd: Depend on VIRTIO_BLK
virtio: blk: Fix converting the vendor id to a string
board: qemu: m68k: Create virtio mmio instances
Kuan-Wei Chiu (2):
rtc: goldfish: Use __raw_readl() and __raw_writel()
timer: goldfish: Use __raw_readl()
arch/m68k/Kconfig | 14 ++++---
arch/m68k/include/asm/io.h | 31 +++++++++------
board/emulation/qemu-m68k/qemu-m68k.c | 45 ++++++++++++++++++++++
cmd/Kconfig | 4 +-
drivers/rtc/goldfish_rtc.c | 8 ++--
drivers/sysreset/sysreset_qemu_virt_ctrl.c | 4 +-
drivers/timer/goldfish_timer.c | 4 +-
drivers/virtio/virtio_blk.c | 11 ++----
drivers/virtio/virtio_mmio.c | 27 ++++++++-----
include/virtio.h | 3 ++
include/virtio_mmio.h | 12 ++++++
11 files changed, 121 insertions(+), 42 deletions(-)
create mode 100644 include/virtio_mmio.h
--
2.53.0
More information about the U-Boot
mailing list