[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 2/7] aer: impove pcie_aer_init to support vfi
From: |
Alex Williamson |
Subject: |
Re: [Qemu-devel] [PATCH v5 2/7] aer: impove pcie_aer_init to support vfio device |
Date: |
Fri, 13 Mar 2015 16:25:01 -0600 |
On Thu, 2015-03-12 at 18:23 +0800, Chen Fan wrote:
> pcie_aer_init was used to emulate an aer capability for pcie device,
> but for vfio device, the aer config space size is mutable and is not
> always equal to PCI_ERR_SIZEOF(0x48). it depends on where the TLP Prefix
> register required, so here we add a size argument.
This would need to go through the QEMU PCI tree. Question, do all of
the fields of the AER capability directly translate to the guest view of
the device? For instance, are there source and destination values that
need to be emulated for the guest? I'm not really sure what we're
exposing via the TLP Prefix area. Thanks,
Alex
> Signed-off-by: Chen Fan <address@hidden>
> ---
> hw/pci-bridge/ioh3420.c | 2 +-
> hw/pci-bridge/xio3130_downstream.c | 2 +-
> hw/pci-bridge/xio3130_upstream.c | 2 +-
> hw/pci/pcie_aer.c | 4 ++--
> include/hw/pci/pcie_aer.h | 2 +-
> 5 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/pci-bridge/ioh3420.c b/hw/pci-bridge/ioh3420.c
> index cce2fdd..4d9cd3f 100644
> --- a/hw/pci-bridge/ioh3420.c
> +++ b/hw/pci-bridge/ioh3420.c
> @@ -129,7 +129,7 @@ static int ioh3420_initfn(PCIDevice *d)
> goto err_pcie_cap;
> }
> pcie_cap_root_init(d);
> - rc = pcie_aer_init(d, IOH_EP_AER_OFFSET);
> + rc = pcie_aer_init(d, IOH_EP_AER_OFFSET, PCI_ERR_SIZEOF);
> if (rc < 0) {
> goto err;
> }
> diff --git a/hw/pci-bridge/xio3130_downstream.c
> b/hw/pci-bridge/xio3130_downstream.c
> index b3a6479..9737041 100644
> --- a/hw/pci-bridge/xio3130_downstream.c
> +++ b/hw/pci-bridge/xio3130_downstream.c
> @@ -92,7 +92,7 @@ static int xio3130_downstream_initfn(PCIDevice *d)
> goto err_pcie_cap;
> }
> pcie_cap_arifwd_init(d);
> - rc = pcie_aer_init(d, XIO3130_AER_OFFSET);
> + rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF);
> if (rc < 0) {
> goto err;
> }
> diff --git a/hw/pci-bridge/xio3130_upstream.c
> b/hw/pci-bridge/xio3130_upstream.c
> index eada582..4d7f894 100644
> --- a/hw/pci-bridge/xio3130_upstream.c
> +++ b/hw/pci-bridge/xio3130_upstream.c
> @@ -81,7 +81,7 @@ static int xio3130_upstream_initfn(PCIDevice *d)
> }
> pcie_cap_flr_init(d);
> pcie_cap_deverr_init(d);
> - rc = pcie_aer_init(d, XIO3130_AER_OFFSET);
> + rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF);
> if (rc < 0) {
> goto err;
> }
> diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
> index 5a25c32..71045eb 100644
> --- a/hw/pci/pcie_aer.c
> +++ b/hw/pci/pcie_aer.c
> @@ -94,12 +94,12 @@ static void aer_log_clear_all_err(PCIEAERLog *aer_log)
> aer_log->log_num = 0;
> }
>
> -int pcie_aer_init(PCIDevice *dev, uint16_t offset)
> +int pcie_aer_init(PCIDevice *dev, uint16_t offset, uint16_t size)
> {
> PCIExpressDevice *exp;
>
> pcie_add_capability(dev, PCI_EXT_CAP_ID_ERR, PCI_ERR_VER,
> - offset, PCI_ERR_SIZEOF);
> + offset, size);
> exp = &dev->exp;
> exp->aer_cap = offset;
>
> diff --git a/include/hw/pci/pcie_aer.h b/include/hw/pci/pcie_aer.h
> index bcac80a..a4cc6f3 100644
> --- a/include/hw/pci/pcie_aer.h
> +++ b/include/hw/pci/pcie_aer.h
> @@ -87,7 +87,7 @@ struct PCIEAERErr {
>
> extern const VMStateDescription vmstate_pcie_aer_log;
>
> -int pcie_aer_init(PCIDevice *dev, uint16_t offset);
> +int pcie_aer_init(PCIDevice *dev, uint16_t offset, uint16_t size);
> void pcie_aer_exit(PCIDevice *dev);
> void pcie_aer_write_config(PCIDevice *dev,
> uint32_t addr, uint32_t val, int len);
- Re: [Qemu-devel] [PATCH v5 5/7] vfio-pci: pass the aer error to guest, (continued)
[Qemu-devel] [PATCH v5 1/7] vfio: add pcie extanded capability support, Chen Fan, 2015/03/12
[Qemu-devel] [PATCH v5 4/7] pcie_aer: expose pcie_aer_msg() interface, Chen Fan, 2015/03/12
[Qemu-devel] [PATCH v5 2/7] aer: impove pcie_aer_init to support vfio device, Chen Fan, 2015/03/12
- Re: [Qemu-devel] [PATCH v5 2/7] aer: impove pcie_aer_init to support vfio device,
Alex Williamson <=
[Qemu-devel] [PATCH v5 3/7] vfio: add aer support for vfio device, Chen Fan, 2015/03/12
[Qemu-devel] [PATCH v5 6/7] vfio: add 'x-aer' property to expose aercap, Chen Fan, 2015/03/12
[Qemu-devel] [PATCH v5 7/7] pc: add PC_I440FX_COMPAT to disable aercap for vifo device, Chen Fan, 2015/03/12