Forum Discussion
Hi Indra_Kumar_D,
Thank you for the detailed description of your setup and the steps you've taken so far.
Based on your information and typical Agilex 5 and Quartus flows, please see the following guidance for your questions:
1. MSEL Mode for QSPI Programming via JTAG
To program the QSPI flash via JTAG, the MSEL pins must be set to JTAG mode. This ensures the FPGA loads the necessary JTAG-to-Flash bridge (Flash Loader) for Quartus to access the flash device.
You mentioned MSEL is set to JTAG and .sof programming works, so this appears correct.
2. Known Issues with QSPI Flash or Quartus 24.2
There are currently no widespread known issues with QSPI programming on Agilex 5 using Quartus 24.2 on Linux, provided all device and flash parameters are correct. Please ensure you are using the correct flash device and Flash Loader settings, as per the AXE5-Eagle documentation.
3. U-Boot/SPL Interference
If the HPS or U-Boot SPL is running and accessing QSPI during programming, it can interfere with the process. We recommend ensuring the HPS is held in reset or prevented from accessing the QSPI flash while programming via JTAG. Some boards have jumpers or switches to disable HPS boot or QSPI access—please consult the AXE5-Eagle board documentation for details.
4. Quartus Programmer Settings
- Cable Speed: Slower JTAG clock rates (e.g., 6 MHz or 3 MHz) can improve reliability when programming large flash devices.
- quartus.ini: You can enable additional debugging by adding the following to your quartus.ini file:
- [Quartus II Programmer]
- JTAGChainDebug = ON
- USB-Blaster: Make sure you have the correct permissions (udev rules) if running on Linux.
Additional Recommendations:
- Double-check that the generated .jic file is targeting the correct flash device and using the proper flash loader.
- If possible, try erasing the QSPI flash before programming.
- Ensure board power rails are stable.
- Verify any board jumpers or switches related to flash write protection or HPS boot.
If the issue persists, please provide the full Quartus command output (with debug enabled), your board revision, and any relevant jumper settings. We’ll be happy to assist further.
Best regards,
Fakhrul