[PATCH 05/13] virtio: Export a few things from virtio_mmio.c

Simon Glass sjg at chromium.org
Wed May 27 18:10:15 CEST 2026


Add a header file to allow other drivers to implement MMIO and share the
code.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/virtio/virtio_internal.h | 19 +++++++++++++++++++
 drivers/virtio/virtio_mmio.c     |  7 ++++---
 2 files changed, 23 insertions(+), 3 deletions(-)
 create mode 100644 drivers/virtio/virtio_internal.h

diff --git a/drivers/virtio/virtio_internal.h b/drivers/virtio/virtio_internal.h
new file mode 100644
index 00000000000..96b6bffbe54
--- /dev/null
+++ b/drivers/virtio/virtio_internal.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Internal header file for virtio
+ *
+ * Copyright 2025 Simon Glass <sjg at chromium.org>
+ */
+
+#ifndef _VIRTIO_INTERNAL_H
+#define _VIRTIO_INTERNAL_H
+
+struct udevice;
+
+/* MMIO operations from virtio_mmcio.c */
+extern const struct dm_virtio_ops virtio_mmio_ops;
+
+/* exported probe function from virtio_mmcio.c */
+int virtio_mmio_probe(struct udevice *udev);
+
+#endif
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index 975f98cd9e5..e66b8d244fb 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -349,7 +349,7 @@ static int virtio_mmio_of_to_plat(struct udevice *udev)
 	return 0;
 }
 
-static int virtio_mmio_probe(struct udevice *udev)
+int virtio_mmio_probe(struct udevice *udev)
 {
 	struct virtio_mmio_plat *plat = dev_get_plat(udev);
 	struct virtio_mmio_priv *priv = dev_get_priv(udev);
@@ -359,6 +359,7 @@ static int virtio_mmio_probe(struct udevice *udev)
 	priv->base = (void __iomem *)(uintptr_t)plat->base;
 
 	/* Check magic value */
+	log_debug("probe %p\n", priv->base);
 	magic = readl(priv->base + VIRTIO_MMIO_MAGIC_VALUE);
 	if (magic != ('v' | 'i' << 8 | 'r' << 16 | 't' << 24)) {
 		debug("(%s): wrong magic value 0x%08x!\n", udev->name, magic);
@@ -387,13 +388,13 @@ static int virtio_mmio_probe(struct udevice *udev)
 	if (priv->version == 1)
 		writel(PAGE_SIZE, priv->base + VIRTIO_MMIO_GUEST_PAGE_SIZE);
 
-	debug("(%s): device (%d) vendor (%08x) version (%d)\n", udev->name,
+	debug("(%s): device (%04x) vendor (%04x) version (%d)\n", udev->name,
 	      uc_priv->device, uc_priv->vendor, priv->version);
 
 	return 0;
 }
 
-static const struct dm_virtio_ops virtio_mmio_ops = {
+const struct dm_virtio_ops virtio_mmio_ops = {
 	.get_config	= virtio_mmio_get_config,
 	.set_config	= virtio_mmio_set_config,
 	.generation	= virtio_mmio_generation,
-- 
2.43.0



More information about the U-Boot mailing list