Skip to content

Initiator mode imaging of IBM DPES-31080 – observation about read payload during STATUS phase #345

@fortiko

Description

@fortiko

Hello,

First of all, thank you for the BlueSCSI project — it’s been extremely useful.

While experimenting with initiator mode disk imaging, I ran into trouble with my particular setup. I want to stress that I am not certain this is a firmware issue, and it may also be related to my drive configuration (jumpers, termination, etc.).

I’m mainly sharing the observation in case it helps.

Hardware
• BlueSCSI v2
• Pico 2 W (RP2350)
• Firmware: I tried several (v2026.03.01, v2026.02.08, v2025.10.27)

Target drive:
• IBM DPES-31080 (1 GB SCSI hard disk)
• capacity 2118144 sectors x 512 bytes
• Drive total size is 1034 MiB

Power:
• The drive is powered from a NeXTstation Color PSU (only used as a power source).
• The NeXT system itself is not connected to the SCSI bus.

Behaviour observed

During bulk disk reads (READ(6) and later READ(10)), it looked like the drive started sending payload data while the initiator still decoded the bus phase as STATUS.

This caused BlueSCSI to treat the incoming payload byte as a status byte, which then broke the read sequence.

I added some debug logging and observed patterns like:

COMMAND: Read6
STATUS
(data appears)

Instead of the (probably) expected sequence:

COMMAND
DATA_IN
STATUS
MESSAGE_IN

Diagnostic workaround

As an experiment, I added a temporary workaround in scsiInitiatorRunCommand().

When:

bufInLen > 0
bufOutLen == 0
returnDataPhase == false

and the phase appears as STATUS, the code temporarily consumes the expected inbound payload before processing the final status byte.

This is clearly not intended as a proper fix, just a diagnostic workaround to see if the issue was related to phase timing.

The hacky patch is attached.

Result

With that workaround in place, the full disk imaging run completed successfully:

SCSI read succeeded, sectors done: 2118144 / 2118144 speed 2427 kB/s - 100%
Finished imaging drive with id 1

The final transfers were READ(10) commands and also completed successfully. Throughput during imaging was roughly 2.0–2.4 MB/s

Important caveat

I cannot rule out that this behaviour was caused by:
• incorrect drive jumper settings
• termination differences
• a peculiarity of this specific drive model

So I’m not claiming this is necessarily a BlueSCSI bug.

The workaround simply allowed me to finalise the imaging and helped narrow down what seemed to be happening.

Question

Has similar behaviour been observed with other SCSI disks in initiator mode?

If useful, I can provide:
• the full debug logs
• firmware build information
• additional testing with different jumper settings

The original (now preserved!) drive doesn't seem to have any issues (yet), so when I find time I am happy to run experiments if necessary.

Thanks again for the project and for taking a look.

next-mirroring-minimal.patch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions