Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

8.7.4. F2SDRAM Bridge Reset Sequence

The following steps describe the F2SDRAM bridge reset flow:

  1. Optionally perform an FPGA handshake to provide soft logic with an indication that a reset is coming so that it can stop inbound traffic to the HPS/SDRAM:
    1. Ensure the FPGA handshake is enabled by writing Reset_Mgr.hdsken[fpgahsen] = 1
    2. Request reset manager to perform FPGA handshake to warn of pending reset. Write Reset_Mgr.hdskreq[fpgahsreq] = 1
    3. At this point, the FPGA logic must ensure that all traffic toward the HPS, the SDRAM, or either one is quiescent (inactive).
    4. Wait for FPGA to report status: Read Reset_Mgr.hdskack[fpgahsack] = 1
  2. Fence and drain traffic from the F2SDRAM interface:
    1. Write to the Reset_Mgr.hdskreq[f2sdram_flush_req] = 1
    2. Poll for Reset_Mgr.hdskack[f2sdram_flush_ack] = 1
  3. Assert reset to the F2SDRAM bridges:
    • For F2SDRAM bridge, write Reset_Mgr.brgmodrst[fpga2sdram] = 1
  4. When FPGA reconfiguration is complete, de-assert reset to the F2SDRAM bridges:
    • For F2SDRAM bridge, write Reset_Mgr.brgmodrst[fpga2sdram] = 0
  5. Clear idle requests from steps 1 and 2:
    1. Write Reset_Mgr.hdskreq[fpgahsreq] = 0
    2. Write Reset_Mgr.hdskreq[f2sdram_flush_req] = 0
  6. Poll for F2SDRAM bridge to be active:
    1. Read Reset_Mgr.hdskack[f2sdram_flush_ack] = 0
    2. Read Reset_Mgr.hdskack[fpgahsack] = 0