02-02-2011 01:43 AM
We are using Virtex 5(xc5vfx100t) in our custom board. We ported Linux(2.6.35) over PPC440 on the above FPGA.
The Linux is coming up properly every time. But sometimes the Ethernet bandwidth we are getting is very less(2 to 3 Mbps).
Sometimes the bandwidth is proper. We are using iperf for measuring the bandwidth.
The dts file and the xparameters.h file are attached.
02-02-2011 07:20 AM
This is a tricky one since it works part of the time. The device tree lost all of it's hierarchy when it was pasted in so it's a bit hard to review, but I don't see anything obvious.
If you have an ML507 Xilinx board that would be best to use to get a baseline with the Xilinx provided reference design. With your own h/w design it's difficult to say.
What have you done to debug this? Are you confident the rest of the system is performing correctly when the ethernet is not (normal performance)?
Does this system meeting timing? I would assume so as it's a small system in that device and it's pretty low frequency.
An easier measure to debug might be the ping response time when you ping it. Do you see it any different in the bad case?
I would take out all other drivers that are not required to do this also. Only have the uart, intc and ethernet. This may help isolate the problem.
Do you see anthing different when the drivers configure during the boot when it's not working?
I would assume you are doing this point to point rather thru a switch or large net, if not then I would do that to remove all the variables.
Sorry there's no easy answer, keep debugging.
02-02-2011 11:13 PM
Thanks for your reply. This time I have attached the dts file also.
There isn't any difference in the boot log when bandwidth is low.
We already tried putting the system in network as well as back to back. Still the behaviour is same.
We ported the setup for our custom board from the Xilinx provided reference design(xapp1140).
I will continue debugging as per your suggestions.
02-03-2011 07:11 AM
This maybe a tangent, but is another alternative to try.
So I'm also assuming that you're using the Xilinx LL TEMAC driver from our tree that is not in the mainline. I know this is a bit confusing and my apologies, but it's open source. There is a newer driver in the mainline and in our tree such that there are really 2 LL TEMAC drivers.
The newer one came from the open source community because our old one was not designed to be accepted into the mainline (very old and hierarchical). I have used it some and contributed some to getting it to where it could be a replacement for ours (and get rid of ours to reduce the confusion).
In the kernel config, you'll see Xilinx LL TEMAC (LocalLink Tri-mode Ethernet MAC) driver which is the newer flat driver, source code is ll_temac*.*.
If you see the same issues with both drivers, I would wonder if you have a h/w or system issue.
02-06-2011 11:49 PM
Sorry for the late reply.
I tried with the Xilinx LL TEMAC (LocalLink Tri-mode Ethernet MAC) drive. This is case the behaviour is different.....
In the kernel log the ipaddress(static) is assigned to the board, but not able to ping after booting is complete.
THe bandwidth test is showing 0.00Mbits/s.
I did "ifconfig eth0 172.16.10.100 up". But it is showing only "net eth0: promiscuous mode disabled".