diff mbox series

lspci: Decode VF 10-Bit Tag Requester

Message ID 1610371395-31766-1-git-send-email-liudongdong3@huawei.com (mailing list archive)
State Superseded
Delegated to: Bjorn Helgaas
Headers show
Series lspci: Decode VF 10-Bit Tag Requester | expand

Commit Message

Dongdong Liu Jan. 11, 2021, 1:23 p.m. UTC
Decode VF 10-Bit Tag Requester Supported and Enable bit
in SR-IOV Capabilities Register.

Sample output:
  IOVCap: Migration-, 10BitTagReq+, Interrupt Message Number: 000
  IOVCtl: Enable+ Migration- Interrupt- MSE+ ARIHierarchy- 10BitTagReq+

Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 lib/header.h | 2 ++
 ls-ecaps.c   | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

Comments

Dongdong Liu Feb. 9, 2021, 1:17 p.m. UTC | #1
ping :)  Any comments on the patch ?

On 2021/1/11 21:23, Dongdong Liu wrote:
> Decode VF 10-Bit Tag Requester Supported and Enable bit
> in SR-IOV Capabilities Register.
>
> Sample output:
>   IOVCap: Migration-, 10BitTagReq+, Interrupt Message Number: 000
>   IOVCtl: Enable+ Migration- Interrupt- MSE+ ARIHierarchy- 10BitTagReq+
>
> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
> ---
>  lib/header.h | 2 ++
>  ls-ecaps.c   | 8 ++++----
>  2 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/lib/header.h b/lib/header.h
> index 170e5c1..bff49c2 100644
> --- a/lib/header.h
> +++ b/lib/header.h
> @@ -1126,6 +1126,7 @@
>  /* Single Root I/O Virtualization */
>  #define PCI_IOV_CAP		0x04	/* SR-IOV Capability Register */
>  #define  PCI_IOV_CAP_VFM	0x00000001 /* VF Migration Capable */
> +#define  PCI_IOV_CAP_VF_10BIT_TAG_REQ 0x00000004 /* VF 10-Bit Tag Requester Supported */
>  #define  PCI_IOV_CAP_IMN(x)	((x) >> 21) /* VF Migration Interrupt Message Number */
>  #define PCI_IOV_CTRL		0x08	/* SR-IOV Control Register */
>  #define  PCI_IOV_CTRL_VFE	0x0001	/* VF Enable */
> @@ -1133,6 +1134,7 @@
>  #define  PCI_IOV_CTRL_VFMIE	0x0004	/* VF Migration Interrupt Enable */
>  #define  PCI_IOV_CTRL_MSE	0x0008	/* VF MSE */
>  #define  PCI_IOV_CTRL_ARI	0x0010	/* ARI Capable Hierarchy */
> +#define  PCI_IOV_CTRL_VF_10BIT_TAG_REQ_EN 0x0020 /* VF 10-Bit Tag Requester Enable */
>  #define PCI_IOV_STATUS		0x0a	/* SR-IOV Status Register */
>  #define  PCI_IOV_STATUS_MS	0x0001	/* VF Migration Status */
>  #define PCI_IOV_INITIALVF	0x0c	/* Number of VFs that are initially associated */
> diff --git a/ls-ecaps.c b/ls-ecaps.c
> index 99c55ff..9b50aec 100644
> --- a/ls-ecaps.c
> +++ b/ls-ecaps.c
> @@ -369,13 +369,13 @@ cap_sriov(struct device *d, int where)
>      return;
>
>    l = get_conf_long(d, where + PCI_IOV_CAP);
> -  printf("\t\tIOVCap:\tMigration%c, Interrupt Message Number: %03x\n",
> -	FLAG(l, PCI_IOV_CAP_VFM), PCI_IOV_CAP_IMN(l));
> +  printf("\t\tIOVCap:\tMigration%c, 10BitTagReq%c, Interrupt Message Number: %03x\n",
> +	FLAG(l, PCI_IOV_CAP_VFM), FLAG(l, PCI_IOV_CAP_VF_10BIT_TAG_REQ), PCI_IOV_CAP_IMN(l));
>    w = get_conf_word(d, where + PCI_IOV_CTRL);
> -  printf("\t\tIOVCtl:\tEnable%c Migration%c Interrupt%c MSE%c ARIHierarchy%c\n",
> +  printf("\t\tIOVCtl:\tEnable%c Migration%c Interrupt%c MSE%c ARIHierarchy%c 10BitTagReq%c\n",
>  	FLAG(w, PCI_IOV_CTRL_VFE), FLAG(w, PCI_IOV_CTRL_VFME),
>  	FLAG(w, PCI_IOV_CTRL_VFMIE), FLAG(w, PCI_IOV_CTRL_MSE),
> -	FLAG(w, PCI_IOV_CTRL_ARI));
> +	FLAG(w, PCI_IOV_CTRL_ARI), FLAG(w, PCI_IOV_CTRL_VF_10BIT_TAG_REQ_EN));
>    w = get_conf_word(d, where + PCI_IOV_STATUS);
>    printf("\t\tIOVSta:\tMigration%c\n", FLAG(w, PCI_IOV_STATUS_MS));
>    w = get_conf_word(d, where + PCI_IOV_INITIALVF);
>
diff mbox series

