Does anyone have the driver source code? I did have a look at the BIOS source - the throughput can be improved dramatically, especially for the lo-tech variant which can use the 16-bit “BIU Offload” trick.
Hi,
I did decompile the driver partially and it is obviously extremely Slow.
The speed can be improved by more than 10...
The Best code is of course like in the EMMM Board BIOS, with a simple Loop containing the IN instruction and MOV to memory.
This one can even be optimized with an unrolled loop, IN then STOSB.
The Chip is able to seend data at 6MHz, then 6MB/second, but it has a 16 bytes buffer and it need to load the data from the USB one by one.
At the end, the code to detect the IRQ (Done with Port Pooling as the IRQ are not wired) may be as slow as the one doing the 16 byte transfer.
So, I can really easily modify an existing driver to speed it up. (But I have no board to test)
I see as well that Lo tech did a design with this CH375 chip, but the CH376 chip car interprete FAT32, we can then imagine doing the mapping of .IMG File ans Add Floppy and even CD images emulation with it....
The CH376 has probably a bigger buffer as well (Faster)
They have a Beta BIOS to download but no source..... Strange.
A much better solution can then be to design a board with a CH376, redo the BIOS and a driver and we can then have HDD Boot, Partition mapping/Unmapping by selecting a .IMG, Floppy, CDROM...
Really faster than the current 13Kbps
Another solution explained here already, MAP the chip into the memory space, to be able to use REP MOVSB. But it is usefull only on 8086/8088 and the speed without it is surely more than sufficient.