qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Knut Omang <knut.omang@oracle.com>
To: marcel@redhat.com, qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Richard W.M. Jones" <rjones@redhat.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	"Gonglei (Arei)" <arei.gonglei@huawei.com>,
	Jan Kiszka <jan.kiszka@web.de>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Dotan Barak <dotanba@gmail.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v4 2/3] pci: Update pci_regs header
Date: Sat, 10 Oct 2015 12:46:05 +0200	[thread overview]
Message-ID: <1444473965.32241.150.camel@oracle.com> (raw)
In-Reply-To: <56151EF4.5050709@gmail.com>

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 <knut.omang@oracle.com>
> > ---
> >   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	other threads:[~2015-10-10 10:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-12 12:36 [Qemu-devel] [PATCH v4 0/3] pcie: Add support for Single Root I/O Virtualization Knut Omang
2015-09-12 12:36 ` [Qemu-devel] [PATCH v4 1/3] pci: Make use of the devfn property when registering new devices Knut Omang
2015-09-17 11:11   ` Marcel Apfelbaum
2015-09-17 12:12     ` Knut Omang
2015-09-17 12:41       ` Marcel Apfelbaum
2015-10-14 10:27         ` Knut Omang
2015-09-12 12:36 ` [Qemu-devel] [PATCH v4 2/3] pci: Update pci_regs header Knut Omang
2015-10-07 13:32   ` Marcel Apfelbaum
2015-10-10 10:46     ` Knut Omang [this message]
2015-09-12 12:36 ` [Qemu-devel] [PATCH v4 3/3] pcie: Add support for Single Root I/O Virtualization (SR/IOV) Knut Omang
2015-09-17 11:49   ` Marcel Apfelbaum
2015-09-17 14:10     ` Knut Omang
2015-10-07 13:45       ` Marcel Apfelbaum
2015-10-14 12:25       ` Knut Omang
2015-10-07 15:06   ` Marcel Apfelbaum
2015-10-11 13:56     ` Knut Omang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444473965.32241.150.camel@oracle.com \
    --to=knut.omang@oracle.com \
    --cc=alex.williamson@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=dotanba@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).