ContributionsMost RecentMost LikesSolutionsRe: Agilex 5 EMAC to EMAC : Driver error Hello K606 As you wait for the sof file analysis to come back, you can check the below information that one of my colleague shared For a MAC-to-MAC loopback test, it requires additional logic. The main logic that enables this is: fyi, this code above has not gone thru validation, but my colleague has tested the basic functionalities (ping and iperf transfers). The DTSI is correct. But additional kernel option (network namespace) needs to be enabled to ensure the data transfer is not virtual. This is because Linux network stack is pretty intelligent to detect transfer between interfaces on the same host and will attempt SW transfers without going thru MAC. Thanks Re: Agilex 5 EMAC to EMAC : Driver error The fact that gmac2 works, while gmac0/gmac1 fail with identical setup, strongly suggests-> The reset lines for EMAC0 and EMAC1 are not wired or released correctly in the FPGA handoff. The Linux kernel attempts to reset the DMA via resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>; But these don't actually trigger a reset, leave the DMA in a bad state. Try a simple test, comment out the resets for gmac0: // resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>; // reset-names = "stmmaceth", "stmmaceth-ocp"; Recompile and reboot. If this makes the error go away (or lets the DMA at least initialize), the reset was the issue. Re: Agilex 5 EMAC to EMAC : Driver error Thanks for sharing your Agilex 5 .dtsi file. The EMAC (gmac0/gmac1/gmac2) sections look well-defined, however, all three EMACs have status = "disabled";, so the kernel will not load drivers for them unless another .dts or .dtsi file (like a board-specific one) overrides this with status = "okay". Example for gmac0: &gmac0 { status = "okay"; phy-mode = "rgmii"; // or "sgmii", "rmii" — depending on your design phy-handle = <&phy0>; // reference to an external PHY if used // Optional: fixed-link if no external PHY fixed-link { speed = <1000>; full-duplex; }; }; Make sure to also define &phy0 if you're using an external PHY. Confirm your boot .dtb includes a version of the EMAC node with status = "okay". Ensure clocks and reset lines are properly asserted and enabled by the bootloader or preloader stage. The error message that you shared suggests that the DMA controller inside the EMAC IP block isn't initializing properly, likely because its reset line isn't working or hasn't been deasserted. Couple of things to try: Check the rst node is working Make sure the reset controller in your .dtsi is active and matches the hardware Ensure your kernel has altr,stratix10-rst-mgr driver enabled Check whether the IDs like EMAC0_RESET are correct (from altr,rst-mgr-agilex5.h) Try without reset control (for debugging) Temporarily, remove the reset lines in the EMAC node to test if the problem is reset-controller-related -> If EMAC initializes without errors afterward, then the issue is definitely the reset controller. Ensure EMAC is powered and clocked Even if resets are correct, clocks must be enabled Make sure, Clock controller (clkmgr) is active and functional These clocks are not gated or unconfigured by U-Boot or preloader - Use U-Boot to verify clock settings, or explicitly enable the clocks in bootloader Enable only one EMAC first Only bring up gmac0 initially. In your board .dts &gmac0 { status = "okay"; phy-mode = "sgmii"; // or your actual mode fixed-link { speed = <1000>; full-duplex; }; }; Re: Agilex 5 EMAC to EMAC : Driver error Hello Can you send your .dtsi file. Sharing links to EMAC sections in our doc to check HPS EMAC Design Guidelines and Examples HPS EMAC Design Considerations - EMAC GMII through FPGA Fabric We also have couple of example designs below, you can check Example Designs Agilex 5 TSN HPS RGMII System Example Design - TSN HPS RGMII System Example Design Agilex 5 TSN HPS RGMII System Example Design - TSN RGMII HVIO System Example Design Agilex 5 TSN SGMII XCVR System Example Design - TSN SGMII XCVR System Example Design Thanks Re: max10 remote system update nios with uart Hello Please open a new thread for this item as this is a new topic. Thanks Re: max10 remote system update nios with uart That's great, glad that helped. Thanks Re: max10 remote system update nios with uart Hello Nios II is EOL, Altera stop selling Nios II/f license. New users need to migrate to Nios V and apply the Nios V license. Regarding the example design, couple of points below that can help you. To simplify the design, it can be divided into three function blocks: RSU block (Dual Configuration IP to handle RSU) UART block (Communication thru UART) Booting block (Nios to boot from QSPI) RSU block (Dual Configuration IP to handle RSU) UART block (Communication thru UART, such as printf & scanf) Booting block (Nios booting from QSPI) Below User Guides will help you to understand more about these function blocks. RSU block (Dual Configuration IP to handle RSU) MAX® 10 FPGA Configuration User Guide (How does Dual Configuration IP handle Max 10 RSU?) MAX® 10 User Flash Memory User Guide (Dual Configuration IP switches the target CFM only, you will need On-Chip Flash IP to change the FPGA Image in CFM) UART block (Communication thru UART) UART Core (Altera HAL driver to send/receive UART data in Software Programming Model subchapter) Booting block (Nios booting from QSPI) Nios® II Processor Booting from QSPI Flash (QSPI Controller + OCRAM is a must to boot Nios II from QSPI) Nios® V Processor Booting from General Purpose QSPI Flash (QSPI Controller + OCRAM is a must to boot Nios V from QSPI) And finally connecting the 3 logic blocks to get the whole design, Thanks Re: max10 remote system update nios with uart Hello Let me check and get back to you. Thanks. Re: max10 remote system update nios with uart Hello Can you check your design settings in Quartus with the example design settings, the link below provides the file for the example that you are trying to follow Intel® MAX® 10 FPGA – Intel MAX 10 FPGA Remote System Upgrade (RSU) over UART for the Nios® II Processor Design Example Thanks Re: Handoff Files Agilex V Hello K In addition to Whitepau's note, below are some links to collaterals that can help guide you for your task. If you have Agilex 5 E-Series Premium Devkit GSRD, the GSRD guides you on using the GPIO LEDs located at https://altera-fpga.github.io/rel-25.1/embedded-designs/agilex-5/e-series/premium/gsrd/ug-gsrd-agx5e-premium/ If you have Agilex 5 E-Series Modular Devkit GSRD, the GSRD guides you on using the GPIO LEDs located at https://altera-fpga.github.io/rel-25.1/embedded-designs/agilex-5/e-series/modular/gsrd/ug-gsrd-agx5e-modular/ We also have a Agilex 5 Design Hub where it can guide you to the relevant collaterals that you need for your task. Agilex 5 Design Hub location at https://www.intel.com/content/www/us/en/products/details/fpga/agilex/5/resource.html Agilex 5 Embedded Software with HPS guided journey located at https://www.intel.com/content/www/us/en/support/programmable/support-resources/guided-journey/agilex5/software-development.html Thanks