...
EDIT:
It seems that the serial driver has to be used in cgminer because, on the Control Unit side, the USB goes through an offchip UART before connecting to the Spartan-6.
Incorrect - you do not have to use serial-USB - the linux kernel simply sits on top of the ftdi_sio driver which is, of course, usb.
You just need to know how to talk to it on USB (as the sio driver already does)
Please clarify what you mean by "the linux kernel simply sits on top of the ftdi_sio driver".
My point is this: USB involves complex protocol, UART is simple. We can simulate a direct UART connection between any two systems through the Internet, as is being done as we speak. Now the Internet protocols are even more complex than USB. The easiest way to talk UART to another system through the Internet is NOT to muck with the Internet protocols (that would be crazy). The easiest way is to have another Internet appliance (similar to the one used on the other UART endpoint), and talk UART to that appliance. Similarly in the case of USB.
The simple topology seems to be [sio driver] <--> [usb driver] <-- usb wire --> [usb protocol hw] <--> [uart hw], with the [uart hw] on Avalon's control unit side dictating that the [sio driver] be used on the cgminer side. That's my point.
In other words, we may have to remove the [uart hw] on the Avalon control unit to get rid of the [sio driver] on cgminer.