Re: [PATCH v2] pciutils: Add decode support for RCECs

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

 



On Wed, 2020-06-24 at 10:57 -0500, Bjorn Helgaas wrote:
> On Tue, Jun 23, 2020 at 09:00:24PM -0700, Sean V Kelley wrote:
> > Root Complex Event Collectors provide support for terminating error
> > and PME messages from RCiEPs.  This patch provides basic decoding
> > for
> > the lspci RCEC Endpoint Association Extended Capability. See PCIe
> > 5.0-1,
> > sec 7.9.10 for further details.
> > 
> > Signed-off-by: Sean V Kelley <sean.v.kelley@xxxxxxxxxxxxxxx>
> 
> Looks good to me.  Minor comments below, but either way:
> 
> Reviewed-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> 
> > ---
> > Changes since v1 [1]:
> > 
> > - Corrections to commit log wording/abbreviation.
> > - Added mention of Endpoint Association for clarity.
> > - Removed "Desc:" from output as not necessary.
> > - Removed "cap_ver" from output as redundant.
> > - Broke out RCiEP device numbers as a comma separated list.
> > (Bjorn Helgaas)
> > 
> > [1] 
> > https://lore.kernel.org/linux-pci/20200622230330.799259-1-sean.v.kelley@xxxxxxxxxxxxxxx/
> > 
> > Thanks,
> > 
> > Sean
> > ---
> >  lib/header.h   |   8 +-
> >  ls-ecaps.c     |  50 ++++++++-
> >  setpci.c       |   2 +-
> >  tests/cap-rcec | 299
> > +++++++++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 355 insertions(+), 4 deletions(-)
> >  create mode 100644 tests/cap-rcec
> > 
> > diff --git a/lib/header.h b/lib/header.h
> > index 472816e..57a9343 100644
> > --- a/lib/header.h
> > +++ b/lib/header.h
> > @@ -219,7 +219,7 @@
> >  #define PCI_EXT_CAP_ID_PB	0x04	/* Power Budgeting */
> >  #define PCI_EXT_CAP_ID_RCLINK	0x05	/* Root Complex
> > Link Declaration */
> >  #define PCI_EXT_CAP_ID_RCILINK	0x06	/* Root Complex
> > Internal Link Declaration */
> > -#define PCI_EXT_CAP_ID_RCECOLL	0x07	/* Root Complex
> > Event Collector */
> > +#define PCI_EXT_CAP_ID_RCEC	0x07	/* Root Complex
> > Event Collector */
> >  #define PCI_EXT_CAP_ID_MFVC	0x08	/* Multi-Function
> > Virtual Channel */
> >  #define PCI_EXT_CAP_ID_VC2	0x09	/* Virtual Channel (2nd ID)
> > */
> >  #define PCI_EXT_CAP_ID_RCRB	0x0a	/* Root Complex
> > Register Block */
> > @@ -1048,6 +1048,12 @@
> >  #define  PCI_RCLINK_LINK_ADDR	8	/* Link Entry: Address (64-
> > bit) */
> >  #define  PCI_RCLINK_LINK_SIZE	16	/* Link Entry: sizeof */
> > 
> > +/* Root Complex Event Collector Endpoint Association */
> > +#define  PCI_RCEC_EP_CAP_VER(reg)	(((reg) >> 16) & 0xf)
> > +#define  PCI_RCEC_BUSN_REG_VER	0x02	/* as per PCIe sec
> > 7.9.10.1 */
> > +#define  PCI_RCEC_RCIEP_BMAP	0x0004	/* as per PCIe sec
> > 7.9.10.2 */
> > +#define  PCI_RCEC_BUSN_REG	0x0008	/* as per PCIe sec 7.9.10.3
> > */
> > +
> >  /* PCIe Vendor-Specific Capability */
> >  #define PCI_EVNDR_HEADER	4	/* Vendor-Specific Header */
> >  #define PCI_EVNDR_REGISTERS	8	/* Vendor-Specific
> > Registers */
> > diff --git a/ls-ecaps.c b/ls-ecaps.c
> > index e71209e..ae26393 100644
> > --- a/ls-ecaps.c
> > +++ b/ls-ecaps.c
> > @@ -634,6 +634,52 @@ cap_rclink(struct device *d, int where)
> >      }
> >  }
> > 
> > +static void
> > +cap_rcec(struct device *d, int where)
> > +{
> > +  printf("Root Complex Event Collector Endpoint Association\n");
> > +  if (verbose < 2)
> > +    return;
> > +
> > +  if (!config_fetch(d, where, 12))
> > +    return;
> > +
> > +  u32 hdr = get_conf_long(d, where);
> > +  byte cap_ver = PCI_RCEC_EP_CAP_VER(hdr);
> > +  u32 bmap = get_conf_long(d, where + PCI_RCEC_RCIEP_BMAP);
> > +  printf("\t\tRCiEPBitmap: ");
> > +  if (bmap)
> > +    {
> > +      int dev=0;
> > +      int prevmatched=0;
> > +      printf("RCiEP at Device(s):");
> > +      while (bmap)
> > +        {
> > +	  if (BITS(bmap, 0, 1))
> > +	      if (!prevmatched)
> > +	        {
> > +		  prevmatched=1;
> > +		  printf(" %u", dev);
> > +	        }
> > +	      else
> > +	          printf("%s %u", (prevmatched) ? "," : "", dev);
> 
> Maybe this could be done in one printf?
> 
>   if (bmap)
>     {
>       int prevmatched = 0;
> 
>       for (dev = 0; dev < 32; dev++)
> 	if (BITS(bmap, dev, 1))
> 	  {
> 	    printf("%s%u", prevmatched ? ", " : "", dev);
> 	    prevmatched = 1;
> 	  }
>     }


That works well, I can also add the hyphen if it is adjacent with this,
I think:

for (int dev=0; dev < 32; dev++)
   {
     if (BITS(bmap, dev, 1))
       {
         if (!adjcount)
           printf("%s %u", (prevmatched) ? "," : "", dev);
         prevmatched=1;
         adjcount++;
         prevdev=dev;
       }
     else
       {
         if (adjcount > 1)
           printf("-%u", prevdev);
         adjacent=0;
       }
   }



> > +	  bmap >>= 1;
> > +	  dev += 1;
> > +        }
> > +    }
> > +  else
> > +    printf("00000000");
> 
> Or "[none]", with "00000000 [none]" for the "-vvv" case?  Seems like
> an
> RCEC with no associated devices wouldn't be very useful.  Although I
> guess it could have devices on other buses.
> 

It's more informative to note that it really means "none".  Will do.

> > +  printf("\n");
> > +
> > +  if (cap_ver < PCI_RCEC_BUSN_REG_VER)
> > +    return;
> > +
> > +  u32 busn = get_conf_long(d, where + PCI_RCEC_BUSN_REG);
> > +  printf("\t\tRCECLastBus=%02x RCECFirstBus=%02x\n",
> > +    BITS(busn, 16, 8),
> > +    BITS(busn, 8, 8));
> 
> The spec term is "RCEC *Next* Bus", not "RCEC First Bus".
> 
> Maybe print these in the "Next Last" order so it comes out like a bus
> number range when enabled?

Good catch, I'm not sure where I was getting First...

And I think the bus number range with Next Last order makes sense.
> 
> The example below ("RCECLastBus=00 RCECFirstBus=ff") is actually the
> case when there are no additional bus numbers associated with this
> RCEC.  show_range() handles a similar case by printing "[disabled]"
> (as well as the raw numbers in the "enabled" or "verbose > 2" cases).
> "[disabled]" wouldn't be quite right here, but maybe "[none]"?
> 
> Could be
> 
>   AssociatedBusNumbers: 01-07
>   AssociatedBusNumbers: [none]              # -vv case
>   AssociatedBusNumbers: ff-00 [none]        # -vvv case

No one seems to use 'verbose' very effectively for individual caps in
ls-ecaps, afaict.  It's either on/off so to speak.  I really like this
granularity, however.  I'll have a look.

Thanks,

Sean

> 
> But maybe that's applying too much interpretation.  We don't do
> anything so fancy for bridge secondary/subordinate bus numbers, for
> example.
> 
> > +}
> > +
> >  static void
> >  cap_dvsec_cxl(struct device *d, int where)
> >  {
> > @@ -991,8 +1037,8 @@ show_ext_caps(struct device *d, int type)
> >  	  case PCI_EXT_CAP_ID_RCILINK:
> >  	    printf("Root Complex Internal Link <?>\n");
> >  	    break;
> > -	  case PCI_EXT_CAP_ID_RCECOLL:
> > -	    printf("Root Complex Event Collector <?>\n");
> > +	  case PCI_EXT_CAP_ID_RCEC:
> > +	    cap_rcec(d, where);
> >  	    break;
> >  	  case PCI_EXT_CAP_ID_MFVC:
> >  	    printf("Multi-Function Virtual Channel <?>\n");
> > diff --git a/setpci.c b/setpci.c
> > index 90ca726..2cb70fa 100644
> > --- a/setpci.c
> > +++ b/setpci.c
> > @@ -350,7 +350,7 @@ static const struct reg_name pci_reg_names[] =
> > {
> >    { 0x20004,	0, 0, "ECAP_PB" },
> >    { 0x20005,	0, 0, "ECAP_RCLINK" },
> >    { 0x20006,	0, 0, "ECAP_RCILINK" },
> > -  { 0x20007,	0, 0, "ECAP_RCECOLL" },
> > +  { 0x20007,	0, 0, "ECAP_RCEC" },
> >    { 0x20008,	0, 0, "ECAP_MFVC" },
> >    { 0x20009,	0, 0, "ECAP_VC2" },
> >    { 0x2000a,	0, 0, "ECAP_RBCB" },
> > diff --git a/tests/cap-rcec b/tests/cap-rcec
> > new file mode 100644
> > index 0000000..4196228
> > --- /dev/null
> > +++ b/tests/cap-rcec
> > @@ -0,0 +1,299 @@
> > +6a:00.4 Generic system peripheral [0807]: Intel Corporation Device
> > 0b23
> > +        Subsystem: Intel Corporation Device 0000
> > +        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > +        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > +        Interrupt: pin A routed to IRQ 255
> > +        NUMA node: 0
> > +        Capabilities: [40] Express (v2) Root Complex Event
> > Collector, MSI 00
> > +                DevCap: MaxPayload 512 bytes, PhantFunc 0
> > +                        ExtTag- RBE-
> > +                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
> > +                        RlxdOrd- ExtTag- PhantFunc- AuxPwr-
> > NoSnoop-
> > +                        MaxPayload 128 bytes, MaxReadReq 128 bytes
> > +                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq-
> > AuxPwr- TransPend-
> > +                RootCap: CRSVisible-
> > +                RootCtl: ErrCorrectable+ ErrNon-Fatal+ ErrFatal+
> > PMEIntEna- CRSVisible-
> > +                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > +                DevCap2: Completion Timeout: Not Supported,
> > TimeoutDis- NROPrPrP- LTR-
> > +                         10BitTagComp- 10BitTagReq- OBFF Not
> > Supported, ExtFmt- EETLPPrefix-
> > +                         EmergencyPowerReduction Not Supported,
> > EmergencyPowerReductionInit-
> > +                         FRS-
> > +                DevCtl2: Completion Timeout: 50us to 50ms,
> > TimeoutDis- LTR- OBFF Disabled,
> > +        Capabilities: [80] Power Management version 3
> > +                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-
> > ,D1-,D2-,D3hot-,D3cold-)
> > +                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0
> > PME-
> > +        Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit-
> > +                Address: 00000000  Data: 0000
> > +                Masking: 00000000  Pending: 00000000
> > +        Capabilities: [100 v1] Advanced Error Reporting
> > +                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > +                UEMsk:  DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
> > +                UESvrt: DLP+ SDES- TLP+ FCP+ CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > +                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > AdvNonFatalErr-
> > +                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > AdvNonFatalErr+
> > +                AERCap: First Error Pointer: 00, ECRCGenCap-
> > ECRCGenEn- ECRCChkCap- ECRCChkEn-
> > +                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres-
> > HdrLogCap-
> > +                HeaderLog: 00000000 00000000 00000000 00000000
> > +                RootCmd: CERptEn- NFERptEn- FERptEn-
> > +                RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
> > +                         FirstFatal- NonFatalMsg- FatalMsg- IntMsg
> > 0
> > +                ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000
> > +        Capabilities: [160 v2] Root Complex Event Collector
> > Endpoint Association
> > +                RCiEPBitmap: RCiEP at Device(s): 0, 1, 4, 7, 8, 9,
> > 10, 12, 13
> > +                RCECLastBus=00 RCECFirstBus=ff
> > +00: 86 80 23 0b 00 01 10 00 00 00 07 08 00 00 00 00
> > +10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
> > +30: 00 00 00 00 40 00 00 00 00 00 00 00 ff 01 00 00
> > +40: 10 80 a2 00 02 00 00 00 07 00 00 00 00 00 00 00
> > +50: 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00
> > +60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +80: 01 90 03 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +90: 05 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
> > +a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d0: 31 6a 08 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +100: 01 00 01 16 00 00 00 00 20 00 10 00 10 30 46 00
> > +110: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00
> > +120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +160: 07 00 02 00 00 00 00 00 00 ff 00 00 00 00 00 00
> > +170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +260: 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00
> > +270: 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
> > +280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +2a0: 00 00 00 00 00 00 00 00 20 00 18 00 20 00 18 00
> > +2b0: 20 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +2f0: 00 20 00 00 00 20 00 00 00 20 00 00 00 e0 00 00
> > +300: 00 e0 00 00 00 e0 00 00 00 e0 00 00 00 e0 00 00
> > +310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +600: 44 00 00 00 91 00 00 00 00 00 00 00 00 00 00 00
> > +610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +680: 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > +ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > --
> > 2.27.0
> > 




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux