Index: uspace/lib/c/generic/ddi.c
===================================================================
--- uspace/lib/c/generic/ddi.c	(revision cede6f8f774fec84d9323564ee08a010e506545a)
+++ uspace/lib/c/generic/ddi.c	(revision 848e880fda73cd0edc7152878b52d08a679cd828)
@@ -224,4 +224,5 @@
  * @param res        Resources specifying the I/O range wrt. to the PIO window.
  * @param[out] virt  Virtual address for application's PIO operations.
+ * @param[out] phys  If non-NULL, physical address of the resource
  * @param[out] size  If non-NULL, size of the enabled resource.
  *
@@ -231,5 +232,5 @@
  */
 errno_t pio_enable_resource(pio_window_t *win, hw_resource_t *res, void **virt,
-    size_t *size)
+    uintptr_t *phys, size_t *size)
 {
 	uintptr_t addr;
@@ -259,4 +260,6 @@
 	}
 
+	if (phys)
+		*phys = addr;
 	if (size)
 		*size = sz;
Index: uspace/lib/c/include/ddi.h
===================================================================
--- uspace/lib/c/include/ddi.h	(revision cede6f8f774fec84d9323564ee08a010e506545a)
+++ uspace/lib/c/include/ddi.h	(revision 848e880fda73cd0edc7152878b52d08a679cd828)
@@ -66,5 +66,5 @@
 extern errno_t pio_enable_range(addr_range_t *, void **);
 extern errno_t pio_enable_resource(pio_window_t *, hw_resource_t *, void **,
-    size_t *);
+    uintptr_t *, size_t *);
 extern errno_t pio_enable(void *, size_t, void **);
 extern errno_t pio_disable(void *, size_t);
Index: uspace/lib/virtio/virtio-pci.c
===================================================================
--- uspace/lib/virtio/virtio-pci.c	(revision cede6f8f774fec84d9323564ee08a010e506545a)
+++ uspace/lib/virtio/virtio-pci.c	(revision 848e880fda73cd0edc7152878b52d08a679cd828)
@@ -151,5 +151,6 @@
 		hw_resource_t *res = &hw_res.resources[j];
 		rc = pio_enable_resource(&pio_window, res,
-		    &vdev->bar[i].mapped_base, &vdev->bar[i].mapped_size);
+		    &vdev->bar[i].mapped_base, &vdev->bar[i].phys_base,
+		    &vdev->bar[i].mapped_size);
 		if (rc == EOK)
 			vdev->bar[i].mapped = true;
Index: uspace/lib/virtio/virtio-pci.h
===================================================================
--- uspace/lib/virtio/virtio-pci.h	(revision cede6f8f774fec84d9323564ee08a010e506545a)
+++ uspace/lib/virtio/virtio-pci.h	(revision 848e880fda73cd0edc7152878b52d08a679cd828)
@@ -152,4 +152,5 @@
 	struct {
 		bool mapped;
+		uintptr_t phys_base;
 		void *mapped_base;
 		size_t mapped_size;
