qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 2/3] pci: Update pci_regs header


From: Knut Omang
Subject: Re: [Qemu-devel] [PATCH v4 2/3] pci: Update pci_regs header
Date: Sat, 10 Oct 2015 12:46:05 +0200

On Wed, 2015-10-07 at 16:32 +0300, Marcel Apfelbaum wrote:
> On 09/12/2015 03:36 PM, Knut Omang wrote:
> > Merge in new definitions from kernel v4.2
> > Adds definition necessary to support emulated SR/IOV.
> 
> In the meantime Paolo updated this header to 4.3-RC1, is this patch
> still needed?
> 
> Thanks,
> Marcel

Quite right - it is gone after rebase.

Thanks,
Knut

> > 
> > Signed-off-by: Knut Omang <address@hidden>
> > ---
> >   include/standard-headers/linux/pci_regs.h | 142
> > +++++++++++++++++++++++++-----
> >   1 file changed, 118 insertions(+), 24 deletions(-)
> > 
> > diff --git a/include/standard-headers/linux/pci_regs.h
> > b/include/standard-headers/linux/pci_regs.h
> > index 57e8c80..3d56c1e 100644
> > --- a/include/standard-headers/linux/pci_regs.h
> > +++ b/include/standard-headers/linux/pci_regs.h
> > @@ -304,13 +304,14 @@
> >   #define PCI_MSI_PENDING_64        20      /* Pending bits
> > register for 32-bit devices */
> > 
> >   /* MSI-X registers */
> > -#define PCI_MSIX_FLAGS             2
> > -#define  PCI_MSIX_FLAGS_QSIZE      0x7FF
> > -#define  PCI_MSIX_FLAGS_ENABLE     (1 << 15)
> > -#define  PCI_MSIX_FLAGS_MASKALL    (1 << 14)
> > -#define PCI_MSIX_TABLE             4
> > -#define PCI_MSIX_PBA               8
> > +#define PCI_MSIX_FLAGS             2       /* Message Control
> > */
> > +#define  PCI_MSIX_FLAGS_QSIZE      0x7FF   /* Table size */
> > +#define  PCI_MSIX_FLAGS_ENABLE     (1 << 15) /* MSI-X enable */
> > +#define  PCI_MSIX_FLAGS_MASKALL    (1 << 14) /* Mask all
> > vectors for this function */
> > +#define PCI_MSIX_TABLE             4       /* Table offset */
> > +#define PCI_MSIX_PBA               8       /* Pending Bit Array
> > offset */
> >   #define  PCI_MSIX_FLAGS_BIRMASK   (7 << 0)
> > +#define PCI_CAP_MSIX_SIZEOF        12      /* size of MSIX
> > capability structure */
> > 
> >   /* MSI-X entry's format */
> >   #define PCI_MSIX_ENTRY_SIZE               16
> > @@ -517,31 +518,63 @@
> >   #define  PCI_EXP_OBFF_MSG 0x40000 /* New message signaling
> > */
> >   #define  PCI_EXP_OBFF_WAKE        0x80000 /* Re-use WAKE# for
> > OBFF */
> >   #define PCI_EXP_DEVCTL2           40      /* Device
> > Control 2 */
> > -#define  PCI_EXP_DEVCTL2_ARI       0x20    /* Alternative
> > Routing-ID */
> > -#define  PCI_EXP_IDO_REQ_EN        0x100   /* ID-based
> > ordering request enable */
> > -#define  PCI_EXP_IDO_CMP_EN        0x200   /* ID-based
> > ordering completion enable */
> > -#define  PCI_EXP_LTR_EN            0x400   /* Latency
> > tolerance reporting */
> > -#define  PCI_EXP_OBFF_MSGA_EN      0x2000  /* OBFF enable
> > with Message type A */
> > -#define  PCI_EXP_OBFF_MSGB_EN      0x4000  /* OBFF enable
> > with Message type B */
> > -#define  PCI_EXP_OBFF_WAKE_EN      0x6000  /* OBFF using
> > WAKE# signaling */
> > +#define  PCI_EXP_DEVCTL2_COMP_TIMEOUT      0x000f  /*
> > Completion Timeout Value */
> > +#define  PCI_EXP_DEVCTL2_ARI               0x0020  /*
> > Alternative Routing-ID */
> > +#define  PCI_EXP_DEVCTL2_IDO_REQ_EN        0x0100  /* Allow
> > IDO for requests */
> > +#define  PCI_EXP_DEVCTL2_IDO_CMP_EN        0x0200  /* Allow
> > IDO for completions */
> > +#define  PCI_EXP_DEVCTL2_LTR_EN            0x0400  /*
> > Enable LTR mechanism */
> > +#define  PCI_EXP_DEVCTL2_OBFF_MSGA_EN      0x2000  /*
> > Enable OBFF Message type A */
> > +#define  PCI_EXP_DEVCTL2_OBFF_MSGB_EN      0x4000  /*
> > Enable OBFF Message type B */
> > +#define  PCI_EXP_DEVCTL2_OBFF_WAKE_EN      0x6000  /* OBFF
> > using WAKE# signaling */
> > +#define PCI_EXP_DEVSTA2            42      /* Device Status
> > 2 */
> > +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2     44      /* v2
> > endpoints end here */
> > +#define PCI_EXP_LNKCAP2            44      /* Link
> > Capabilities 2 */
> > +#define  PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported
> > Speed 2.5GT/s */
> > +#define  PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported
> > Speed 5.0GT/s */
> > +#define  PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported
> > Speed 8.0GT/s */
> > +#define  PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink
> > supported */
> >   #define PCI_EXP_LNKCTL2           48      /* Link Control
> > 2 */
> > -#define PCI_EXP_SLTCTL2            56      /* Slot Control 2
> > */
> > +#define PCI_EXP_LNKSTA2            50      /* Link Status 2
> > */
> > +#define PCI_EXP_SLTCAP2            52      /* Slot
> > Capabilities 2 */
> > +#define PCI_EXP_SLTCTL2    56      /* Slot Control 2 */
> > +#define PCI_EXP_SLTSTA2            58      /* Slot Status 2
> > */
> > 
> >   /* Extended Capabilities (PCI-X 2.0 and Express) */
> >   #define PCI_EXT_CAP_ID(header)            (header &
> > 0x0000ffff)
> >   #define PCI_EXT_CAP_VER(header)           ((header >> 16) &
> > 0xf)
> >   #define PCI_EXT_CAP_NEXT(header)  ((header >> 20) & 0xffc)
> > 
> > -#define PCI_EXT_CAP_ID_ERR 1
> > -#define PCI_EXT_CAP_ID_VC  2
> > -#define PCI_EXT_CAP_ID_DSN 3
> > -#define PCI_EXT_CAP_ID_PWR 4
> > -#define PCI_EXT_CAP_ID_VNDR        11
> > -#define PCI_EXT_CAP_ID_ACS 13
> > -#define PCI_EXT_CAP_ID_ARI 14
> > -#define PCI_EXT_CAP_ID_ATS 15
> > -#define PCI_EXT_CAP_ID_SRIOV       16
> > -#define PCI_EXT_CAP_ID_LTR 24
> > +#define PCI_EXT_CAP_ID_ERR 0x01    /* Advanced Error
> > Reporting */
> > +#define PCI_EXT_CAP_ID_VC  0x02    /* Virtual Channel
> > Capability */
> > +#define PCI_EXT_CAP_ID_DSN 0x03    /* Device Serial
> > Number */
> > +#define PCI_EXT_CAP_ID_PWR 0x04    /* Power Budgeting
> > */
> > +#define PCI_EXT_CAP_ID_RCLD        0x05    /* Root Complex
> > Link Declaration */
> > +#define PCI_EXT_CAP_ID_RCILC       0x06    /* Root Complex
> > Internal Link Control */
> > +#define PCI_EXT_CAP_ID_RCEC        0x07    /* Root Complex
> > Event Collector */
> > +#define PCI_EXT_CAP_ID_MFVC        0x08    /* Multi-Function
> > VC Capability */
> > +#define PCI_EXT_CAP_ID_VC9 0x09    /* same as _VC */
> > +#define PCI_EXT_CAP_ID_RCRB        0x0A    /* Root Complex RB?
> > */
> > +#define PCI_EXT_CAP_ID_VNDR        0x0B    /* Vendor-Specific
> > */
> > +#define PCI_EXT_CAP_ID_CAC 0x0C    /* Config Access -
> > obsolete */
> > +#define PCI_EXT_CAP_ID_ACS 0x0D    /* Access Control
> > Services */
> > +#define PCI_EXT_CAP_ID_ARI 0x0E    /* Alternate Routing
> > ID */
> > +#define PCI_EXT_CAP_ID_ATS 0x0F    /* Address
> > Translation Services */
> > +#define PCI_EXT_CAP_ID_SRIOV       0x10    /* Single Root I/O
> > Virtualization */
> > +#define PCI_EXT_CAP_ID_MRIOV       0x11    /* Multi Root I/O
> > Virtualization */
> > +#define PCI_EXT_CAP_ID_MCAST       0x12    /* Multicast */
> > +#define PCI_EXT_CAP_ID_PRI 0x13    /* Page Request
> > Interface */
> > +#define PCI_EXT_CAP_ID_AMD_XXX     0x14    /* Reserved for
> > AMD */
> > +#define PCI_EXT_CAP_ID_REBAR       0x15    /* Resizable BAR
> > */
> > +#define PCI_EXT_CAP_ID_DPA 0x16    /* Dynamic Power
> > Allocation */
> > +#define PCI_EXT_CAP_ID_TPH 0x17    /* TPH Requester */
> > +#define PCI_EXT_CAP_ID_LTR 0x18    /* Latency Tolerance
> > Reporting */
> > +#define PCI_EXT_CAP_ID_SECPCI      0x19    /* Secondary PCIe
> > Capability */
> > +#define PCI_EXT_CAP_ID_PMUX        0x1A    /* Protocol
> > Multiplexing */
> > +#define PCI_EXT_CAP_ID_PASID       0x1B    /* Process Address
> > Space ID */
> > +#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PASID
> > +
> > +#define PCI_EXT_CAP_DSN_SIZEOF     12
> > +#define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
> > 
> >   /* Advanced Error Reporting */
> >   #define PCI_ERR_UNCOR_STATUS      4       /* Uncorrectable
> > Error Status */
> > @@ -556,6 +589,11 @@
> >   #define  PCI_ERR_UNC_MALF_TLP     0x00040000      /*
> > Malformed TLP */
> >   #define  PCI_ERR_UNC_ECRC 0x00080000      /* ECRC Error
> > Status */
> >   #define  PCI_ERR_UNC_UNSUP        0x00100000      /*
> > Unsupported Request */
> > +#define  PCI_ERR_UNC_ACSV  0x00200000      /* ACS
> > Violation */
> > +#define  PCI_ERR_UNC_INTN  0x00400000      /* internal
> > error */
> > +#define  PCI_ERR_UNC_MCBTLP        0x00800000      /* MC blocked
> > TLP */
> > +#define  PCI_ERR_UNC_ATOMEG        0x01000000      /* Atomic
> > egress blocked */
> > +#define  PCI_ERR_UNC_TLPPRE        0x02000000      /* TLP prefix
> > blocked */
> >   #define PCI_ERR_UNCOR_MASK        8       /* Uncorrectable Error
> > Mask */
> >     /* Same bits as above */
> >   #define PCI_ERR_UNCOR_SEVER       12      /* Uncorrectable
> > Error Severity */
> > @@ -657,6 +695,7 @@
> >   #define  PCI_ARI_CTRL_MFVC        0x0001  /* MFVC Function
> > Groups Enable */
> >   #define  PCI_ARI_CTRL_ACS 0x0002  /* ACS Function
> > Groups Enable */
> >   #define  PCI_ARI_CTRL_FG(x)       (((x) >> 4) & 7) /* Function
> > Group */
> > +#define PCI_EXT_CAP_ARI_SIZEOF     8
> > 
> >   /* Address Translation Service */
> >   #define PCI_ATS_CAP               0x04    /* ATS Capability
> > Register */
> > @@ -666,6 +705,29 @@
> >   #define  PCI_ATS_CTRL_ENABLE      0x8000  /* ATS Enable
> > */
> >   #define  PCI_ATS_CTRL_STU(x)      ((x) & 0x1f)    /*
> > Smallest Translation Unit */
> >   #define  PCI_ATS_MIN_STU  12      /* shift of minimum STU
> > block */
> > +#define PCI_EXT_CAP_ATS_SIZEOF     8
> > +
> > +/* Page Request Interface */
> > +#define PCI_PRI_CTRL               0x04    /* PRI control
> > register */
> > +#define  PCI_PRI_CTRL_ENABLE       0x01    /* Enable */
> > +#define  PCI_PRI_CTRL_RESET        0x02    /* Reset */
> > +#define PCI_PRI_STATUS             0x06    /* PRI status
> > register */
> > +#define  PCI_PRI_STATUS_RF 0x001   /* Response Failure
> > */
> > +#define  PCI_PRI_STATUS_UPRGI      0x002   /* Unexpected
> > PRG index */
> > +#define  PCI_PRI_STATUS_STOPPED    0x100   /* PRI Stopped
> > */
> > +#define PCI_PRI_MAX_REQ            0x08    /* PRI max reqs
> > supported */
> > +#define PCI_PRI_ALLOC_REQ  0x0c    /* PRI max reqs
> > allowed */
> > +#define PCI_EXT_CAP_PRI_SIZEOF     16
> > +
> > +/* Process Address Space ID */
> > +#define PCI_PASID_CAP              0x04    /* PASID feature
> > register */
> > +#define  PCI_PASID_CAP_EXEC        0x02    /* Exec permissions
> > Supported */
> > +#define  PCI_PASID_CAP_PRIV        0x04    /* Privilege Mode
> > Supported */
> > +#define PCI_PASID_CTRL             0x06    /* PASID control
> > register */
> > +#define  PCI_PASID_CTRL_ENABLE     0x01    /* Enable bit */
> > +#define  PCI_PASID_CTRL_EXEC       0x02    /* Exec
> > permissions Enable */
> > +#define  PCI_PASID_CTRL_PRIV       0x04    /* Privilege Mode
> > Enable */
> > +#define PCI_EXT_CAP_PASID_SIZEOF   8
> > 
> >   /* Single Root I/O Virtualization */
> >   #define PCI_SRIOV_CAP             0x04    /* SR-IOV
> > Capabilities */
> > @@ -697,6 +759,7 @@
> >   #define  PCI_SRIOV_VFM_MI 0x1     /* Dormant.MigrateIn
> > */
> >   #define  PCI_SRIOV_VFM_MO 0x2     /* Active.MigrateOut
> > */
> >   #define  PCI_SRIOV_VFM_AV 0x3     /* Active.Available
> > */
> > +#define PCI_EXT_CAP_SRIOV_SIZEOF 64
> > 
> >   #define PCI_LTR_MAX_SNOOP_LAT     0x4
> >   #define PCI_LTR_MAX_NOSNOOP_LAT   0x6
> > @@ -713,7 +776,38 @@
> >   #define  PCI_ACS_UF               0x10    /* Upstream
> > Forwarding */
> >   #define  PCI_ACS_EC               0x20    /* P2P Egress
> > Control */
> >   #define  PCI_ACS_DT               0x40    /* Direct
> > Translated P2P */
> > +#define PCI_ACS_EGRESS_BITS        0x05    /* ACS Egress
> > Control Vector Size */
> >   #define PCI_ACS_CTRL              0x06    /* ACS Control
> > Register */
> >   #define PCI_ACS_EGRESS_CTL_V      0x08    /* ACS Egress
> > Control Vector */
> > 
> > +#define PCI_VSEC_HDR               4       /* extended cap -
> > vendor-specific */
> > +#define  PCI_VSEC_HDR_LEN_SHIFT    20      /* shift for
> > length field */
> > +
> > +/* SATA capability */
> > +#define PCI_SATA_REGS              4       /* SATA REGs
> > specifier */
> > +#define  PCI_SATA_REGS_MASK        0xF     /* location -
> > BAR#/inline */
> > +#define  PCI_SATA_REGS_INLINE      0xF     /* REGS in config
> > space */
> > +#define PCI_SATA_SIZEOF_SHORT      8
> > +#define PCI_SATA_SIZEOF_LONG       16
> > +
> > +/* Resizable BARs */
> > +#define PCI_REBAR_CTRL             8       /* control register
> > */
> > +#define  PCI_REBAR_CTRL_NBAR_MASK  (7 << 5)        /* mask
> > for # bars */
> > +#define  PCI_REBAR_CTRL_NBAR_SHIFT 5       /* shift for #
> > bars */
> > +
> > +/* Dynamic Power Allocation */
> > +#define PCI_DPA_CAP                4       /* capability register
> > */
> > +#define  PCI_DPA_CAP_SUBSTATE_MASK 0x1F    /* #
> > substates - 1 */
> > +#define PCI_DPA_BASE_SIZEOF        16      /* size with 0
> > substates */
> > +
> > +/* TPH Requester */
> > +#define PCI_TPH_CAP                4       /* capability register
> > */
> > +#define  PCI_TPH_CAP_LOC_MASK      0x600   /* location mask
> > */
> > +#define   PCI_TPH_LOC_NONE 0x000   /* no location */
> > +#define   PCI_TPH_LOC_CAP  0x200   /* in capability */
> > +#define   PCI_TPH_LOC_MSIX 0x400   /* in MSI-X */
> > +#define PCI_TPH_CAP_ST_MASK        0x07FF0000      /* st table
> > mask */
> > +#define PCI_TPH_CAP_ST_SHIFT       16      /* st table shift */
> > +#define PCI_TPH_BASE_SIZEOF        12      /* size with no st
> > table */
> > +
> >   #endif /* LINUX_PCI_REGS_H */
> > 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]