> I've found while working with mac68k that devices that require polled io scsi > transfers would fail with sbc pdma (pseudo dma) would fail when reading and > writing to the respective device. > > I've found that virtual devices for rascsi and the scsi2sd drives would fail > using pdma. For virtual disks they would fail always when writing to the > device, reads were ok. > > For virtual ethernet devices they would fail for reading and writing.
It looks more detailed information is necessary. - How does it fail? Lost interrupts? Generic SCSI xfer errors? - Does the mac68k sbc (with MI ncr5380sbc) work with other real SCSI devices (at least on your machine)? - Per obio/sbc_obio.c SBC_INTR and SBC_RESELECT are disabled on MACIIFX and MACPB500 (maybe no working interrupts). https://github.com/NetBSD/src/blob/43d029e4b58545fb46624a260279892a85d8a211/sys/arch/mac68k/obio/sbc_obio.c#L131 Does PDMA work on other machines (i.e. with working interrupts)? - Furthermore, why do you check XS_CTL_POLL instead of SBC_INTR in sc_options? - Does the RaSCSI etc. work with GENERIC (not GENERICSBC)? I don't know a history why mac68k has both MI ncr5380 (GENERICSBC) and the own NCR5380 driver (GENERIC with dev/mac68k5380.c) for years. - I wonder if these SCSI emulation devices using GPIO controled by own software comply various xfer timings defined in SCSI spec. (I have a drive with IDE-SCSI converter that emit errors on news68k SCSI with MI ncr5380) - I also wonder if the first byte of write xfer should be written on manualy PDMA write, as eps_dma_go() in mac68k/obio/esp.c https://github.com/NetBSD/src/blob/43d029e4b58545fb46624a260279892a85d8a211/sys/arch/mac68k/obio/esp.c#L564 --- Izumi Tsutsui