Forum Discussion

LironAvrhmov's avatar
LironAvrhmov
Icon for New Contributor rankNew Contributor
13 days ago
Solved

Arria 10 QSPI controller hangs after U-Boot shell while SPL boots successfully

Hello, I am debugging a QSPI issue on two custom Arria 10 SoC boards. The boards are not the same FPGA package, but they are based on the same project. The only difference between the builds is the...
  • LironAvrhmov's avatar
    12 days ago

     

    Hi,

    Thank you for your suggestion.

    I added several debug prints throughout the U-Boot initialization process in order to determine exactly where the issue occurs.

    Here is what I found:

    The QSPI controller is initialized successfully.

    setup_flash_device() completes successfully.

    The SPI NOR device is detected correctly.

    The environment is read successfully from flash (spi_flash_read() returns 0).

    The only result is a Bad CRC, so U-Boot falls back to the default environment, but the flash controller continues to operate normally.

    I also added register reads after the environment loading and confirmed that the QSPI module is still accessible and responding correctly.

    The crash actually happened later during the network initialization (initr_net()), not during the QSPI or environment handling.

    After further investigation, I found that the Device Tree still had the Ethernet PHY node enabled (status = "okay"), while this specific board (Combiner Master) does not have a PHY populated.

    As a result, U-Boot attempted to initialize a non-existent PHY and eventually crashed. After changing the PHY node to:

    status = "disabled";

    the issue was completely resolved and U-Boot now boots normally.

    Regarding the handoff files, we are already using different handoff (hps.xml) files for each board, generated separately for their respective hardware configurations.

    Thank you for your help.