Hello Dr Barry,
Apologies for the delayed response.
The design that we have shared uses MSGDMA and relevant drivers for data transfer between memory and TSE.
MSGDMA is fast and can operate without disturbing the CPU.
To answer the questions, Yes, the design can be modified to use Avalon FIFOs. But that would require CPU intervention to transfer the data from FIFO to the memory and vice versa.
This "may" bring down the throughput as the CPU would be busy frequently. We do not have exact data on how it would impact.
If you're okay with that, you can use the Avalon FIFO IPs. But you will have to develop the complete baremetal application.
I suggest to look into the TSE IP example design where they are using a custom logic to generate packets and loop it back via TSE.
It is a baremetal application and uses JTAG to Avalon® memory-mapped interface Address Decoder for data transfers.
Here is the link to the IP example design doc- https://docs.altera.com/r/docs/813899/25.3.1/triple-speed-ethernet-ip-design-example-user-guide-agilextm-3-and-agilextm-5-fpgas-and-socs/100/1000-ethernet-mac-design-example-with-1000base-x/sgmii-2xtbi-pcs-with-gts-transceiver
Regarding the Nios V/m porting, we have a design with Nios V/m + TSE on Agilex 7 SiSoc devkit showcasing iperf and SSS applications based on ucOSII.
You may refer to that design in the links below:
Again, this is with ucOSII and not a baremetal application.
You will have to refer to the TSE IP example design to write the baremetal code for TSE init and operation.
Regards,
Pavee