Skip to content

OpenVMS/VAX Compatibility #1117

@Pacjunk

Description

@Pacjunk

Info

  • Which version of Pi are you using: ZeroW
  • Which github revision of software: Latest/Develop
  • Which board version: Fullspec
  • Which computer is the PiSCSI connected to: VAXstation 3100

Describe the issue

I have discovered an issue with older versions of OpenVMS/VAX on versions 7.0 and earlier where the OS loses connection to the disk and waits forever (aka mount verification). I have tested on my fork of Bluescsi and also PiSCSI and both emulators show the fault. The simh emulator, however, works fine. So after some trial and error with my bluescsi fork, I have found that some extra flags are required in the modesense "read-write error recovery" page.

Code snippet from simh:

if ((pc == 0x1) || (pc == 0x3F)) {
    bus->buf[bus->buf_b++] = 0x1;                       /* R/W error recovery page */
    bus->buf[bus->buf_b++] = 0xA;                       /* page length */
    bus->buf[bus->buf_b++] = 0x26;                      /* TB, PER, DTE */

I have tested the various flags and all three flags must be set or it won't work.

I have tracked this down in PiSCSI to the Disk::AddErrorPage function in disk.cpp

Now as my C++ skills are rather poor and I don't really understand the arrays and vectors used in this section of code, I was hoping that someone would be able to make the change of just adding the 0x26 flags to the beginning of the code page.

Of course this will change will need to be tested on Macs and maybe other machines that I don't have. I have tested on the VAXstation with my fork of bluescsi and it works fine. I suspect a lot of machines will ignore these flags (as does VMS 7.1 or later).

Thanks,

Metadata

Metadata

Assignees

Labels

compatibilityCompatibility with particular computing platforms

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions