Does the host on Ubuntu able to provide the required power? Can you measure the current/power that the host is suplying and compare it with the power consumed in the self powered mode? This can give more idea on this behaviour. How much is the difference in throughput is observed? As such, there is not relation of speed and the power mode if the host is capable enough to provide whatever the device requires.
For the device-FX3 it does not know if the host is Windows or Ubuntu. So, there is no change on the device side, we just need to check the host side limitation if any due to OS. What are the data rates you observe ? What is your applicaiton ? Is it bulk or Isoc transfers? We have seen slightly lower data rates on Linux PCs, we have tabulated our test results in one application note. The document mentions our findings on different OS, mode -Bulk/Isoc with different burst. Please compare your test result with the one in this applicaiton note AN86947:
I am unable to measure the current supplied by the host, as there are no testing points for it in my current design.
Data rates seen by FX3 device on a Windows based PC are ~80MB/s.
Data rates seen by FX3 device on a LINUX Embedded device are ~20MB/s.
My application basically is a frame grabber downloading an image in the size of 2MB, in bulk transfer mode (upon your reply here we are attempting a test for Isoc transfer mode - will communicate results once we have them).
Are there any special notes when using an Embedded system as my host (running a custom version of UBUNTU running kernel 4.4.19 with an ARMv7 architecture)