nielsmh / escsitoolbox

Toolbox for emulated SCSI devices (BlueSCSI, ZuluSCSI) on DOS/Windows hosts
GNU General Public License v3.0
9 stars 1 forks source link

Errors with ZuluSCSI RP2040 on a Microchannel BusLogic BT-646s/Storage Dimensions 2FAST SDC3211F #2

Open PhantomEight opened 3 months ago

PhantomEight commented 3 months ago

I'm having errors with the lsimg, lsdir, and setimg commands on ZuluSCSI RP2040 connected to a Microchannel BusLogic BT-646s/Storage Dimensions 2FAST SDC3211F, running ZuluSCSI firmware v2024.07.16.

See here for information about the SCSI card: https://www.ardent-tool.com/SCSI/Buslogic_BT646.html

Zuluscsi.ini will be attached as zuluscsi.txt zuluscsi.txt

The Info commands spits out the following which appears accurate

Name   Type       Manufacturer         Model                Adapter           
------------------------------------------------------------------------------
0:0:0  Disk       ZULUSCSIHARDDRIV     HARDDRIVE            BusLogic 646A     
0:2:0  Disk       ZULUSCSIHARDDRIV     HARDDRIVE            BusLogic 646A     
0:5:0  CD-ROM     NAKAMICHMJ-5.16S     MJ-5.16S             BusLogic 646A     
0:5:1  CD-ROM     NAKAMICHMJ-5.16S     MJ-5.16S             BusLogic 646A     
0:5:2  CD-ROM     NAKAMICHMJ-5.16S     MJ-5.16S             BusLogic 646A     
0:5:3  CD-ROM     NAKAMICHMJ-5.16S     MJ-5.16S             BusLogic 646A     
0:5:4  CD-ROM     NAKAMICHMJ-5.16S     MJ-5.16S             BusLogic 646A     
0:6:0  CD-ROM     ZULUSCSICD-ROM D     CD-ROM Drive      BusLogic 646A     

The lsdir command spits out the following, there is a folder named shared on the root with three files in it.

Retrieving file list from device 0:0:0 type 0 (Disk)...
SENSE: err=00 seg=00 key=00 info=00000000 addlen=00
       cominf=00000000 addcode=00 addqual=00 frepuc=d4

The lsimg command for device 6 spits out the following

Retrieving images from device 0:6:0 type 5 (CD-ROM)...
SENSE: err=00 seg=00 key=00 info=00000000 addlen=00
       cominf=00000000 addcode=00 addqual=00 frepuc=d4

setimg doesn't report an error and says:

Set loaded image for device 0:6:0 type 5 (CD-ROM)
Set next image command sent successfully

However, if you change drive and do a dir you get a "General failure reading drive W" (I set shsucdx to start at drive R) until I power cycled the ZuluSCSI.

SCSI drivers are loaded from BusLogic's last available versions and are as follows:

Config.sys

DEVICEHIGH=C:\DRIVERS\BUSLOGIC\BTDOSM.SYS /D /L
DEVICEHIGH=C:\DRIVERS\BUSLOGIC\BTCDROM.SYS /D:ASPICD0 /L /Q
DEVICEHIGH=C:\DRIVERS\BUSLOGIC\BTMDISK.SYS /D

Autoexec.bat

C:\DRIVERS\SHSUCD\SHSUCDX.COM /D:ASPICD0,R /Q

Please let me know if there is any additional information I can provide, thanks!

PhantomEight commented 3 months ago

Forgot to look at the log.....

[123811ms] Switching to next image for id 6: CD6/
[123814ms] ---- Image file is read-only, writes disabled
[123814ms] ---- Failed to load image 'CD6/', ignoring
[134435ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134438ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134440ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134442ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134444ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134445ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134447ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134449ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134451ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134453ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[134454ms] WARNING: Host attempted read at sector 16+1, exceeding image size 0 sectors (2048B/sector)
[141918ms] Switching to next image for id 6: CD6/
[141921ms] ---- Image file is read-only, writes disabled
[141921ms] ---- Failed to load image 'CD6/', ignoring

Hmm... from Zuluscsi.log. Not sure why it's failing to load the image. That could be an issue that is out of scope of escsitoolbox. This was me switching from IMG0 to IMG1, doing a DIR on the drive letter, and then back to IMG0

nielsmh commented 3 months ago

How are your multiple images for the CD drive configured? In a folder named CD6 in the root of the SD card, or via the INI file? Because the image switching commands as implemented by the firmware right now only look in a folder named CD<deviceid> and ignores any INI file settings. (Edit: I didn't see your attached INI file at first. Yes, you need to place the CD images in a subfolder.)

Also, can you collect a log file from when you run lsdir?

PhantomEight commented 3 months ago

How are your multiple images for the CD drive configured? In a folder named CD6 in the root of the SD card, or via the INI file? Because the image switching commands as implemented by the firmware right now only look in a folder named CD<deviceid> and ignores any INI file settings. (Edit: I didn't see your attached INI file at first. Yes, you need to place the CD images in a subfolder.)

Also, can you collect a log file from when you run lsdir?

Yes, I listed the images because I could not find an example of how to configure that via the ini and almost suggested it as a feature request on their github page. I would very much prefer to just toss them in a folder. Do I just simply not list them? It's definately not documented well on ZuluSCSI's account. It looks like I can maybe specify a DIR command, but I have to travel to visit family and will play with that tonight and for now I only commented out the IMG lines and tossed them in root folder named CD6. It looks like that did the trick as a DIR on W: shows me the contents of at least one of the Win95 disks.

I turned on debug in the ini file and now i get the following for the ls commands...

Retrieving file list from device 0:0:0 type 0 (Disk)...
[0:0:0] Timeout waiting for TOOLBOX_COUNT_FILES

Retrieving images from device 0:6:0 type 5 (CD-ROM)...
[0:6:0] Timeout waiting for TOOLBOX_COUNT_CDS

and the relevent section of the log has the crashes below and the file names present are accurate. This looks like the firmware is crashing instead of it being a problem with the utility becuase with debug on... after I run the ls commands everything stops until I power cycle the ZuluSCSI, I can't even do a DIR in DOS on Device 0 (C:) anymore. The whole unit stops. Let me know if I should bring this info over to the other project and I can try to compile a decent report for them.

lsdir

[149487ms] DBG ---- COMMAND: Vendor 0xD2 Command (Toolbox count files)
[149488ms] DBG ------ OUT: 0xD2 0x00 0x00 0x00 0x00 0x00 
[149488ms] DBG ------ OUT: 0x00 0x00 0x00 0x00 
[149489ms] DBG TOOLBOX_COUNT_FILES
[149501ms] DBG TOOLBOX COUNT FILES: truncated filename is 'DOPMDOS.EXE'
[149502ms] DBG TOOLBOX COUNT FILES: truncated filename is 'CORETEST.EXE'
[149502ms] DBG TOOLBOX COUNT FILES: truncated filename is 'cpumhz.exe'
[149503ms] DBG ---- DATA_IN, syncOffset 15 syncPeriod 25
[149504ms] DBG ---- Total IN: 1 OUT: 0 CHECKSUM: 3
[149504ms] DBG ---- STATUS: 0 GOOD
[164061ms] --------------
[164061ms] WATCHDOG TIMEOUT, attempting bus reset
[164061ms] Platform: ZuluSCSI RP2040
[164062ms] FW Version: 24.07.16-release Jul 16 2024 23:29:35
[164062ms] GPIO states: out 0x3BFCE4FF oe 0x178F3BFF in 0x3BF8E4FF
[164063ms] scsiDev.cdb: 0xD2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
[164064ms] scsiDev.phase: 6
[164064ms] SCSI DMA state: IDLE
[164064ms] Current buffer: 0x00000000/0x00000000, next 0x00000000 bytes
[164065ms] SyncOffset: 0 SyncPeriod 0
[164065ms] PIO Parity SM: tx_fifo 0, rx_fifo 0, pc 28, instr 0x000080A0
[164066ms] PIO Data SM: tx_fifo 0, rx_fifo 2, pc 17, instr 0x00007309
[164067ms] PIO Sync SM: tx_fifo 4, rx_fifo 0, pc 21, instr 0x0000200A
[164068ms] DMA CH A: ctrl: 0x00000011 count: 0x00000000
[164068ms] DMA CH B: ctrl: 0x00020809 count: 0x00000000
[164069ms] DMA CH C: ctrl: 0x00008805 count: 0x00000000
[164069ms] DMA CH D: ctrl: 0x00011809 count: 0x00000000
[164070ms] GPIO states: 0x3BF9E4FF
[164070ms] STACK 0x2003FF00:    0x10033748 0x3BF8E4FF 0x2003FF34 0x200159B0
[164071ms] STACK 0x2003FF10:    0x10033748 0x00000000 0x2003FF80 0x00000000
[164072ms] STACK 0x2003FF20:    0x2002E524 0x0000000C 0x00000000 0x00000000
[164073ms] STACK 0x2003FF30:    0x00000000 0x00000000 0x00000000 0x2001093D
[164073ms] STACK 0x2003FF40:    0x00010188 0x00000010 0x400140F4 0xD0000000
[164074ms] STACK 0x2003FF50:    0x2001E380 0x000001FF 0x2001E37C 0xFFFFFFF9
[164075ms] STACK 0x2003FF60:    0x00010188 0x00000000 0x400140F4 0x00000400
[164076ms] STACK 0x2003FF70:    0x100206B9 0x2000C48B 0x2000C49E 0x61000000
[164076ms] DBG ---- MESSAGE_IN
[164157ms] DBG -- BUS_FREE 

lsimg - there is a third ISO, but it has some characters or too many characters that the util probably can't cope with, which is expected now that I think of it. It's "Microsoft Windows 95C (4.03.1216) (OSR2.5) (11-26-1997) (US-English).iso"

[849377ms] DBG ---- COMMAND: Vendor 0xDA Command (Toolbox count CDs)
[849378ms] DBG ------ OUT: 0xDA 0x00 0x00 0x00 0x00 0x00 
[849378ms] DBG ------ OUT: 0x00 0x00 0x00 0x00 
[849379ms] DBG TOOLBOX_COUNT_CDS
[849381ms] DBG TOOLBOX COUNT FILES: truncated filename is 'Fallout 1.1.iso'
[849382ms] DBG TOOLBOX COUNT FILES: truncated filename is 'en_win95c_oem.iso'
[849382ms] DBG TOOLBOX COUNT FILES: truncated filename is ''
[849383ms] DBG toolbox: Ignoring filename empty file name
[849383ms] DBG ---- DATA_IN, syncOffset 15 syncPeriod 25
[849384ms] DBG ---- Total IN: 1 OUT: 0 CHECKSUM: 2
[849385ms] DBG ---- STATUS: 0 GOOD
[864080ms] --------------
[864080ms] WATCHDOG TIMEOUT, attempting bus reset
[864080ms] Platform: ZuluSCSI RP2040
[864080ms] FW Version: 24.07.16-release Jul 16 2024 23:29:35
[864081ms] GPIO states: out 0x3BFCE4FF oe 0x178F3BFF in 0x3BFDE4FF
[864082ms] scsiDev.cdb: 0xDA 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
[864083ms] scsiDev.phase: 6
[864083ms] SCSI DMA state: IDLE
[864083ms] Current buffer: 0x00000000/0x00000000, next 0x00000000 bytes
[864084ms] SyncOffset: 0 SyncPeriod 0
[864084ms] PIO Parity SM: tx_fifo 0, rx_fifo 0, pc 28, instr 0x000080A0
[864085ms] PIO Data SM: tx_fifo 0, rx_fifo 2, pc 17, instr 0x00007309
[864086ms] PIO Sync SM: tx_fifo 4, rx_fifo 0, pc 21, instr 0x0000200A
[864086ms] DMA CH A: ctrl: 0x00000011 count: 0x00000000
[864087ms] DMA CH B: ctrl: 0x00020809 count: 0x00000000
[864088ms] DMA CH C: ctrl: 0x00008805 count: 0x00000000
[864088ms] DMA CH D: ctrl: 0x00011809 count: 0x00000000
[864089ms] GPIO states: 0x3BFDE4FF
[864089ms] STACK 0x2003FF00:    0x10033748 0x3BFDE4FF 0x2003FF34 0x200159B0
[864090ms] STACK 0x2003FF10:    0x10033748 0x00000000 0x2003FF80 0x00000000
[864091ms] STACK 0x2003FF20:    0x2002E524 0x0000000C 0x00000000 0x00000000
[864091ms] STACK 0x2003FF30:    0x00000000 0x00000000 0x00000000 0x2001093D
[864092ms] STACK 0x2003FF40:    0x00010188 0x00000010 0x400140F4 0xD0000000
[864093ms] STACK 0x2003FF50:    0x2001E380 0x000001FF 0x2001E37C 0xFFFFFFF9
[864094ms] STACK 0x2003FF60:    0x00010188 0xEE6D9ADD 0x400140F4 0x00000400
[864095ms] STACK 0x2003FF70:    0x100206B9 0x2000C48B 0x2000C4A8 0x61000000
[864095ms] DBG ---- MESSAGE_IN
[864102ms] DBG -- BUS_FREE
nielsmh commented 3 months ago

Interesting. I'm not sure why exactly those watchdog timeouts occur, but it smells like it's the transfer of the directory listings from the firmware to the software that stalls or fails.

Do you have any opportunity to try with a different ASPI driver for the card? I've had one other user report that some ASPI driver versions cause trouble while others don't, and I also have a SCSI host adapter card myself where I haven't (yet) had luck with a pure DOS driver for, but running SCSITB from a DOS window under Windows 9x (actually Me) was working fine.

My situation hasn't allowed me to work on this project for a while now, but I'll see if I can get things going again soon, and then maybe add some additional debug output to the software.

PhantomEight commented 3 months ago

Do you have any opportunity to try with a different ASPI driver for the card? I've had one other user report that some ASPI driver versions cause trouble while others don't, and I also have a SCSI host adapter card myself where I haven't (yet) had luck with a pure DOS driver for, but running SCSITB from a DOS window under Windows 9x (actually Me) was working fine.

I'll have to experiment. I have confirmed that lsdir does indeed work and transfer files under a DOS Command window in Windows 95c, which includes by default the updated driver for this card, so it's definately something with btdosm.sys in pure MS-DOS. I am not sure if I can obtain older/different versions, but will try.