1. Yes Cypress provides drivers for high speed devices. I am not sure about the speeds. I am letting the other USB experts on the forum to let this question to be answered.
2.Cypress USB Suite 3.4.7 provides C# classes, objects and methods to access a USB device and perform Bulk transfer.
1. Actually the rates being mentioned in the datasheet are signalling rates not data rates, i.e. 480Mbps for high speed
With Fx2lp you can reach upto 35-40MBps, we have a streamer application with which you can check the throughput of the device.
2. Cypress provides drivers (CyUSB.sys) which also supports Bulk transfers. C# library (CyUSB.dll) provided along with Cyress SuiteUSB, has APIs for handling all kinds of transfers including Bulk transfers.
3. Now, about the firmware download: if you are downloading over USB, it would be loaded into volatile memory, thus need to be downloaded every time the power goes off. Now, apart from EEPROM and USB we also have another method of loading firmware using script. If interested, you may find ore details on www.cypress.com/?docID=33099 .
4. GPIF will enable FX2LP to act as a master to build an interface with a peripheral device. If you want to connect FX2LP to slave peripheral devices like an SRAM, then you will need GPIF. GPIF can generate control signals and accept a few ready signals necessary for handshaking across the interface. The timing waveforms can be generated easily using GPIF designer. If GPIF is not used, i.e. if FX2LP is configured in SLave mode, then there should be external master (i.e. the peripheral device should act as the master) which can drive the necessary signals and initiate the data transfers, and thus act as the master for the interface.