One more issue here. Look into XhcReadRuntimeReg ()
------
  if (EFI_ERROR (Status)) {
    DEBUG ((EFI_D_ERROR, "XhcReadRuntimeReg: Pci Io Read error - %r at %d\n", 
Status, Offset));
    Data = 0xFFFFFFFF;
  }

  return Data;
}
------
But usage of the procedure do not propose wrong return. For example
---------
  Data  = XhcReadRuntimeReg (Xhc, Offset);
  Data |= Bit;
  XhcWriteRuntimeReg (Xhc, Offset, Data);
-----------

Yours,
Sergey

On 17.09.2013, at 11:20, Sergey Isakov wrote:

> Hi Feng,
> I am also thinking about different ASSERTs in the driver.
> If debug then ASSERT cause a hang/stop/break.
> If release then ASSERT do nothing causes next operator to crash (null pointer 
> etc).
> For example
> ------------------
> UINT32
> XhcReadOpReg (
>   IN  USB_XHCI_INSTANCE   *Xhc,
>   IN  UINT32              Offset
>   )
> {
>   UINT32                  Data;
>   EFI_STATUS              Status;
> 
>   ASSERT (Xhc->CapLength != 0);
> ------------------ 
> Is it true for all controllers? May be we can make
> -----------------
>   if (!Xhc->CapLength) {
>     return 0xFFFFFFFF;
>   }
> ----------------- ?
> The same for door bell and others.
> 
> I am not sure there is a trouble but I don't like ASSERT.
> 
> Sergey.
> 
> 
> On 17.09.2013, at 7:23, Sergey Isakov wrote:
> 
>> Hi Feng,
>> Yes, it is good. I was also thinking that 0 may be right value. (not in my 
>> case).
>> Sergey.
>> 
>> 
>> On 17.09.2013, at 7:00, "Tian, Feng" <feng.t...@intel.com> wrote:
>> 
>>> Hi, Sergey
>>>  
>>> Please help review the patch.
>>>  
>>> The patch has a little different with yours as value 0 may be the correct 
>>> return value for some XHCI cards which supports USB Legacy Support 
>>> Capability.
>>>  
>>> Thanks
>>> Feng
>>>  
>>> From: Tian, Feng 
>>> Sent: Monday, September 16, 2013 15:57
>>> To: edk2-devel@lists.sourceforge.net
>>> Cc: Tian, Feng
>>> Subject: RE: [edk2] XHCI Issues
>>>  
>>> Yes, you are right. Usb Legacy Support Capability is optional, we should 
>>> ignore it if the XHCI controller doesn’t support this feature.
>>>  
>>> I will follow up it as soon as possible.
>>>  
>>> From: Sergey Isakov [mailto:isakov...@bk.ru] 
>>> Sent: Monday, September 16, 2013 15:33
>>> To: edk2-devel@lists.sourceforge.net
>>> Subject: Re: [edk2] XHCI Issues
>>>  
>>> Dear sirs,
>>> I found new issue with XhciDxe driver.
>>> I have USB3 PCIe adapter with chip VIA VL800-Q8. It works but the code
>>> --------
>>> Xhc->UsbLegSupOffset = XhcGetLegSupCapAddr (Xhc);
>>> --------
>>> returns Zero.
>>> And then in procedure
>>> ------------------
>>> VOID
>>> XhcSetBiosOwnership (
>>>   IN USB_XHCI_INSTANCE    *Xhc
>>>   )
>>> {
>>>   UINT32                    Buffer;
>>>  
>>>   DEBUG ((EFI_D_INFO, "XhcSetBiosOwnership: called to set BIOS 
>>> ownership\n"));
>>>  
>>>   Buffer = XhcReadExtCapReg (Xhc, Xhc->UsbLegSupOffset);
>>>   Buffer = ((Buffer & (~USBLEGSP_OS_SEMAPHORE)) | USBLEGSP_BIOS_SEMAPHORE);
>>>   XhcWriteExtCapReg (Xhc, Xhc->UsbLegSupOffset, Buffer);
>>> }
>>> ------------------
>>> I have a hang.
>>> It will be good to add check for zero
>>> ------------------
>>> VOID
>>> XhcSetBiosOwnership (
>>>   IN USB_XHCI_INSTANCE    *Xhc
>>>   )
>>> {
>>>   UINT32                    Buffer;
>>>   if (!Xhc->UsbLegSupOffset) {
>>>     DEBUG ((EFI_D_INFO, "XhcSetBiosOwnership: not set\n"));
>>>     return;
>>>   }
>>> ------------------
>>> The same for ClearBiosOwnership
>>>  
>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>> Signed-off-by: Sergey Isakov <isakov...@bk.ru>
>>>  
>>>  
>>>  
>>>  
>>> On 12.08.2013, at 12:55, Li, Elvin wrote:
>>>  
>>> 
>>> Eugene,
>>>                 The XHCI DMA update has been checked in to edk2 14546. If 
>>> you find any problems, please contact me.
>>>  
>>> Thanks
>>> Elvin
>>> From: Cohen, Eugene [mailto:eug...@hp.com] 
>>> Sent: Thursday, July 25, 2013 4:29 AM
>>> To: edk2-devel@lists.sourceforge.net
>>> Subject: [edk2] XHCI DMA Buffer Issues
>>>  
>>> Dear XhciDxe Maintainer,
>>>  
>>> I’m currently reviewing the XhciDxe driver and I’m trying to figure out how 
>>> DMA buffers are allocated.  I see a number of pool and page allocations but 
>>> I do not see any called to PCI_IO Map()/Unmap() or to 
>>> AllocateBuffer()/FreeBuffer().
>>>  
>>> This appears to be violating the rules for PCI DMA buffers since they are 
>>> not being mapped (and if common buffers are desired then they are also not 
>>> being allocated with AllocateBuffer as required).
>>>  
>>> Can someone more familiar with XHCI help me determine which buffers need to 
>>> be mapped and how (BusMasterRead, BusMasterWrite, CommonBuffer)?
>>>  
>>> It would be useful if we had a test environment that could catch driver DMA 
>>> buffer mapping issues earlier.  I think one way to do this would be set up 
>>> the MMU in a non-identity mode so that anyone trying to use a processor 
>>> virtual address for DMA would see a failure.
>>>  
>>> Thanks,
>>>  
>>> Eugene
>>>  
>>> ------------------------------------------------------------------------------
>>> Get 100% visibility into Java/.NET code with AppDynamics Lite!
>>> It's a free troubleshooting tool designed for production.
>>> Get down to code-level detail for bottlenecks, with <2% overhead. 
>>> Download for free and get started troubleshooting in minutes. 
>>> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk_______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>>  
>>> <XhciReg.c.patch>------------------------------------------------------------------------------
>>> LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
>>> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
>>> 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack 
>>> includes
>>> Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
>>> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk_______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>> ------------------------------------------------------------------------------
>> LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
>> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
>> 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack 
>> includes
>> Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
>> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk_______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> ------------------------------------------------------------------------------
> LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
> 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
> Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk_______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to