Hi Michael, Op ma 28 okt. 2019 om 19:32 schreef Michael Schmitz <schmitzmic@xxxxxxxxx>:
Don't mess with CONFIG3 - we've tried all that, and in the end had to use PIO to transfer message bytes. Problems with tagged queueing in the ESP driver are usually all due to the DMA not transferring single bytes on Amiga. The additional message byte required to see a reselect for a tagged command complete remains stuck in the ESP fifo. Can't see how this would be affected by the driver mis-identifying the chip as FAS100A.
And yet that was exactly what caused the issue. It was setting bit 1 of CONFIG3 - ESP_CONFIG3_FAST (FAS100A) instead of bit 3 - ESP_CONFIG3_FCLK (FAS236 and also FSC). Bit 1 means ESP_CONFIG3_ADMA on the FSC, and having bit 0 cleared and bit 1 set is actually an illegal combination on the FSC (marked "Reserved" in the data manual).
Regardig mis-detection of the chip revision - can you print the 'version' and 'family_code' variables in the esp->rev == FAST branch of esp_reset_esp() please?
Family code 0x14, version 2. That's what was also used in the old driver.
I will try out some things this evening, I naively added the FSC to the end of the enum, but the code does things like "if (esp->rev >= FAS100A)" which break horribly then. It looks like it might work if I add my chip type between FAS236 and FAS100A in the esp_rev enum.
And that indeed fixed it. I ran "fsck -n" on both partitions on the SCSI disk without issues. I also want to enable Active Negation and perhaps also "Back-to-Back Transfer Enable" in CONFIG4 for this chip (see also the data manual http://www.bitsavers.org/components/ncr/scsi/53CF94_96-2_Fast_SCSI_Controller_Data_Manual_Apr1993.pdf if you are interested, at home I have an even newer one for the Symbios Logic version). I will prepare a patch. Oh, I also noticed some issues in the comments in the driver, I'll see if I can fix those too. Kind regards, Kars.