Driver and Device/Firmware Tests

Several open documents specify in detail how to develop device drivers for the Atari. Deviations from these specifications can lead to malfunctions and even data loss. Testing driver and device implementations helps in developing error-free drivers and error-free device firmwares.

SCSI Driver and Firmware Test Suite

Download SCSI Driver and Firmware Test Suite SCSI Driver and Firmware Test Suite 4.05 (April 8, 2026)

The test suite is a collection of open source tools for testing SCSI firmware/emulations (especially SCSI-2 and newer) and some SCSI Driver functions, also for SCSI Drivers for IDE/SATA or USB. The compatibility with SCSI-2 and newer is tested, not the compatibility with HDDRIVER. The latter results from SCSI compatibility. Ataris with a real SCSI bus or an ICD-compatible host adapter support any SCSI command, also those newer than SCSI-2. For other buses any command can be emulated by the respective driver.
HDDRIVER is not required for these tests, but only a SCSI Driver for the buses/devices to be tested.

The test suite comprises 4 programs:

The tests do not modify any data. SERRTEST, ERRTEST and MCHGTEST list the availables buses and expect the input of bus and device IDs. SDRVTEST tests all devices present.
Please contact me if you find a test where the expected result does not comply with the SCSI Driver specification or the SCSI standard. The source code of all programs is available on GitHub, so that you can see exactly what is tested and how.

Some SD cards readers for ACSI fail the media change test MCHGTEST. With this hardware hot-swapping of SD cards may result in data loss. There is no such bug with real physical removable media drives (SyQuest, ZIP, JAZ, ...) and also not with UltraSatan and GigaFile. By the way, hot-swap has been supported by correctly working drives and drivers for decades, even by AHDI 3.00.
Some drivers have bugs, which are not found by the test suite, but which can also lead to errors after media changes. For HDDRIVER, ICDBOOT, CBHD, HuSHI and AHDI no such bugs are known, but unfortunately for other driver software. Contact me for information about where on GitHub you can find details. The projects in question are aware of bugs in various driver components (especially SCSI Driver and XHDI) and would probably appreciate help.

The example logfile of SDRVTEST shows test results of HDDRIVER with devices that pass all tests: An IBM DDRS-39130 hard drive, a removable media drive emulated by SCSI2Pi, a streamer emulated by SCSI2Pi and the SCSI Driver target interface of HDDRIVER.

Example Logfile of SDRVTEST Example logfile of SDRVTEST

With the test suite and Hatari or ARAnyM and the SCSI Driver for Linux you can also test native Linux devices. The following logfile tests an emulated IDE drive and a real NVMe-SSD connected by a USB-to-NVMe adapter.

Example Logfile with Hatari Example logfile with Hatari

In a logfile each bug is marked with "ERROR". SDRVTEST as good as possible tries to differentiate between bugs in the SCSI Driver and bugs in the device firmware.