Hello!
I found this thread by chance, and it is similar to what beginner_EDA was trying to implement.
I am interested in routing the TSE MAC data directly to my IP, I would like to keep the NIOS just to set up the TSE control registers. I do not even need UDP packets, just raw ethernet frames.
I connected an ST splitter to the TSE RX and connected one output to the SGDMA -> descriptor memory ->NIOS chain (as in the example - simple socket server). The other output is connected to the streaming interface of my custom IP. At this point, I just have the RX chain modified. I see strange behaviour on signal tap- After the system receives the first packet, for the subsequent packets, the startofpacket is always high. It could be that there is a ready latency issue between the components. Or could it be that I cannot use a an ST splitter? And it is has to be done through a Demux?
--- Quote Start ---
If you have reached the point where you don't care about the NIOS any more, then now would be a good time to remove the channel mapper, DEMUX, NIOS SGDMA etc. in order to avoid creating your own "channel mapper" which is probably not part of your long term final solution.
--- Quote End ---
If I were to remove the SGDMA NIOS connection, the connections in QSYS become very simple. The NIOS would be connected only to the control port of the TSE MAC.
https://www.alteraforum.com/forum/attachment.php?attachmentid=14847 How would this affect the NIOS code?
Now, I was unable to build the UDP offload example in 16.0. The project archive is all in scripts, and it uses SOPC builder. I tried to replace with the equivalent commands with qsys to generate the system, but it is not trivial. I am asking questions based on the PDF description of the UDP offload system, source files of the components, C files of this example to modify the simple socket server example (this I was able to run successfully). In both the examples, they call
alt_iniche_init();
netmain();
This initializes everything, to setup the IP address. If I remove these calls, would it affect the configuration of the TSE MAC (This is in ins_tse_mac.c in the BSP folder? I am a bit lost as to how the application code uses the BSP drivers, especially when I don't see any specific calls to the initialization of the peripherals.
I guess I have the following questions:
1. Can I use an ST splitter? My reasoning is then I do not have to modify any of the NIOS code and the data is seen by my IP.
2. If I remove the SGDMA NIOS chain, and remove the calls to alt_iniche_init, netmain, and the socket tasks (just start the OS), will the files in the BSP folder configure the TSE MAC.
My objective is to test my IP which receives data over ethernet, processes it and returns it. It is not to create a full and proper interface (That would be a bonus, but not a priority). Thus raw ethernet packets are fine.
Suggestions are more than welcome :).
Thank you!