Featured Content
Forum Widgets
Recent Discussions
U-Boot "Synchronous Abort" boot failure on Terasic Atum A5 Rev B via Quartus 24.3 .jic generation
I am reaching out for technical assistance regarding a reproducible boot failure on the Terasic Atum A5 Rev B development board (Agilex 5) when using Quartus Prime Pro 24.3. I am attempting to compile a custom design that utilizes the Lightweight HPS-to-FPGA (lwhps2fpga) bus. My current workflow is as follows: Compile the project in Quartus 24.3 to generate the .sof file. Merge the .sof with the official Terasic FSBL .hex file. Use the Programming File Generator (PFG) to create a .jic file. Flash the .jic to the QSPI. The Issue: When flashing the .jic generated by this workflow, the boot process fails during the main U-Boot phase. The U-Boot SPL and ATF (BL31) load successfully. However, after U-Boot attempts to load the environment, the system crashes with a "Synchronous Abort" handler (esr 0x96000010, far 0x108d2000). This triggers a CPU reset with the message ### ERROR ### Please RESET the board ###. (I have attached the full UART terminal log of the boot sequence for reference). Isolation Testing: To isolate the issue from my custom logic, I applied this exact same compilation and .jic generation workflow to the official Terasic GHRD bundled with the board. The result was identical—the GHRD .jic generated by Quartus 24.3 crashes at the exact same U-Boot Synchronous Abort. Conversely, when I bypass compilation and simply flash the original, pre-compiled .jic provided in the Terasic resource package, the board boots into Linux flawlessly. This confirms the physical hardware is fully functional and the issue is strictly isolated to the .jic files being generated by the 24.3 workflow. Questions: Is there a known issue or missing step in the Quartus 24.3 workflow when merging the FSBL or configuring the .jic for the Agilex 5 that would cause U-Boot to encounter a Data Abort (likely when probing the AXI bridges)? What are the exact PFG parameters or required patches to successfully generate a booting .jic for this board under the 24.3 release? I look forward to your guidance on resolving this workflow issue77Views0likes6CommentsPreloader/U-Boot Compilation Failure
General Background: I'm working with a custom board that has an Altera/Intel Cyclone V, SoC FPGA (5CSEBA6U23, similar to the DE10-Nano development kit). The board is already equipped with all the necessary files for a successful boot sequence from a uSD card (FPGA and the ARM processor (HPS)). The Objective: I want to reconfigure the HPS functionality (Mux) for pins 53 and 54 from their current GPIO to CAN BUS. I need to ensure a successful boot from the uSD card with the updated hardware definition and Device Tree. Issue Description: Preloader/U-Boot Compilation Failure After successfully implementing the changes in Quartus and Platform Designer and after successfully generating the BSP files (bsp-editor), I'm attempting to run the "make" command to build the Preloader/U-Boot image. The process starts and creates the uboot-socfpga directory, but the compilation consistently fails with several errors, and the final boot image is not updated. Extension of the successfully completed steps: I've modified the Platform Designer (Qsys) mux functionality to reconfigure the HPS peripheral pins (GPIO53-GPIO54) for CAN BUS functionality. I've integrated the new HPS component into the top-level VHDL project. I've Generate a full VHDL compilation in Quartus. Using the "SoC EDS Command Shell", I launched the BSP-Editor and loaded the updated "settings.bsp" file. After generation, the "hps_isw_handoff" and "generated" directories were updated. I have manually verified the output files (pinmux_config.h) to confirms that CAN1 is now correctly configured in the pin multiplexing settings. What should I do?169Views0likes10CommentsAgilex5 HPS2FPGA usage
Hello, I have an Agilex 5E 065B devkit board with Part Number A5ED065BB32AE6SR0. I have created a design in quartus that uses HPS2FPGA communication. I tested the design extensively and now want to configure the FPGA. However, it is not clear to me how the workflow has to be in that case after reading the documentation: https://docs.altera.com/r/docs/814550/current/agilextm-5-fpga-e-series-065b-premium-development-kit-user-guide/overview . Below I list my worklfow (which was not working out): Phase 1: Resotre GSRD I have a compiling quartus design I download the official GSRD JIC from: https://releases.rocketboards.org/2024.05/gsrd/agilex5_dk_a5e065bb32aes1_gsrd/ghrd_a5ed065bb32ae6sr0.hps.jic.tar.gz In quartus I open the JTAG programmer and connect the device to my local machine. I power on the device with SW27 set to OFF-OFF-OFF-OFF. After clicking "auto-detect", I right click my FPGA device and click "change file" and select the freshly downloaded jic file. I click "start" and wait till process is completed sccessfully. I insert the HPS board's SD card into my local machine and download the GSRD SD image from: https://releases.rocketboards.org/2024.05/gsrd/agilex5_dk_a5e065bb32aes1_gsrd/sdimage.tar.gz I rename the .wic file to a .img file. Then I use Win32DiskImager to flash the image to the SD card. After completion I insert the SD card back into the HPS board. I connect the vertical HPS board pin to my local machine and open PUTTY to target the COM port. A window opens, which stays blank. I set SW27 to OFF-ON-ON-OFF and power on the board. In PUTTY I can see the linux boot logs. I can log in as root without password. Phase 2: I download the U-BOOT hex that matches my device from: https://releases.rocketboards.org/2024.05/gsrd/agilex5_dk_a5e065bb32aes1_gsrd/u-boot-spl-dtb.hex I open a NIOS shell and create a .jic file based on my designs rbf, by typing the command: quartus_pfg -c <my_project>.sof <my_project>.jic -o device=MT25QU128 -o flash_loader=A5ED065BB32AR0 -o hps_path=<hex_file_path> -o mode=ASX4 -o hps=1 This created a .hps.jic file. I set SW27 back to OFF-OFF-OFF-OFF and connect to my local machine and power on the board. In quartus I again configure my newly created jic to the board via JTAG chain. After completion I power off the board and set SW27 back to OFF-ON-ON-OFF. I open a PUTTY window and power on the board. However, this time the PUTTY window stays quiet even after several minutes. So I guess the boot is not happening correctly. I would like to know if there is a substantial error in my workflow or, if there might be a problem in my quartus settings maybe (I have set configuration order to HPS first). I would be very glad if someone could help me with that. Feel free to tell me if any kind of log or additional information is required for understanding the error.85Views0likes3CommentsSupport Request to Debug Signal Tap Issue with SoC Based Design(GHRD) on Agilex-7 FPGA
Hi Altera Support Team, Greetings from Logic Fruit Technologies. This is Bhanu Pratap and I am working on the project in which we are using Agilex-7 SOC FPGA. Goal: Utilize Agiliex-HPS's capability on a Linux OS to control dynamic features of IP Cores at runtime. Problem Statement: We are facing an issue detecting SignalTap with SoC-based designs for runtime debugging while it's enabled and added from the Quartus project to generate the programming file. Brief Description: We are using Quartus 2025.1.1 and Altera's Agilex-7 Devkit(DKSIAAGI027FA: Agilex™ 7 FPGA I-Series Transceiver-SoC Development Kit -> 4x F-Tile, Rev C). We downloaded the base GHRD design from Altera's GitHub webpage for the corresponding Quartus version. We are following each step to test GHRD and build generation for the Linux OS. We are using HPS First booting mode, we generated the build without modification and tested it. It's working fine according to the GSRD user guide. We have added a custom AXI4 Slave based CSR module to the HSP Lightweight bus to test basic register read/write using Platform Designer. We regenerated the build and re-tested but we are not getting the expected results so we added SignalTap for debugging. Build is generated using the STP file, programmed, and the OS is booting but it's not detecting SignalTap. This looks more like a process gap. We seek your support to fix this issue. Note: If we use an FPGA design without HPS, we are able to add and detect SignalTap. Seeking for urgent support. Thanks Bhanu Pratap54Views0likes3CommentsTimings eMMC
Hi, latest datasheet of SoC « 813918/2026.01.05 » lists in paragraph « HPS SD/eMMC Timing Characteristics » the constraints of eMMC, applicable to memory component but does not define any timing data in input/output of SoC. There is no Tco min/max of CMD/DATA at SoC output, as well as Tsetup/hold of CMD/DATA at SoC input. Can you provide Tco and Tsetup/hold for eMMC usage (Legacy, HS_SDR, HS_DDR, HS200, HS400) ? thanks81Views0likes5CommentsAgilex5 - Bridge AXI F2H - read transactions
Hi, we are using in our design the bridge F2H between FPGA and HPS, which is a bus ACE5lite 256bits. Several masters AXI 64bits in our design will contact it via an interconnect. In Write, no problem, we can attaquer this interface in « narrow transfers » 64b over 256b, in conformity with ARM specification. But in READ, the SoC user manual (814346, 2026.01.09) says §11.5.1 : « The HPS F2H interface has a fixed data size of 256-bits. This interface allows for narrow burst sizes less than 256-bits However, if a fabric initiator generates a transfer narrower than the interface width (i.e., less than the 256-bits wide data and a nonzero burst size), there is no guarantee that the HPS F2H interface will respond with narrower data aligned on non-256-bit boundaries of the 256-bit data bus. For example, if ARADDR = 0x0010_0000, ARSIZE = 0x4, and ARLEN = 0x3, the HPS F2H interface returns two beats of 32 bytes per beat followed by two null cycles, instead of four beats of 16 bytes per beat. Altera recommends that you add width adaptation interconnect logic between the fabric initiator and the HPS F2H interface to ensure that the narrow-width data is packed/unpacked properly.” « the HPS F2H interface returns » : means it is sure that… , we will be able logic tranlation 256>64 considering that data returned on RDATA bus will fill all width of 256b (if enough read bytes of course). If “there is no guarantee…” is correct, it is a problem as there is no Read Strobe with bus RDATA in AXI spécification ; and we can not determine which bytes of which BEATs of transfert have to be considered. Last possible interpretation : the ‘width adaptation interconnect logic’ recommanded by Altera concerns more the transformation of ARADDR/ARSIZE/ARLEN by our interconnect at bridge input (AR* parameters are requests of read sent by our masters should be translated by interconnect before to be presented to bridge). Can you tell me the right meaning ? Thanks and regards76Views0likes2CommentsAgilex 5E ES Memory Performance Issues
Setup We observed significant performance issues during sequential memory reads in HPS. Target device is A5ED065BB32AE6SR0 from the premium dev kit using the GSRD Example. Sysbench was used to benchmark the memory performance. Test Results For comparison, we also performed the test on an STM32 system (Arm Dual Cortex-A7 800 MHz) and the host PC (Ryzen 7 CPU). Agilex 5E ES STM32MP157F Host PC, Ryzen 7 T0 (sequential read) 480 MiB/s 290 MB/s 78972 MiB/s T1 (sequential write) 4058 MiB/s 190 MB/s 44749 MiB/s T2 (random read) 67 MiB/s 373 MB/s 3461 MiB/s T3 (random write) 52 MiB/s 372 MB/s 3608 MiB/s The test cases where executed as follows: T0: sysbench --num-threads=1 --time=10 memory --memory-block-size=4MiB --memory-total-size=64GiB --memory-access-mode="seq" --memory-hugetlb=off --memory-oper=read run T1: sysbench --num-threads=1 --time=10 memory --memory-block-size=4MiB --memory-total-size=64GiB --memory-access-mode="seq" --memory-hugetlb=off --memory-oper=write run T2: sysbench --num-threads=1 --time=10 memory --memory-block-size=4MiB --memory-total-size=64GiB --memory-access-mode="rnd" --memory-hugetlb=off --memory-oper=read run T3: sysbench --num-threads=1 --time=10 memory --memory-block-size=4MiB --memory-total-size=64GiB --memory-access-mode="rnd" --memory-hugetlb=off --memory-oper=write run Observations The sequential read operation on the Agilex 5 is significantly (factor 10!) slower than the write operation. Especially when comparing to other systems where the sequential read achieves about a third more throughput. Sequential Read vs. Write: The sequential read operation on Agilex 5E ES is about 10x slower than the sequential write operation. On other systems, sequential read typically achieves about 30% higher throughput than write. We found 2 possible issues with the ES devices in the Errata: Degraded HPS EMIF performance with 2MB L3 Cache: https://docs.altera.com/r/docs/825514/current/agilextm-5-es-device-errata-and-user-guidelines/degraded-hps-emif-performance-with-2mb-l3-cache HPS EMIF read throughput less than target: https://docs.altera.com/r/docs/825514/current/agilextm-5-es-device-errata-and-user-guidelines/hps-emif-read-throughput-less-than-target The workaround for 1. is to change the L3-cache to a value different to 2MB. However, this did not improve the performance any way. For the second errata entry, there is no workaround. Question Is the "HPS EMIF read throughput less than target" errata entry the primary cause of the degraded sequential read performance? If confirmed, is this issue resolved in the series Agilex 5 Devices, and what performance improvements can we expect?159Views1like3Comments- 23Views0likes0Comments
A topic explaining a problem with Cyclone V SoC - u-booting .rbf file failure - got rejected.
Hi Altera Comunity et al, I guess this is more of a question for the support and moderator people of this forum. The situation is I just posted a topic explaining a problem I am experiencing with Cyclone V SoC—U-boot failing to load the .rbf (FPGA load configuration ) file , during initial system bootup. I put a lot of information - attached files, links, etc. to give better context around the issue. But that post got flagged as Spam and got rejected. And I am just wondering what to do here. I tried editing that post (removing links and removing attached files) several times already, but it still stays flagged as spam. I don't know what to do further to fix this :( The original issue topic was : "Cyclone-V-SoC: U-Boot fails to fpga load .rbf file - Command 'load' failed: Error -6" Anyone, please advise. Thank you and Best Regards, - Monk M.81Views0likes6CommentsCyclone-V-SoC: U-Boot fails to fpga load .rbf file - Command 'load' failed: Error -6
Greetings everyone, Currently I am experiencing a persistant issue with a QMTech Cyclone V SoC board (a very close clone of Terasic De10-Nano) , trying to load the fpga configuration (.rbf) while the board is booting (U-Boot). While the .rbf is being loaded , I get an error : 'Command 'load' failed: Error -6' . -Boot SPL 2024.07-36780-g67806ba5853-dirty (May 09 2026 - 16:08:17 +0300) Trying to boot from MMC1 U-Boot 2024.07-36780-g67806ba5853-dirty (May 09 2026 - 16:08:17 +0300) CPU: Altera SoCFPGA Platform FPGA: Altera Cyclone V, SE/A6 or SX/C6 or ST/D6, version 0x0 BOOT: SD/MMC Internal Transceiver (3.0V) DRAM: 1 GiB Core: 29 devices, 15 uclasses, devicetree: separate MMC: dwmmc0@ff704000: 0 Loading Environment from MMC... Reading from MMC(0)... *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Model: QMTECH C5SOC KFB Dual SDRAM Net: Error: ethernet@ff702000 No valid MAC address found. No ethernet found. Hit any key to stop autoboot: 0 => => => => => => fpga info Altera Device Descriptor @ 0x3ffec7a0 Family: SoC FPGA Interface type: Fast Passive Parallel (FPP) Device Size: 4294967295 bytes Cookie: 0x0 (0) No Device Function Table. => => fatls mmc 0:1 6275664 zImage extlinux/ 2082772 soc_system.rbf 25844 socfpga_cyclone5_kfb_dual_sdram.dtb 3 file(s), 1 dir(s) => load mmc 0:1 ${loadaddr} soc_system.rbf; 2082772 bytes read in 111 ms (17.9 MiB/s) => fpga load 0 ${loadaddr} $filesize; Command 'load' failed: Error -6 => => => run mmc_boot switch to partitions #0, OK mmc0 is current device ... ... So I would appreciate it greatly, if somebody could navigate me to what to do to overcome this final stage - to get everything working succesfully. Best Regards, - Monk M.Solved47Views0likes2Comments