diff options
Diffstat (limited to 'roms/SLOF/lib/libvirtio/virtio.c')
-rw-r--r-- | roms/SLOF/lib/libvirtio/virtio.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/roms/SLOF/lib/libvirtio/virtio.c b/roms/SLOF/lib/libvirtio/virtio.c index 29d5dd35d..249f8039c 100644 --- a/roms/SLOF/lib/libvirtio/virtio.c +++ b/roms/SLOF/lib/libvirtio/virtio.c @@ -128,6 +128,21 @@ void virtio_queue_notify(struct virtio_device *dev, int queue) } } +/** + * Set queue address + */ +void virtio_set_qaddr(struct virtio_device *dev, int queue, unsigned int qaddr) +{ + if (dev->type == VIRTIO_TYPE_PCI) { + uint32_t val = qaddr; + val = val >> 12; + ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT, + cpu_to_le16(queue)); + eieio(); + ci_write_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS, + cpu_to_le32(val)); + } +} /** * Set device status bits |