Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 11/27/2024
Public
Document Table of Contents

8.7.3. F2H Bridge Reset Sequence

The following steps describe the F2H 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:
    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 all traffic toward the HPS, the SDRAM, or both is quiescent (inactive).
    4. Wait for FPGA to report status: Read Reset_Mgr.hdskack[fpgahsack] = 1
  2. Fence and drain traffic from the F2H interface:
    1. Write to the Reset_Mgr.hdskreq[f2s_flush_req] = 1
    2. Poll for Reset_Mgr.hdskack[f2s_flush_ack] = 1
  3. Assert reset to the F2H bridge:
    • For F2H bridge, write Reset_Mgr.brgmodrst[fpga2soc] = 1
  4. When FPGA reconfiguration is complete, de-assert reset to the F2H bridge:
    • For F2H bridge, write Reset_Mgr.brgmodrst[fpga2soc] = 0
  5. Clear idle requests from steps 1 and 2:
    1. Write Reset_Mgr.hdskreq[fpgahsreq] = 0
    2. Write Reset_Mgr.hdskreq[f2s_flush_req] = 0
  6. Poll for F2H bridge to be active:
    1. Read Reset_Mgr.hdskack[f2s_flush_ack] = 0
    2. Read Reset_Mgr.hdskack[fpgahsack] = 0