aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass2023-01-17 10:47:51 -0700
committerTom Rini2023-01-23 18:11:40 -0500
commit00fc8cade89e36855fe8143c4ee66e951a41734e (patch)
tree8e9b0f3f981b8e2a19387d2919c7d35a4c26d3c9
parent902400201de139cc1499dc4f794ed34d8a758ca8 (diff)
virtio: Add a block device
The test code for virtio is fairly simplistic and does not actually create a block device. Add a way to specify the device type in the device tree. Add a block device so that we can do more testing. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/sandbox/dts/test.dts6
-rw-r--r--drivers/virtio/virtio_sandbox.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 2e580f980fc..9d96e479ca8 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -1527,12 +1527,18 @@
sandbox_virtio1 {
compatible = "sandbox,virtio1";
+ virtio-type = <4>; /* rng */
};
sandbox_virtio2 {
compatible = "sandbox,virtio2";
};
+ sandbox-virtio-blk {
+ compatible = "sandbox,virtio1";
+ virtio-type = <2>; /* block */
+ };
+
sandbox_scmi {
compatible = "sandbox,scmi-devices";
clocks = <&clk_scmi 2>, <&clk_scmi 0>;
diff --git a/drivers/virtio/virtio_sandbox.c b/drivers/virtio/virtio_sandbox.c
index cf7761c75ee..b34f1d60455 100644
--- a/drivers/virtio/virtio_sandbox.c
+++ b/drivers/virtio/virtio_sandbox.c
@@ -161,7 +161,8 @@ static int virtio_sandbox_probe(struct udevice *udev)
/* fake some information for testing */
priv->device_features = BIT_ULL(VIRTIO_F_VERSION_1);
- uc_priv->device = VIRTIO_ID_RNG;
+ uc_priv->device = dev_read_u32_default(udev, "virtio-type",
+ VIRTIO_ID_RNG);
uc_priv->vendor = ('u' << 24) | ('b' << 16) | ('o' << 8) | 't';
return 0;