shanshe / Z3660

Amiga 4000 CPU accelerator board based on A3660 and Z-turn FPGA board
GNU General Public License v3.0
55 stars 8 forks source link

Need help to improve SCSI emulation #3

Closed shanshe closed 1 year ago

shanshe commented 1 year ago

SCSI emulation is a translation from "PISCSI", the SCSI emulation of Musashi PiStorm. As PiStorm is so fast, this SCSI emulation doesn't matter if it has interrupts or not... It runs in a thread, and it is fast, really fast. But here, when we receive a command, then we wait until f_read/f_write function is done. This could be solved if we use some buffers for reading and writing, some function to manage these buffers, and using interrupts to inform to the Amiga (i.e. to the z3660_sicsi.device driver) that the read or write has finished. I need help to do this, or to rethink the SCSI emulation, as now, it feels slower than the A4000 internal IDE.

Edit: the polling reads affects, for example, to MHI mp3 playback on AmigaAMP.

shanshe commented 1 year ago

I have added exFAT support to SCSI emulation (thanks to a Xilinx's feature). SCSI is working now fine!!! So I will close this issue, but maybe in the future we should go to interrupt scheme (there are only polling examples from Xilinx).