From af39ee49d877f5d00d11bbfe57c46e66f9dacb7c Mon Sep 17 00:00:00 2001 From: Bowen Wang Date: Thu, 16 Nov 2023 14:43:08 +0800 Subject: [PATCH] virtio-mmio: use nuttx implemented io operation instead libmetal's Openamp/libmetal's metal io operation used the atomic operation, but in QEMU 8.1.2, the risc-v IO region is not allow to use atomic instruction in SMP case. Signed-off-by: Bowen Wang --- drivers/virtio/virtio-mmio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio-mmio.c b/drivers/virtio/virtio-mmio.c index 97a23bd1026..b9d1f90ebba 100644 --- a/drivers/virtio/virtio-mmio.c +++ b/drivers/virtio/virtio-mmio.c @@ -759,9 +759,9 @@ static int virtio_mmio_init_device(FAR struct virtio_mmio_device_s *vmdev, vmdev->shm_phy = (metal_phys_addr_t)0; vmdev->cfg_phy = (metal_phys_addr_t)regs; metal_io_init(&vmdev->shm_io, NULL, &vmdev->shm_phy, - SIZE_MAX, UINT_MAX, 0, NULL); + SIZE_MAX, UINT_MAX, 0, metal_io_get_ops()); metal_io_init(&vmdev->cfg_io, regs, &vmdev->cfg_phy, - SIZE_MAX, UINT_MAX, 0, NULL); + SIZE_MAX, UINT_MAX, 0, metal_io_get_ops()); /* Init the virtio device */