From 0a27aef078bb9aa52ae9bee42bf6261c0fceb954 Mon Sep 17 00:00:00 2001 From: Bowen Wang Date: Wed, 14 May 2025 15:01:13 +0800 Subject: [PATCH] virtio/virtio-pci-modern: support PCI_RESOURCE_MEM_64 capability On 64-bit platforms, the capability flags use PCI_RESOURCE_MEM_64 instead of PCI_RESOURCE_MEM. Add support to find both flag types. Signed-off-by: Bowen Wang --- drivers/virtio/virtio-pci-modern.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/virtio/virtio-pci-modern.c b/drivers/virtio/virtio-pci-modern.c index adb2b0a62fd..fd0fbdcf90b 100644 --- a/drivers/virtio/virtio-pci-modern.c +++ b/drivers/virtio/virtio-pci-modern.c @@ -626,7 +626,8 @@ static int virtio_pci_init_device(FAR struct virtio_pci_device_s *vpdev) /* Find pci capabilities */ common = virtio_pci_find_capability(dev, VIRTIO_PCI_CAP_COMMON_CFG, - PCI_RESOURCE_MEM); + PCI_RESOURCE_MEM | + PCI_RESOURCE_MEM_64); if (common == 0) { vrtinfo("Leaving for legacy driver\n"); @@ -634,7 +635,7 @@ static int virtio_pci_init_device(FAR struct virtio_pci_device_s *vpdev) } isr = virtio_pci_find_capability(dev, VIRTIO_PCI_CAP_ISR_CFG, - PCI_RESOURCE_MEM); + PCI_RESOURCE_MEM | PCI_RESOURCE_MEM_64); if (isr == 0) { vrterr("Missing isr capabilities\n"); @@ -642,7 +643,8 @@ static int virtio_pci_init_device(FAR struct virtio_pci_device_s *vpdev) } notify = virtio_pci_find_capability(dev, VIRTIO_PCI_CAP_NOTIFY_CFG, - PCI_RESOURCE_MEM); + PCI_RESOURCE_MEM | + PCI_RESOURCE_MEM_64); if (notify == 0) { vrterr("Missing capabilities %d %d %d\n", isr, common, notify); @@ -650,7 +652,8 @@ static int virtio_pci_init_device(FAR struct virtio_pci_device_s *vpdev) } device = virtio_pci_find_capability(dev, VIRTIO_PCI_CAP_DEVICE_CFG, - PCI_RESOURCE_MEM); + PCI_RESOURCE_MEM | + PCI_RESOURCE_MEM_64); /* Map the BAR */