Skip to content

Conversation

@bluncan
Copy link
Contributor

@bluncan bluncan commented Dec 8, 2025

PR Description

On Versal systems, the transceiver reset procedure is done using a master reset controller block found inside the AMD provided PHY. However, during the first boot of the board, because the clock chip (e.g. hmc7044) is not programmed before configuring the FPGA fabric, the LCPLLs found inside the QUAD get stuck or are locking on the wrong frequency and the reset controller gets stuck and no longer responds to the reset gpios.

To fix this, we have to manually reset the LCPLLs after the clock chip has been programed and it's output clocks are stable.

PR Type

  • Bug fix (change that fixes an issue)
  • New feature (change that adds new functionality)
  • Breaking change (has dependencies in other repos or will cause CI to fail)
  • Documentation

PR Checklist

  • I have followed the code style guidelines
  • I have performed a self-review of changes
  • I have compiled all hdl projects and libraries affected by this PR
  • I have tested in hardware affected projects, at least on relevant boards
  • I have commented my code, at least hard-to-understand parts
  • I have signed off all commits from this PR
  • I have updated the documentation (wiki pages, ReadMe files, Copyright etc)
  • I have not introduced new Warnings/Critical Warnings on compilation
  • I have added new hdl testbenches or updated existing ones

The first time the board is powered on, because the reference clock
going to the transceivers is not stable until the clock chip is
programmerd, the LCPLLs are being locked wrong and the master
reset controller inside the QUADs gets stuck.

The fix is to manually reset the LCPLLs and ILOs inside the QUAD
after the clock chip is programmed.

Signed-off-by: Bogdan Luncan <[email protected]>
@bluncan bluncan force-pushed the fix_versal_cold_boot_reset branch from 0d8b255 to e264dbc Compare December 8, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants