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,
Info
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:
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,