Some useful results from tonight's testing. I can confirm that when the errors start, it affects writes as well as reads (once the errors start, I can't read any file of 1024 bytes or greater, or copy any file of 1024 bytes or greater to the filesystem, but smaller files are OK). Lowering the MaxTransfer to 0x1
does avoid the filesystem read/write errors on files 1024 bytes or larger. However, setting MaxTransfer so low breaks other functionality: SysInfo can't run its disk speed test, ReOrg gives a warning that the MaxTransfer is too small and gives I/O errors when trying to read the root block, and of course filesystem performance is likely worse than it could be. However, it's definitely preferable overall!
I have two of these CF adapters (
these buffered ones from Amigastore.eu), and both show the same (mis)behaviours.
I also tested the same CF card in the same A1200 with the same Kickstart and Workbench, with MaxTransfer=0xfe00, but using a different CF adapter (a PC Engines GMBH passive one that I've been using in my other A1200). No I/O errors on files 1024 bytes or bigger, and ReOrg runs just fine. So, maybe the SanDisk CF cards just don't like the buffered adapters for some reason. Any thoughts?