Patch

diff --git a/lib/header.h b/lib/header.h
index 170e5c1..bff49c2 100644
--- a/lib/header.h
+++ b/lib/header.h
@@ -1126,6 +1126,7 @@ 
 /* Single Root I/O Virtualization */
 #define PCI_IOV_CAP		0x04	/* SR-IOV Capability Register */
 #define  PCI_IOV_CAP_VFM	0x00000001 /* VF Migration Capable */
+#define  PCI_IOV_CAP_VF_10BIT_TAG_REQ 0x00000004 /* VF 10-Bit Tag Requester Supported */
 #define  PCI_IOV_CAP_IMN(x)	((x) >> 21) /* VF Migration Interrupt Message Number */
 #define PCI_IOV_CTRL		0x08	/* SR-IOV Control Register */
 #define  PCI_IOV_CTRL_VFE	0x0001	/* VF Enable */
@@ -1133,6 +1134,7 @@ 
 #define  PCI_IOV_CTRL_VFMIE	0x0004	/* VF Migration Interrupt Enable */
 #define  PCI_IOV_CTRL_MSE	0x0008	/* VF MSE */
 #define  PCI_IOV_CTRL_ARI	0x0010	/* ARI Capable Hierarchy */
+#define  PCI_IOV_CTRL_VF_10BIT_TAG_REQ_EN 0x0020 /* VF 10-Bit Tag Requester Enable */
 #define PCI_IOV_STATUS		0x0a	/* SR-IOV Status Register */
 #define  PCI_IOV_STATUS_MS	0x0001	/* VF Migration Status */
 #define PCI_IOV_INITIALVF	0x0c	/* Number of VFs that are initially associated */
diff --git a/ls-ecaps.c b/ls-ecaps.c
index 99c55ff..9b50aec 100644
--- a/ls-ecaps.c
+++ b/ls-ecaps.c
@@ -369,13 +369,13 @@  cap_sriov(struct device *d, int where)
     return;
 
   l = get_conf_long(d, where + PCI_IOV_CAP);
-  printf("\t\tIOVCap:\tMigration%c, Interrupt Message Number: %03x\n",
-	FLAG(l, PCI_IOV_CAP_VFM), PCI_IOV_CAP_IMN(l));
+  printf("\t\tIOVCap:\tMigration%c, 10BitTagReq%c, Interrupt Message Number: %03x\n",
+	FLAG(l, PCI_IOV_CAP_VFM), FLAG(l, PCI_IOV_CAP_VF_10BIT_TAG_REQ), PCI_IOV_CAP_IMN(l));
   w = get_conf_word(d, where + PCI_IOV_CTRL);
-  printf("\t\tIOVCtl:\tEnable%c Migration%c Interrupt%c MSE%c ARIHierarchy%c\n",
+  printf("\t\tIOVCtl:\tEnable%c Migration%c Interrupt%c MSE%c ARIHierarchy%c 10BitTagReq%c\n",
 	FLAG(w, PCI_IOV_CTRL_VFE), FLAG(w, PCI_IOV_CTRL_VFME),
 	FLAG(w, PCI_IOV_CTRL_VFMIE), FLAG(w, PCI_IOV_CTRL_MSE),
-	FLAG(w, PCI_IOV_CTRL_ARI));
+	FLAG(w, PCI_IOV_CTRL_ARI), FLAG(w, PCI_IOV_CTRL_VF_10BIT_TAG_REQ_EN));
   w = get_conf_word(d, where + PCI_IOV_STATUS);
   printf("\t\tIOVSta:\tMigration%c\n", FLAG(w, PCI_IOV_STATUS_MS));
   w = get_conf_word(d, where + PCI_IOV_INITIALVF);