search for: msix_config

Displaying 20 results from an estimated 57 matches for "msix_config".

Did you mean: mic_config
2011 Dec 08
14
[PATCH 0/11] RFC: PCI using capabilitities
Here's the patch series I ended up with. I haven't coded up the QEMU side yet, so no idea if the new driver works. Questions: (1) Do we win from separating ISR, NOTIFY and COMMON? (2) I used a "u8 bar"; should I use a bir and pack it instead? BIR seems a little obscure (noone else in the kernel source seems to refer to it). Cheers, Rusty.
2011 Dec 08
14
[PATCH 0/11] RFC: PCI using capabilitities
Here's the patch series I ended up with. I haven't coded up the QEMU side yet, so no idea if the new driver works. Questions: (1) Do we win from separating ISR, NOTIFY and COMMON? (2) I used a "u8 bar"; should I use a bir and pack it instead? BIR seems a little obscure (noone else in the kernel source seems to refer to it). Cheers, Rusty.
2013 May 29
0
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...->guest_feature_select; case offsetof(struct virtio_pci_common_cfg, guest_feature): + assert(size == sizeof cfg.guest_feature); /* TODO: 64-bit features */ return proxy->guest_feature_select ? 0 : vdev->guest_features; case offsetof(struct virtio_pci_common_cfg, msix_config): + assert(size == sizeof cfg.msix_config); return vdev->config_vector; case offsetof(struct virtio_pci_common_cfg, num_queues): + assert(size == sizeof cfg.num_queues); /* TODO: more exact limit? */ return VIRTIO_PCI_QUEUE_MAX; case offsetof(struct virtio_pc...
2013 May 29
6
[PATCH RFC] virtio-pci: new config layout: using memory BAR
Anthony Liguori <aliguori at us.ibm.com> writes: > "Michael S. Tsirkin" <mst at redhat.com> writes: >> + case offsetof(struct virtio_pci_common_cfg, device_feature_select): >> + return proxy->device_feature_select; > > Oh dear no... Please use defines like the rest of QEMU. It is pretty ugly. Yet the structure definitions are descriptive,
2013 May 29
6
[PATCH RFC] virtio-pci: new config layout: using memory BAR
Anthony Liguori <aliguori at us.ibm.com> writes: > "Michael S. Tsirkin" <mst at redhat.com> writes: >> + case offsetof(struct virtio_pci_common_cfg, device_feature_select): >> + return proxy->device_feature_select; > > Oh dear no... Please use defines like the rest of QEMU. It is pretty ugly. Yet the structure definitions are descriptive,
2015 Feb 15
3
[PATCH 1/2] virtio_pci_modern: type-safe io accessors
The spec is very clear on this: 4.1.3.1 Driver Requirements: PCI Device Layout The driver MUST access each field using the ?natural? access method, i.e. 32-bit accesses for 32-bit fields, 16-bit accesses for 16-bit fields and 8-bit accesses for 8-bit fields. Add type-safe wrappers to prevent access with incorrect width. Signed-off-by: Michael S. Tsirkin <mst at redhat.com> ---
2015 Feb 15
3
[PATCH 1/2] virtio_pci_modern: type-safe io accessors
The spec is very clear on this: 4.1.3.1 Driver Requirements: PCI Device Layout The driver MUST access each field using the ?natural? access method, i.e. 32-bit accesses for 32-bit fields, 16-bit accesses for 16-bit fields and 8-bit accesses for 8-bit fields. Add type-safe wrappers to prevent access with incorrect width. Signed-off-by: Michael S. Tsirkin <mst at redhat.com> ---
2013 Mar 21
24
[PATCH 00/22] New virtio PCI layout
I've renewed this again, with some comments from HPA. I've tried to keep the new patches separate, so you can see the changes since we last discussed this (and so it's easy to back it out if we decide it's insane). I haven't even looked at the QEMU side so this is completely untested. Comments gratefully received! Rusty. Michael S Tsirkin (1): pci: add pci_iomap_range
2013 Mar 21
24
[PATCH 00/22] New virtio PCI layout
I've renewed this again, with some comments from HPA. I've tried to keep the new patches separate, so you can see the changes since we last discussed this (and so it's easy to back it out if we decide it's insane). I haven't even looked at the QEMU side so this is completely untested. Comments gratefully received! Rusty. Michael S Tsirkin (1): pci: add pci_iomap_range
2013 May 27
1
[PATCH rusty/virtio-pci-new-layout] virtio: new layout minor header fixups
.../* Length. */ }; @@ -144,7 +146,7 @@ struct virtio_pci_common_cfg { __le32 device_feature_select; /* read-write */ __le32 device_feature; /* read-only */ __le32 guest_feature_select; /* read-write */ - __le32 guest_feature; /* read-only */ + __le32 guest_feature; /* read-write */ __le16 msix_config; /* read-write */ __le16 num_queues; /* read-only */ __u8 device_status; /* read-write */ -- MST
2013 May 27
1
[PATCH rusty/virtio-pci-new-layout] virtio: new layout minor header fixups
.../* Length. */ }; @@ -144,7 +146,7 @@ struct virtio_pci_common_cfg { __le32 device_feature_select; /* read-write */ __le32 device_feature; /* read-only */ __le32 guest_feature_select; /* read-write */ - __le32 guest_feature; /* read-only */ + __le32 guest_feature; /* read-write */ __le16 msix_config; /* read-write */ __le16 num_queues; /* read-only */ __u8 device_status; /* read-write */ -- MST
2019 Nov 08
0
[PATCH 1/2] IFC hardware operation layer
...> +{ > + struct virtio_pci_common_cfg *cfg; > + struct ifcvf_adapter *ifcvf; > + u8 *lm_cfg; > + u32 i; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + cfg = hw->common_cfg; > + lm_cfg = hw->lm_cfg; > + iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); > + > + if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { > + IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); > + return -1; > + } > + > + for (i = 0; i < hw->nr_vring; i++) { > + iowrite16(i, &cfg->queue_select); &g...
2019 Nov 05
1
[PATCH 1/2] IFC hardware operation layer
...> +{ > + struct virtio_pci_common_cfg *cfg; > + struct ifcvf_adapter *ifcvf; > + u8 *lm_cfg; > + u32 i; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + cfg = hw->common_cfg; > + lm_cfg = hw->lm_cfg; > + iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); > + > + if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { > + IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); > + return -1; > + } > + > + for (i = 0; i < hw->nr_vring; i++) { > + iowrite16(i, &cfg->queue_select); &g...
2019 Nov 05
0
[PATCH 1/2] IFC hardware operation layer
...> +{ > + struct virtio_pci_common_cfg *cfg; > + struct ifcvf_adapter *ifcvf; > + u8 *lm_cfg; > + u32 i; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + cfg = hw->common_cfg; > + lm_cfg = hw->lm_cfg; > + iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); > + > + if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { > + IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); > + return -1; > + } > + > + for (i = 0; i < hw->nr_vring; i++) { > + iowrite16(i, &cfg->queue_select); &g...
2019 Nov 06
0
[PATCH 1/2] IFC hardware operation layer
...> +{ > + struct virtio_pci_common_cfg *cfg; > + struct ifcvf_adapter *ifcvf; > + u8 *lm_cfg; > + u32 i; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + cfg = hw->common_cfg; > + lm_cfg = hw->lm_cfg; > + iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); > + > + if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { > + IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); > + return -1; > + } > + > + for (i = 0; i < hw->nr_vring; i++) { > + iowrite16(i, &cfg->queue_select); &g...
2019 Oct 16
0
[RFC 1/2] vhost: IFC VF hardware operation layer
...gt; +{ > + struct virtio_pci_common_cfg *cfg; > + u8 *lm_cfg; > + u32 i; > + struct ifcvf_adapter *ifcvf = > + container_of(hw, struct ifcvf_adapter, vf); > + > + cfg = hw->common_cfg; > + lm_cfg = hw->lm_cfg; > + > + iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); > + if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { > + IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); > + return -1; > + } > + > + for (i = 0; i < hw->nr_vring; i++) { > + iowrite16(i, &cfg->queue_select); > + i...
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...n_cfg, guest_feature_select): + return proxy->guest_feature_select; + case offsetof(struct virtio_pci_common_cfg, guest_feature): + /* TODO: 64-bit features */ + return proxy->guest_feature_select ? 0 : vdev->guest_features; + case offsetof(struct virtio_pci_common_cfg, msix_config): + return vdev->config_vector; + case offsetof(struct virtio_pci_common_cfg, num_queues): + /* TODO: more exact limit? */ + return VIRTIO_PCI_QUEUE_MAX; + case offsetof(struct virtio_pci_common_cfg, device_status): + return vdev->status; + + /* About a specific virtqueue....
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...n_cfg, guest_feature_select): + return proxy->guest_feature_select; + case offsetof(struct virtio_pci_common_cfg, guest_feature): + /* TODO: 64-bit features */ + return proxy->guest_feature_select ? 0 : vdev->guest_features; + case offsetof(struct virtio_pci_common_cfg, msix_config): + return vdev->config_vector; + case offsetof(struct virtio_pci_common_cfg, num_queues): + /* TODO: more exact limit? */ + return VIRTIO_PCI_QUEUE_MAX; + case offsetof(struct virtio_pci_common_cfg, device_status): + return vdev->status; + + /* About a specific virtqueue....
2019 Oct 21
0
[RFC 1/2] vhost: IFC VF hardware operation layer
...u32 i; >>> +??? struct ifcvf_adapter *ifcvf = >>> +??????? container_of(hw, struct ifcvf_adapter, vf); >>> + >>> +??? cfg = hw->common_cfg; >>> +??? lm_cfg = hw->lm_cfg; >>> + >>> +??? iowrite16(IFCVF_MSI_CONFIG_OFF, &cfg->msix_config); >>> +??? if (ioread16(&cfg->msix_config) == VIRTIO_MSI_NO_VECTOR) { >>> +??????? IFC_ERR(ifcvf->dev, "No msix vector for device config.\n"); >>> +??????? return -1; >>> +??? } >>> + >>> +??? for (i = 0; i < hw->nr_vri...
2013 May 28
0
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...ct): > + return proxy->guest_feature_select; > + case offsetof(struct virtio_pci_common_cfg, guest_feature): > + /* TODO: 64-bit features */ > + return proxy->guest_feature_select ? 0 : vdev->guest_features; > + case offsetof(struct virtio_pci_common_cfg, msix_config): > + return vdev->config_vector; > + case offsetof(struct virtio_pci_common_cfg, num_queues): > + /* TODO: more exact limit? */ > + return VIRTIO_PCI_QUEUE_MAX; > + case offsetof(struct virtio_pci_common_cfg, device_status): > + return vdev->status; >...