Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.6.6.2.7. Controller as Host

  • Reset Sequence:
    • Call the Generic Interrupt Controller (GIC) Init Task for initialization
    • Map the USB 3.1 IRQ to the Interrupt Service Routine (ISR)
    • Programming to Reset Controller logic to bring out USB 3.1 Controller out-of- reset (vcc_reset_n)
  • Host Controller Initialization
    • Program the GUSB3PIPECTL.SUSPENDENABLE bit set to zero after Power-on- Reset (POR)
    • Program the GCTL.PRTCAPDIR (Port Capability Direction) as 2’b01 for Host mode Configurations
    • Reset the Host using USBCMD.HCRST
    • Program the Device Context Base Address Array Pointer (DCBAAP) register. The memory structure referenced by this physical memory pointer is assumed to be physically contiguous and 64-byte aligned
    • Program the Max Device Slots Enabled (MaxSlotsEn) of Configuration Register (CONFIG). This enables the maximum number of device slots.
    • Program the Configuration Information Enable (CIE) of Configuration Register (CONFIG).When set to ‘1’, the software must initialize the Configuration Value, Interface Number, and Alternate Setting fields in the Input Control Context when it is associated with a Configuration Endpoint Command
    • Configure the “Command Ring Pointer” field of Command Ring Control Register (CRCR). This field defines the high order bits of the initial value of the 64-bit command Ring Dequeue Pointer
    • Set the Event Ring Segment Table Size of Event Ring Segment Table Size Register (ERSTSZ). This defines the number of valid Event Ring Segment Table entries in the Event Ring Segment Table pointed to by the Event Ring Segment Table Base Address register.
    • Set the “Event Ring Segment Table Base Address Register” of Event Ring SegmentTable Base Address Register (ERSTBA). This field defines the high order bits of the start address of the Event Ring Segment Table.
    • Program the “Event Ring Dequeue Pointer” of Event Ring Dequeue Pointer Register Pointer (ERDP). This field defines the high order bits of the 64-bit address of the current Event Ring Dequeue Pointer.
    • Enable the interrupt by setting the “Interrupt Enable” bit of Interrupt Manager Register (IMAN). This flag specifies whether the Interrupt is capable of generating an interrupt.
    • Re-program the GUSB3PIPECTL.SUSPENDENABLE bit to one after Host mode initialization
    • Set the Run/Stop bit of USB Command (USBCMD) register to proceed for execution.
    • Wait for Port Connect Status (On detecting a connect, linestate change of 2’b01 to 2’b10, the controller sets the port connect status bits PORTSC.CCS/CSC) and Event Generation