LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Usb > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: esrinu@m...
    Date: Fri, 2 May 2003 11:57:22 -0100
    Subject: [usb] Qhead processing in Host controller
    Top

    Hi friends,
    
    I have some doubts in the EHCI specs regarding the
    Qhead processing.
    
    This is related to Qhead processing. We could think
    of the following two methods for its implementation.
    I would appreciate if you could clarify which method
    is appropriate one.
    
    Method 1 :
    
    I am referring to the page 46, section 3.6, in EHCI 1.0.
    In our implementation, Host Controller  fetches first 4
    double words from the Qhead structure (Page 46). The very
    first time Host controller fetches "QTD" from the
    "current QTD pointer" and performs overlay and
    executes the transaction.
    
    Q 1 ) When QH is fetched first time from the system memory,
    whether "current QTD pointer" points to "first QTD"
    in the QTD list ? ie., whether S/W writes the first
    QTD memory location  in "current QTD pointer" ?
    
    Here we are assuming  that, the very first
    QTD is pointed by the "current QTD pointer" , then subsequent
    QTD s are pointed by the "Next qTD pointer". Is our
    understanding correct ?
    
    
    Method 2 :
    
    In this method, Host controller fetches all 12 double
    words of the QH structure from the system memory .
    
    The Host Controller then fetches the first QTD from the
    "Next qTD pointer" and performs overlay and executes the
    transaction."
    
    In EHCI 1.0 spec, section 4.10 ( page 80 ), it is mentioned that :
    
    " For the very first use of a queue head, software
    may zero-out the queue head transfer overlay, then set the
    Next qTD Pointer field value to reference a valid qTD".
    
    The above statement also implies that S/W may not zero out
    the queue head transfer overlay and set the "Next qTD Pointer".
    In this case, For very first time  "Active bit" in the status
    field may be one, and Host controller may end up executing
    the transaction from the overlay area, which may not be the
    correct action.
    
    
    Q 2 ) Should the Host Controller fetch all 12 Dwords of QH
    structure from the system memory at a stretch ? (Ref section
    3.6 - QH structure - contiguous address from 00H ~ 2FH )
    
    Q 3 ) Should the Host controller fetch the first QTD based
    on the "Next qTD pointer" ?
    Here we are assuming  that, the very first QTD is
    pointed by the "Next QTD pointer" . Is this correct ?
    
    
    Thanks for reading the long query.  Please share your thoughts
    on above queries.
    
    with regards,
    Srinu
    
    
    
     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.