Coder Social home page Coder Social logo

zuluscsi / zuluscsi-firmware Goto Github PK

View Code? Open in Web Editor NEW
174.0 12.0 19.0 6.06 MB

Firmware for the ZuluSCSI advanced SCSI emulator

Home Page: https://zuluscsi.com

License: Other

C++ 70.76% C 28.44% HTML 0.03% Batchfile 0.01% Python 0.45% Shell 0.32% Makefile 0.01%

zuluscsi-firmware's Introduction

ZuluSCSI™ Firmware

Hard Drive & ISO image files

ZuluSCSI uses raw hard drive image files, which are stored on a FAT32 or exFAT-formatted SD card. These are often referred to as "hda" files.

Examples of valid filenames:

  • HD5.hda or HD5.img: hard drive with SCSI ID 5
  • HD20_512.hda: hard drive with SCSI ID 2, LUN 0, block size 512. Currently, ZuluSCSI does not support multiple LUNs, only LUN 0.
  • CD3.iso: CD drive with SCSI ID 3

In addition to the simplified filenames style above, the ZuluSCSI firmware also looks for images using the BlueSCSI-style "HDxy_512.hda" filename formatting.

The media type can be set in zuluscsi.ini, or directly by the file name prefix. Supported prefixes are HD (hard drive), CD (cd-rom), FD (floppy), MO (magneto-optical), RE (generic removeable media), TP (sequential tape drive).

CD-ROM images in BIN/CUE format

The .iso format for CD images only supports data track. For audio and mixed mode CDs, two files are needed: .bin with data and .cue with the list of tracks.

To use a BIN/CUE image with ZuluSCSI, name both files with the same part before the extension. For example CD3.bin and CD3.cue. The cue file contains the original file name, but it doesn't matter for ZuluSCSI.

BIN/CUE support is currently experimental. Supported track types are AUDIO, MODE1/2048 and MODE1/2352.

Creating new image files

Empty image files can be created using operating system tools:

  • Windows: fsutil file createnew HD1.img 1073741824 (1 GB)
  • Linux: truncate -s 1G HD1.img
  • Mac OS X: mkfile -n 1g HD1.img

If you need to use image files larger than 4GB, you must use an exFAT-formatted SD card, as the FAT32 filesystem does not support files larger than 4,294,967,295 bytes (4GB-1 byte).

ZuluSCSI firmware can also create image files itself. To do this, create a text file with filename such as Create 1024M HD40.txt. The special filename must start with "Create" and be followed by file size and the name of resulting image file. The file will be created next time the SD card is inserted. The status LED will flash rapidly while image file generation is in progress.

Log files and error indications

Log messages are stored in zululog.txt, which is cleared on every boot. Normally only basic initialization information is stored, but switching the DBG DIP switch on will cause every SCSI command to be logged, once the board is power cycled.

The indicator LED will normally report disk access. It also reports following status conditions:

  • 1 fast blink on boot: Image file loaded successfully
  • 3 fast blinks: No images found on SD card
  • 5 fast blinks: SD card not detected
  • Continuous morse pattern: firmware crashed, morse code indicates crash location

In crashes the firmware will also attempt to save information into zuluerr.txt.

Configuration file

Optional configuration can be stored in zuluscsi.ini. If image file is found but configuration is missing, a default configuration is used.

Example config file is available here: zuluscsi.ini.

Performance

Performance information for the various ZuluSCSI hardware models is documented separately, here

Hotplugging

The firmware supports hot-plug removal and reinsertion of SD card. The status led will blink continuously when card is not present, then blink once when card is reinserted successfully.

It will depend on the host system whether it gets confused by hotplugging. Any IO requests issued when card is removed will be timeouted.

Programming & bootloader

For RP2040-based boards, the USB programming uses .uf2 format file that can be copied to the virtual USB drive that shows up in bootloader mode.

  • There is a custom bootloader that loads new firmware from SD card on boot.
  • The firmware file must be e.g. ZuluSCSI.bin or ZuluSCSIv1_0_2022-xxxxx.bin.
  • Firmware update takes about 1 second, during which the LED will flash rapidly.
  • When successful, the bootloader removes the update file and continues to main firmware.

For ZuluSCSI V1.1 and V1.2:

  • Alternatively, ZuluSCSI V1.x can be programmed using USB connection in DFU mode by setting DIP switch 4.
  • For later-revision ZuluSCSI RP2040 boards, there is a "BOOTLDR" momentary-contact switch, which can be held down at initial power-on, to enable .uf2 firmware to be loaded.
  • For ZuluSCSI V1.2 boards, there is a "BOOTLDR" momentary-contact switch, which can be held down at initial power-on, to enable DFU mode, needed for firmware recovery mode.
  • The necessary programmer utility for Windows can be downloaded from GD32 website. On Linux and MacOS, the standard 'dfu-util' can be used. It can be installed via your package manager under Linux. On MacOS, it is available through MacPorts and Brew as a package.
  • For ZuluSCSI V1.x boards, firmware can be flashed with the following command:
  • dfu-util --alt 0 --dfuse-address 0x08000000 --download ZuluSCSIv1_1_XXXXXX.bin

DIP switches

For ZuluSCSI V1.1, the DIP switch settings are as follows:

  • DEBUG: Enable verbose debug log (saved to zululog.txt)
  • TERM: Enable SCSI termination
  • BOOT: Enable built-in USB bootloader, this DIP switch MUST remain off during normal operation.
  • SW1: Enables/disables Macintosh/Apple specific mode-pages and device strings, which eases disk initialization when performing fresh installs on legacy Macintosh computers.

For ZuluSCSI V1.2, the DIP switch settings at SW301 are as follows:

  • TERM: Enable SCSI termination
  • DEBUG: Enable verbose debug logging via USB serial console.
  • DIRECT/RAW: when in the factory-default OFF position, the entirety of the SD card is exposed as a single block device, and the device type is defined by the setting of the rotary DIP switch at SW404.
  • QUIRKS: Enables/disables Macintosh/Apple specific mode-pages and device strings, which eases disk initialization when performing fresh installs on legacy Macintosh computers.

ZuluSCSI Mini has no DIP switches, so all optional configuration parameters must be defined in zuluscsi.ini

ZuluSCSI RP2040 Full Size DIP switch settings are:

  • INITIATOR: Enable SCSI initiator mode for imaging SCSI drives
  • DEBUG LOG: Enable verbose debug log (saved to zululog.txt)
  • TERMINATION: Enable SCSI termination
  • BOOTLOADER: Enable built-in USB bootloader, this DIP switch MUST remain off during normal operation. Later (Rev2023a) ZuluSCSI RP2040 Full Size boards have a bootloader button instead of a DIP switch.

Physical eject button for CDROM

CD-ROM drives can be configured to eject when a physical button is pressed. If multiple image files are configured with IMG0..IMG9 config settings, ejection will switch between them. Two separate buttons are supported and they can eject different drives.

[SCSI1]
Type=2 # CDROM drive
IMG0 = img0.iso
IMG1 = ...
EjectButton = 1

On ZuluSCSI V1.0 and V1.1 models, buttons are connected to J303 12-pin expansion header. Button 1 is connected between PE5 and GND, and button 2 is connected between PE6 and GND. Pin locations are also shown in this image.

On red RP2040-based ZuluSCSI models, buttons are connected to the I2C pins.

Button 1 is connected between SDA and GND and button 2 is connected between SCL and GND. On full-size models, the pins are available on expansion header J303 (image). On compact model, pins are available on 4-pin I2C header J305 (image).

SCSI initiator mode

The full-size RP2040 and RP2040 Pico models supports SCSI initiator mode for reading SCSI drives. When enabled by the DIP switch, ZuluSCSI RP2040 will scan for SCSI drives on the bus and copy the data as HDxx_imaged.hda to the SD card.

LED indications in initiator mode:

  • Short blink once a second: idle, searching for SCSI drives
  • Fast blink 4 times per second: copying data. The blink acts as a progress bar: first it is short and becomes longer when data copying progresses.

The firmware retries reads up to 5 times and attempts to skip any sectors that have problems. Any read errors are logged into zululog.txt.

Depending on hardware setup, you may need to mount diode D205 and jumper JP201 to supply TERMPWR to the SCSI bus. This is necessary if the drives do not supply their own SCSI terminator power.

ROM drive in microcontroller flash

The RP2040 model supports storing up to 1660kB image as a read-only drive in the flash chip on the PCB itself. This can be used as e.g. a boot floppy that is available even without SD card.

To initialize a ROM drive, name your image file as e.g. HD0.rom. The drive type, SCSI ID and blocksize can be set in the filename the same way as for normal images. On first boot, the LED will blink rapidly while the image is being loaded into flash memory. Once loading is complete, the file is renamed to HD0.rom_loaded and the data is accessed from flash instead.

The status and maximum size of ROM drive are reported in zululog.txt. To disable a previously programmed ROM drive, create empty file called HD0.rom. If there is a .bin file with the same ID as the programmed ROM drive, it overrides the ROM drive. There can be at most one ROM drive enabled at a time.

Project structure

  • src/ZuluSCSI.cpp: Main portable SCSI implementation.
  • src/ZuluSCSI_disk.cpp: Interface between SCSI2SD code and SD card reading.
  • src/ZuluSCSI_log.cpp: Simple logging functionality, uses memory buffering.
  • src/ZuluSCSI_config.h: Some compile-time options, usually no need to change.
  • lib/ZuluSCSI_platform_GD32F205: Platform-specific code for GD32F205.
  • lib/SCSI2SD: SCSI2SD V6 code, used for SCSI command implementations.
  • lib/minIni: Ini config file access library
  • lib/SdFat_NoArduino: Modified version of SdFat library for use without Arduino core.
  • utils/run_gdb.sh: Helper script for debugging with st-link adapter. Displays SWO log directly in console.

To port the code to a new platform, see README in lib/ZuluSCSI_platform_template folder.

Building

This codebase uses PlatformIO. To build run the command:

pio run

Origins and License

This firmware is derived from two sources, both under GPL 3 license:

Main program structure:

  • SCSI command implementations are from SCSI2SD.
  • SCSI physical layer code is mostly custom, with some inspiration from BlueSCSI.
  • Image file access is derived from BlueSCSI.

Major changes from BlueSCSI and SCSI2SD include:

  • Separation of platform-specific functionality to separate directory to ease porting.
  • Originally ported to GD32F205 and then RP2040 (See commit 858620f).
  • Removal of Arduino core dependency, as it was not currently available for GD32F205.
  • Buffered log functions.
  • Simultaneous transfer between SD card and SCSI for improved performance.

zuluscsi-firmware's People

Contributors

aperezbios avatar petteriaimonen avatar morio avatar saybur avatar peclark1 avatar jjakob avatar nielsmh avatar reinauer avatar zigzagjoe avatar erichelgeson avatar kylej61782 avatar kars-de-jong avatar phe78 avatar robsmithdev avatar androda avatar

Stargazers

Derek avatar  avatar Eden Barby avatar  avatar Dirk Fröhling avatar  avatar  avatar  avatar Maya avatar Benjamin Funke avatar  avatar  avatar Bill Crook avatar Michael Berry avatar  avatar  avatar  avatar Easton Elliott avatar Zhang Zhiping avatar Dominik Behr avatar  avatar  avatar  avatar Danny the man, What's up! avatar Mike Naberezny avatar  avatar  avatar Gnaghi avatar Matthias Seidel avatar Tom avatar BogDan Vatra avatar  avatar  avatar  avatar Rob Williams avatar Mike Panetta avatar Ronny Hansen avatar Fra avatar Mahyar Koshkouei avatar Jeremiah Watts avatar Adam Kauffman avatar Keli Hlodversson avatar Daniel Arnold avatar Jake Carter avatar Tammy Cravit avatar  avatar Attiq Aamir avatar Mike avatar GilDev avatar Julian Uy avatar  avatar Post Writer avatar Pavel Baroň avatar Mark Aikens avatar  avatar Giulio Zausa avatar  avatar Mick Maloney avatar Jasmine Iwanek avatar John Paul Adrian Glaubitz avatar Karlin Fox avatar  avatar  avatar Morten Hattesen avatar Ray Bellis avatar Alexei A Smekalkine avatar Axel PASCON avatar Anders Nelson avatar sbuhlert avatar  avatar  avatar Robert Quattlebaum avatar Volkert de Buisonjé avatar Josh Behrends avatar  avatar Bill Doyle avatar  avatar  avatar  avatar Waverly Sonntag avatar David Ranch avatar David Dias avatar  avatar John R. Southern avatar Ivan Hawkes avatar Fabian Barraez avatar  avatar Adam Ainsworth avatar Chris avatar Christopher Hoover avatar tsointsoin avatar I0ta84 avatar Bastian Müller avatar  avatar  avatar Mark Krueger avatar Rasz_pl avatar Bill D. Strong avatar  avatar Charles Thompson avatar

Watchers

 avatar  avatar  avatar Jason Madden avatar Brandon Applegate avatar David Ranch avatar  avatar Charles Thompson avatar  avatar Paul Powers avatar  avatar  avatar

zuluscsi-firmware's Issues

Please disable whole card pass-through when raw disk image is specified

For v1.0.6RC2, raw pass-through for the whole SD card is enabled when no disk image file is present, but raw disk image is explicitly specified in zuluscsi.ini, e.g.:

(snip)
[SCSI0]
IMG0 = RAW:2097152:35651583
(snip)

For this example, the whole card is recognized as SCSI1 if no image file is present. As a result, sectors between 2097152 to 35651583 can be accessed both as SCSI0 and SCSI1. This is dangerous behavior.

Therefore, I'd like to propose to disable the whole card pass-through when a raw disk image is explicitly specified in zuluscsi.ini, as done when a image file is present.

Kurzweil K2000R compatibility

Read accesses cause the K2000R to reboot.
Kurzweil K2000R v3.87J
ZuluSCSI fw v1.02

Log attached, it fails on a Read10 command:
scsi_accel_dma_finishWrite() timeout

zululog.txt

Tried adjusting many of the settings (PhyMode, EnableSCSI2, MaxSyncSpeed) using zuluscsi.ini, with no success.
SCSI bus is terminated on both ends.
Borrowed my friend's SCSI2SD v5.0b this evening and it works perfectly with the K2000R.

Akai MPC 60 written audio data has artifacts

Description

Audio files written to SD Card have artifacts on Akai MPC 60 audio sampler.

Steps taken to reproduce

  • wrote a small file and 4 large audio files to SD card
  • power cycled the unit and loaded saved files back into memory from the SD card
  • auditioning the audio showed digital artifacts as in random clicks overlayed on original audio

Observations

  • The issue can be reproduced 100% of the time on SD Cards with capacity larger than 16GB. (tested with 64GB)
  • The issue is random when SD Cards are 16GB.
  • The unwanted audible clicks added are of digital nature.

Additional Information

Used default zuluscsi.ini with debug flag set.
zululog_write.txt
zululog_readback.txt

Platform

ZuluSCSI 1.1

Firmware

1.1.1

Zulu on Quadra 700 not recognized

When installed on my Quadra, none of the images is used to boot from. The same images work fine on SCSI2SD 5.0 and in Basilisk II.

Combinations tried:

  • Ini file
  • No ini file
  • Just one image (ID 0)

Advice would be appreciated!

Ini is the default from github. Log says:

[0ms] DIPSW3 is ON: Enabling SCSI termination
[0ms] DIPSW2 is ON: enabling debug messages
[0ms] DIPSW1 is ON: enabling Apple quirks by default
[2ms] Optional GreenPAK detected, loading firmware
[54ms] GreenPAK firmware successfully loaded
[177ms] SD card detected, FAT64 volume size: 60887 MB
[178ms] SD MID: 0x03, OID: 0x53 0x44
[178ms] SD Name: SP64G
[178ms] SD Date: 12/2010
[179ms] SD Serial: 0x6C2AD219
[180ms] Reading configuration from zuluscsi.ini
[180ms] Active configuration:
[185ms] -- SelectionDelay: 255
[190ms] -- EnableSCSI2 is on
[975ms] Finding HDD images in directory /:
[976ms] -- Opening /CD6.iso for id:6 lun:0
[976ms] ---- Image file is contiguous.
[976ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 331741 is not divisible.
[977ms] ---- Configuring as CD-ROM drive based on image name
[978ms] -- Opening /HD1.hda for id:1 lun:0
[979ms] ---- Image file is contiguous.
[979ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 2097152 is not divisible.
[980ms] -- Opening /HD2.hda for id:2 lun:0
[981ms] ---- Image file is contiguous.
[981ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 2097152 is not divisible.
[982ms] -- Opening /HD3.hda for id:3 lun:0
[983ms] ---- Image file is contiguous.
[984ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 2097152 is not divisible.
[985ms] -- Opening /HD4.hda for id:4 lun:0
[986ms] ---- Image file is contiguous.
[986ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 18874368 is not divisible.
[987ms] -- Opening /HD0.hda for id:0 lun:0
[988ms] ---- Image file is contiguous.
[989ms] ---- NOTE: Drive geometry is 63x255=16065 but image size of 2097152 is not divisible.
[1037ms] SCSI ID:0 BlockSize:512 Type:0 Quirks:2 ImageSize:1048576kB
[1038ms] SCSI ID:1 BlockSize:512 Type:0 Quirks:2 ImageSize:1048576kB
[1038ms] SCSI ID:2 BlockSize:512 Type:0 Quirks:2 ImageSize:1048576kB
[1039ms] SCSI ID:3 BlockSize:512 Type:0 Quirks:2 ImageSize:1048576kB
[1040ms] SCSI ID:4 BlockSize:512 Type:0 Quirks:2 ImageSize:9437184kB
[1040ms] SCSI ID:6 BlockSize:2048 Type:2 Quirks:2 ImageSize:663482kB
[1544ms] SCSI PHY operating mode: GREENPAK_DMA
[1544ms] Initialization complete!

Stability Issues RP2040

Greetings - i bought myself a ZuluSCSi RP2040.
Im using a 256 gb Sandisk card.
The device was bought to give my old P3 550 mhz new storage possibilities.

The PCI-SCSI adapter is a Tekram DC-390 with SCSI2 and sync 10MB/S transfer speed support.
I'm experiencing the same issues from this post:

#18

Im using a 50gb hdd image which is accepted by the controller and fdisk (DOS disk setup utility) can utilize all space.
Booting Windows ME only works every 2nd time. Like described in the other thread the led stays red. I have to power off the whole system and remove the PSU powercable. Booting then works.
Windows 2000 can't even fnish the setup process without a bluescreen concerning the filesystem.

zuluerr.txt comes up with this:

[152ms] SCSI ID:0 BlockSize:512 Type:0 Quirks:0 ImageSize:51199155kB
[253ms] Initialization complete!
[34988ms] SCSI ID 0 negotiated synchronous mode 10 MB/s (period 4x25 ns, offset 15 bytes)
[558070ms] SCSI ID 0 negotiated synchronous mode 10 MB/s (period 4x25 ns, offset 15 bytes)
[610271ms] --------------
[610271ms] WATCHDOG TIMEOUT, attempting bus reset
[610272ms] GPIO states: out 0x3BFCEEFF oe 0x178F3BFF in 0x3BFDECFF
[610273ms] STACK 0x2001A990: 0x00000001 0x00000001 0x2001F80C 0x2001D908
[610273ms] STACK 0x2001A9A0: 0x000003E8 0x2000CA43 0x2000D118 0x21000000
[610274ms] STACK 0x2001A9B0: 0x2001C908 0x20003DC9 0x00000200 0x00000008
[610275ms] STACK 0x2001A9C0: 0x2001BAE0 0x00010174 0x000000CD 0x00000000
[610276ms] STACK 0x2001A9D0: 0x00010174 0x00000000 0x00000000 0x2000166B
[610276ms] STACK 0x2001A9E0: 0x00000000 0x00000900 0x00000000 0x00000000
[610277ms] STACK 0x2001A9F0: 0x00000000 0x20005477 0x00000000 0x2000F0D9
[610278ms] STACK 0x2001AA00: 0x00000000 0x1002280F 0x00000000 0x1002285F
[625279ms] --------------
[625279ms] WATCHDOG TIMEOUT!
[625279ms] Platform: ZuluSCSI RP2040
[625280ms] FW Version: 23.03.30-release Mar 30 2023 16:53:18
[625280ms] GPIO states: out 0x3BFCEEFF oe 0x178F3BFF in 0x3BFDECFF
[625281ms] STACK 0x2001A990: 0x00000000 0x2001B958 0x2001DA4B 0x2001DB07
[625282ms] STACK 0x2001A9A0: 0x000003E8 0x2000CA43 0x2000CA42 0x21000000
[625282ms] STACK 0x2001A9B0: 0x2001C908 0x20003DD9 0x00000200 0x00000008
[625283ms] STACK 0x2001A9C0: 0x2001BAE0 0x00010174 0x000000CD 0x00000000
[625284ms] STACK 0x2001A9D0: 0x00010174 0x00000000 0x00000000 0x2000166B
[625285ms] STACK 0x2001A9E0: 0x00000000 0x00000900 0x00000000 0x00000000
[625285ms] STACK 0x2001A9F0: 0x00000000 0x20005477 0x00000000 0x2000F0D9
[625286ms] STACK 0x2001AA00: 0x00000000 0x1002280F 0x00000000 0x1002285F

Ive already tried disabling sync and used async mode - but no change.

Any suggestions? :)

Thanks :)

E-mu Emax sampler compatibility

Hello,

Just got my new AzulSCSI plugged in and am having difficulty getting it working. The Emax is a 1986-1989 sampler with a NCR 5380 controller, originally having a 20MB hard drive. It uses a proprietary drive format, but can be read/written by EMXP). It is known to work with SCSI2SD. I enabled verbose logging but don't get much of note, other than a note about image size not matching the drive geometry. It appears that the images are seen and that AzulSCSI starts up fine. One quick LED flash on power, then a slightly longer one. No errors, but the Emax never seems to read from the board (no disk access LED flashes). Attempting to select another SCSI ID doesn't produce any either. Thoughts on how to debug? Possible to enable read-level or command-level logging?

RP2040: watchdog timeouts in 10MByte/sec synchronous mode on PowerMac 9600

On a Power Macintosh 9600 with rp2040 ZuluSCSI connected to the faster "Internal" SCSI bus, the system will hard hang for about a minute when starting a benchmark in SCSI Director. After that hang, the benchmark will run, but then the system is unresponsive again afterwards. SCSI Director will then eventually throw up an error

scsi director error

I see watchdog timeouts and bus reset messages in the log file
zululog-hang.txt

Setup

  1. Power Macintosh 9600, ZuluSCSI rp2040 (1.1.1 firmware, no ini file) connected to Internal SCSI bus (the port closest to the edge of the logic board), clean install of Mac OS 8.6 installed in a 8GB HFS+ image on a 32GB SanDisk Extreme SD card
  2. Launch SCSI Director 4.0
  3. Select the ZuluSCSI device from the list
  4. Click Test button on left side of window
  5. Save the results file and click ok

Results
The system hard hangs for about a minute. If you let it sit, it'll actually run the benchmark but hangs again at the end, where the app itself throws up an error (see screenshot above)

Does not occur

  • If you instead install the ZuluSCSI rp2040 on the slower Internal/External bus (the SCSI port furthest from the edge of the logic board
  • If you instead use an original gd32 ZuluSCSI (also 1.1.1 FW)

Notes
We had reported stability issues in the past when using the gd32 ZuluSCSI off this same SCSI bus, which have now been resolved

.ini Drive Configuration Options and .ini Filename Issue

I am having trouble getting the ZuluSCSI to be recognized with an Atari Mega STE. There is a 1GB drive size limit and it appears that parity is not supported.

QUESTION 1:

I'm trying to clone this stock drive that came with the system. How can I specify custom drive parameters in the .ini file? Some of these parameters are documented in the sample zuluscsi.ini file, but not all.

SEAGATE ST157N
Cylinders 615
Heads 6
Sector/track 26
Bytes/Sector 512
Capacity form/unform 49/ 57 MB
Seek time / track 40.0/ 8.0 ms
Controller SCSI1 SINGLE-ENDED

What I got so far for .ini:
EnableSCSI2 = 0
Vendor = "SEAGATE"
Product = "ST157N"
#Version = "1.0"
#Serial = "0123456789ABCDEF"
Type = 0 # 0: Fixed, 1: Removable, 2: Optical, 3: Floppy, 4: Mag-optical, 5: Tape
#TypeModifier = 0 # Affects only INQUIRY response
SectorsPerTrack = 26
HeadsPerCylinder = 6 ??? IS THIS CORRECT ???
#RightAlignStrings = 0 # Right-align SCSI vendor / product strings, defaults on if Quirks = 1

QUESTION 2:

Using updated firmware 1.0.2 and the zuluscsi.ini is not loaded. I had to rename to azulscsi.ini. Is this a known issue and will future firmware work with azulscsi.ini?

FR: Ability to operate in standalone image mode.

I thought I had seen this mentioned as a potential feature for rascsi but I can't seem to find it atm nor in zulu/blue/macsd.

Is/could there be support for zulu scsi to come up in controller mode, interrogate connected ids and back-to-front dump them to the SD card? This would make it a bit easier to archive several drives and/or those w/out scsci controllers or systems that readily support scsi controllers. (e.g. no pci/isa slots)

ZuluSCSI doesn't support more than one LUN?

TL;DR: despite what the manual says, from the code ZuluSCSI apparently doesn't support more than one LUN right now:

src/ZuluSCSI_config.h:#define NUM_SCSILUN 1 // Maximum number of LUNs supported (Currently has to be 1)

What would it take to enhance the firmware to support this? Otherwise, the original report I'd filed is below:


I have a Zulu SCSI card installed in an Atari MegaSTE. Despite the restrictions imposed by the internal SCSI adapter (only a single device with ID 0 is supported, no parity support, and a 1GB limit), a single 1GB image partitioned into two works fine - with the HDDRIVER software, I can boot and read/write from it successfully.

To get around the SCSI device limit, the Atari will (apparently) recognize multiple LUNs. I therefore duplicated the original image file a further three times, and tweaked the filenames to hang four unit numbers off ID 0 - however, this doesn't work as the boot log indicates the SCSI ID is already in use:

[0ms] Platform: ZuluSCSI v1.1
[0ms] FW Version: 1.2.0-release Dec 21 2022 18:21:02
[0ms] DIPSW3 is ON: Enabling SCSI termination
[2ms] Optional GreenPAK detected, loading firmware
[53ms] GreenPAK firmware successfully loaded
[170ms] SD card detected, FAT32 volume size: 30436 MB
[170ms] SD MID: 0x03, OID: 0x53 0x44
[171ms] SD Name: SD32G
[171ms] SD Date: 9/2022
[171ms] SD Serial: 0xFD9D636D
[174ms] Config file zuluscsi.ini not found, using defaults
[174ms] Active configuration:
[176ms] -- SelectionDelay: 255
[178ms] -- EnableSCSI2 is on
[353ms] Finding HDD images in directory /:
[354ms] -- Opening /HD01_512.hda for id:0 lun:0
[552ms] ---- Image file is contiguous, SD card sectors 4225792 to 6322943
[552ms] ---- Read prefetch enabled: 8192 bytes
[553ms] -- Ignoring /HD03_512.hda, SCSI ID 0 is already in use!
[554ms] -- Ignoring /HD00_512.hda, SCSI ID 0 is already in use!
[555ms] -- Ignoring /HD02_512.hda, SCSI ID 0 is already in use!
[565ms] SCSI ID:0 BlockSize:512 Type:0 Quirks:0 ImageSize:1048576kB
[1070ms] SCSI PHY operating mode: GREENPAK_DMA
[1070ms] Initialization complete!

Have I misunderstood that a single SCSI can have multiple LUNs, or is this a bug?

Bootloader issue

I am unable to update by placing ZuluSCSI.bin (or AzulSCSI.bin) file on SD root.
My bootloader appears to be the issue.

I'm using ZuluSCSI v1.1

How do I flash a new BOOTLOADER, not firmware,
to solve this issue?

X68000 Pro SASI

It is not showing the SCSI Device ID i set the image file (x68000 v4) to (HD30_512.hda)

Does ZuluSCSI Support SaSI like the SCSI2SD ? which works great.

I have tried different settings in the ini file, to no avail.

The ZuluSCSI is attached to the internal 50pin connection, just like how i had my SCSI2SD.

I am unsure what else to try.

Attached is my ini file and the text file. i enabled the debug, but it does not show much.

(Had to rename the ini file for upload to git)
zululog.txt
zuluscsi_ini.txt
.

Consider removing remaining trivial BlueSCSI code

It seems there is only a few lines left from the "fork" of BlueSCSI around image name handling.

Consider removing this and rebasing the fork without BlueSCSI code in it so you can remove* BlueSCSI from your site, marketing, and the like. You could even consider a non-blue-color based name in future revisions.

Roland S550 issue

Power on, the LED stays on for 10 seconds, then turns off. It takes about 30sec for the S550 to do it's SCSI check; when it starts, the LED turns on again for 20sec. The S550 does start the SCSI check but has no response and stalls the S550 forever.

Log attached.

[1326ms] Platform: ZuluSCSI v1.0
[1326ms] FW Version: 1.0.2 May 17 2022 08:12:51
zululog_S550.txt

Akai S1000 / S3000 timing/packet issue

Seemingly on longer transmissions (maybe not) on a Akai S1000-type and S3000-type (not XL though) complete the process but the packets seem to be out of order. These are music samplers and longer transmissions are the sound data. I look at the corrupted sound data graphically and I can see that the corruption is order-related, not wrong-data-related.

Setting DEBUG = 1 fixes this issue for some reason. SCSI2Enabled, whether 0 or 1, does not have any effect.

Tried with both Mini and Maxi ZuluSCSI models, and both 1.07 and 1.08 firmwares. This has been the case way back to the first firmwares.

On a semi-related note, RaSCSI does the same thing; the author has not investigated yet after months knowing about it. This does not happen with any SCSI2SD model or firmware.

Stability issues on Power Mac 9600's internal (FAST SCSI-2) bus

I'm having some trouble getting a ZuluSCSI 1.1 working with my Power Mac 9600. Sometimes it'll work insofar as I can get the system to boot, but if I try to copy a file to the image loaded into the ZuluSCSI, it'll lock up midway through (and the ZuluSCSI's access LED will remain solid until it eventually times out, at least I'm assuming that's what is happening.)

It'll also just hang the system at the gray screen, before a happy Mac even has the chance to come up. Though it seems to be chance whether it makes it past this point.

This is on the 9600's internal bus, have tried both the 16GB image I wanted to use and a smaller 4GB image, instability has been observed in both (and both images were created with dd on an M1 MacBook Pro). Both images also work fine in a BlueSCSI/BlueSCSI F4. (I'm using 8.6, by thr way)

I've seen this behavior across two different ZuluSCSIs and two different 9600s (a Tsunami and also a Kansas model, this didn't change anything).

EDIT: Also confirmed (via a friend) that the Power Mac 7300 seems to exhibit the same problem.

The only time I've been able to get a ZuluSCSI fully working on the 9600 is by either using the second bus (the one shared with the external DB-25) or a third party SCSI card (in my case, I have an ATTO ExpressPCI Pro, and it works great there!) And this is both with and without SW1 toggled.

I've also tested it in a LC 475 and it works absolutely flawlessly there.

To make it easy to glance, here's what I've tried that didn't work:

  1. Updated to latest stable and nightly firmware
  2. Tried isolating ZuluSCSI/unplugging all other devices on same bus
  3. Tried setting/unsetting SW1
  4. Tried turning off termination
  5. Tried external berg power
  6. Tried in both Tsunami and Kansas boards
  7. Tried setting Apple-centric options in ZuluSCSI.ini (before realizing SW1 just does this already, whoops)
  8. Tried 2, 4, and 16GB images (that work fine on both an OG and F4 BlueSCSI)
  9. And for good measure, tried different SCSI cables and SD cards

The things that DID work:

  1. Using 2nd SCSI bus on 9600 (albeit with a speed penalty because slower bus)
  2. Using third party SCSI card (ATTO ExpressPCI Pro)
  3. Different machine entirely (LC 475)
  4. Disabling synchronous SCSI/setting it to 5 (both worked the same, allowing the ZuluSCSI to work albeit with a sizeable performance hit)

I've enclosed debug logs for every fault I observed (turning off the system and pulling the log after the freeze occurred) and one for a normal boot and file copy from the ATTO card for good measure. If there's anything more needed on my end, or if I missed something, let me know. Thanks!

EDIT 7/15/22: I did some further testing on the advice of someone else and rolled my ZuluSCSI back to 1.0.0 and I can confirm right off that it seems more stable on 1.0. I've been testing it on my PM6500 and it was having the very same stability problems there (even just using it as a storage disk, not boot), but after rolling it back to 1.0 it's been stable and hasn't hung the system yet. I plan to check the 9600 again later. I'll also gradually bring up the firmware and update after I've tried that.

Just to keep it in list form, the Power Macs so far affected by this seem to be:
9600 (and by extension, 9500 since they use similar boards?)
9600 v2 (Kansas/300MHz+ models)
7300
6500 (but works fine when rolled back to 1.0.0)
6100 (was talking about this in a Discord and someone with a 6100 mentioned having similar problems with their Zulu, throwing it in here for good measure)

Frozen when hitting 7.6 desktop
Normal, functional boot on ATTO card
Frozen at gray screen
Frozen in OS, light comes on solid, eventually times out.
A log of a bunch of attempted 9600 boots

Piezo speaker options on RP2040

I see there is an area on the PCB for an optional piezo speaker. Several questions - any suggestions on a specific part from Mouser or Digikey that could be used? And how would this be enabled in zuluscsi.ini? Can it be enabled for a particular drive (as opposed to all of them)?

AKAI S3000XL ZULUSCSI 1.1 CRASH AFTER GOOD OPERATION ON SAMPLER

Same results with firms 1.06 1.07 1.08 and 1.09

ZuluScsi 1.1 installed and connected on internal 50pin conector.
Added hda0 to hda4 (510Mb) and one CD5 (ISO image).
All hda blank files (510Mb) created on W10 recognized and formated on AKAI (14 partitions of 32MB).
No problems and no bad sectors when fomat fisnished.
The ISO image on CD5 can be see it on AKAI with the correct structure and can read (load) on the sampler memory. (ID5 default external drive on AKAI sampler, ID6 is the SAMPLER default host ID)
I can save the contents of memory sampler on hda partitions and work using the normal sampler operations.

THE PROBLEM:
After some time of normal sampler operation the ZuluScsi CRASH with intermitent "morse" led flashes resulting in a message from sampler "HARD DISK DRIVE NOT READY"
Only power up the sampler (no load and save operations just wait) and after some minutes the same issue of morse intermitent led flashes and "HARD DISK DRIVE NOT READY" until i power up again the sampler, normal operations, then after minutes the issue.

Please can someone show some light?
THANKS FOR YOUR ATTENTION!!!

zuluerr.txt
zululog.txt
zuluscsi.txt
zuluscsi.ini renamed to txt

seems that this conf works on SCSI2SD
https://github.com/adamjansch/SCSI2SD-S3000XL

Abysmal speeds around 112kB/s (RP2040, Amiga 500, A590 SCSI-controller, TF536 (030 50Mhz)

I'm using ZuluSCSI RP2040 and have tried fiddling with various settings. I currently believe I have a "correct" set-up. HD1_512_System.img, HDToolBox with 0xFFFFFF MaxTransfer and i only get around 112kB/s which seems awfully low if I compare with the performance other people seem to get out of it.

I have tried with HD1_4096.img too and created partitions and formatted. About the same result.

(Using a 128GB microSD-card in an adapter (which i suppose should not cause any issues))

My zuluscsi.ini

[SCSI]
Debug = 0
SelectionDelay = 255
PhyMode = 0
EnableSCSI2 = 1
PrefetchBytes = 8192

[SCSI1]
Vendor = "FOOBAR"
Version = "1.0"
Product = "System"
Type = 0

And my zululog.txt

[10ms] Platform: ZuluSCSI RP2040
[10ms] FW Version: 1.2.0-release Dec 21 2022 18:21:45
[11ms] DIP switch settings: debug log 0, termination 1
[11ms] SCSI termination is enabled
[12ms] Flash chip size: 2048 kB
[14ms] SCSI target/disk mode selected by DIP switch, acting as a SCSI disk
[21ms] SD card detected, FAT64 volume size: 121877 MB
[21ms] SD MID: 0x03, OID: 0x53 0x44
[21ms] SD Name: SD128
[22ms] SD Date: 7/2022
[22ms] SD Serial: 0xFA3BCEB4
[24ms] Reading configuration from zuluscsi.ini
[25ms] Active configuration:
[27ms] -- SelectionDelay: 255
[30ms] -- EnableSCSI2 is on
[358ms] Finding HDD images in directory /:
[358ms] -- Opening /HD3_4096_Data.img for id:3 lun:0
[359ms] ---- Image file is contiguous, SD card sectors 139529728 to 143724031
[360ms] ---- Read prefetch enabled: 8192 bytes
[361ms] -- Opening /HD1_512_System.img for id:1 lun:0
[362ms] ---- Image file is contiguous, SD card sectors 134286848 to 135335423
[363ms] ---- Read prefetch enabled: 8192 bytes
[363ms] -- Opening /HD2_4096_Software.img for id:2 lun:0
[365ms] ---- Image file is contiguous, SD card sectors 135335424 to 139529727
[365ms] ---- Read prefetch enabled: 8192 bytes
[378ms] -- Platform supports ROM drive up to 1692 kB
[379ms] ---- ROM drive image not detected
[379ms] SCSI ID:1 BlockSize:512 Type:0 Quirks:0 ImageSize:524288kB
[380ms] SCSI ID:2 BlockSize:4096 Type:0 Quirks:0 ImageSize:2097152kB
[381ms] SCSI ID:3 BlockSize:4096 Type:0 Quirks:0 ImageSize:2097152kB
[881ms] Initialization complete!
[8111ms] WARNING: Host used command 0x1A which is affected by drive geometry. Current settings are 63 sectors x 255 heads = 16065 but image size of 1048576 sectors is not divisible. This can cause error messages in diagnostics tools.
[8196ms] WARNING: Host used command 0x1A which is affected by drive geometry. Current settings are 63 sectors x 255 heads = 16065 but image size of 524288 sectors is not divisible. This can cause error messages in diagnostics tools.
[8358ms] WARNING: Host used command 0x1A which is affected by drive geometry. Current settings are 63 sectors x 255 heads = 16065 but image size of 524288 sectors is not divisible. This can cause error messages in diagnostics tools.

What am I missing? I would expect a 68030@50MHz 64MB FastRAM would be good enough for way faster speeds.

"Failed to load image" when file is marked read-only

When image file is marked read-only, ZuluSCSI will refuse to open it and report "Failed to load image" in log.

At least there should be a better error message for this.

Ideally, read-only images should be opened in read-only mode and shown as read-only drive to the SCSI host.

"Illegal instruction" on Mac Plus with Apple's SCSI drivers

When booting a Mac Plus with a drive image that uses Apple's SCSI drivers (such as https://www.savagetaylor.com/wp-content/uploads/68k_Macintosh/Bootdisks/608_2GB_volume.zip), the Mac boots but then any action (it can be reliably replicated by choosing "About the Finder..." results in a "bomb" alert with "Illegal Instruction".
The problem doesn't happen with SCSI2SD v5.5, from which the ZuluSCSI firmware is derived.
The problem can be avoided by installing LaCie SCSI drivers and disabling "blind transfers", but it would be nice to offer compatibility with Apple's drivers.
Replicated with ZuluSCSI mini with firmware 1.0.2, 1.0.3, 1.0.4, 1.0.5.

Boot up from ZuluSCSI

How can I add a system OS start disk file to ZuluSCSI so my keyboard (W30) boots from it?

I also intend to use my ZuluSCSI (using a different SD card of course) with my S-760, so need to do the same thing there.

Firmware Name

What's the best way to update the bootloader so it can recognise new firmware based on the zulu name and not the old name ?

I have updated to the latest 1.0.2 firmware, but it still looks for the old name for the firmware, so i assume there is a boot loader firmware to update.

Attribution Missing For BlueSCSI V2 Hardware Compatibility

Return value of SCSI-1 Inquiry Data

Please set the return value of Inquiry when EnableSCSI2=0 in zuluscsi.ini setting to 1 in the 3rd byte of Inquiry Data. (Now 2 is the return value.)

The HDD used in the SCSI-1 HA (PC-9801-55) sold long ago in the PCI SCSI-2 HA (Adaptec AHA-2940UW/J) of the Japanese retro PC NEC PC-9821 It is used to determine whether it is connected. So I want you to reproduce it.

Victor 9000 / Xebec 1410 support

Hi there,
I tried to use the ZuluSCSI with a Victor 9000, which is expecting a Xebec 1410 connected to an MFM drive. It's talking a vendor-specific extensions to the SASI protocol. It's all standard SASI, except the Victor issues a series of error check commands that are Xebec-specific as part of initializing the drive.

In the configuration I took the defaults and adjusted:

Quirks = 4   # 0: Standard, 1: Apple, 2: OMTI, 4: Xebec, 8: VMS
EnableSCSI2 = 0 # Enable faster speeds of SCSI2

zululog.txt
Attached above are the logs. I know the non-standard commands that are being sent match this from the xebec documentation:
xebec commands

It looks to me like the E0 command isn't being responded to correctly. If I adjust the scsi.c file to support that and the other related checks, would you welcome a PR to enable this to work?

Thanks,
Paul

ZuluSCSI Emu III XS/XP Samplers and CD ISO's

I am using a Zuluscsi Mini RP2040 with an Emu III XP Sampler, and a Kingston 8GB Class HC1 (SDC10/8GB). I experience the same issue with Sandisk Class4 cards - 2gb, 4gb, 8gb. I have been trying to get it to load a cd.iso files - but they seem to break the 'functioning' of Zuluscsi - I am using this iso image: https://archive.org/details/eiiix-e-mu-systems-volume-3-orchestral I download it to the sd card and rename it to HD1.hda. I copy this file and rename it HD2.img. I then boot the sampler and it sees both drives, both drives get mounted. I load a bank from the image into the sampler. All fine. Then I copy the file again on the sd card and rename it CD3.iso. So there are three identical files on the sd card (all the same iso file from above) just with different names - HD1.hda, HD2.img, CD3.iso. Once Cd3.iso is on the card, none of the drives work. I would not expect a 'faulty' cd rom iso file to corrupt the loading of the other two, previously working files. If I delete cd3.iso then it all works fine again.

What I have also encountered is that in the case above, using class4 cards, and cd.iso, when writing to the zululog & zuluerrorlog, both files remain 0k, (writing freeze?) , the card gets corrupted - and if you have subfolders, they all get lost. I would not expect this to happen on a SD card, even class4 - all that is happening is a log file is being written to. I can try to supply files for this scenario if you want to have a look

I am including 2 log files in case that is of use
First when it works fine, HD1.hda&HD2.img, and load a bank so you can see it working fine
Second adding the CD3.img and then it 'breaks' the other two images

zuluscsi.ini.txt
zululog-HD1hda-HD2img.txt
zululog-HD1hda-HD2img-CD3.iso.txt
zuluerr-HD1hda-HD2img-CD3iso.txt

RP2040 showing similar issues when the GD32 v1.1 board was not working with samplers

The Kurzeweil K2000R is hit and miss with the ZuluSCSI RP2040 when formatting the drive. When it does not work properly it stalls out exactly and the same write10 offset (32) as when the ZuluSCSI v1.1 failed. There is also an

[20546ms] WARNING: Host attempted read at sector 2097151+256, exceeding image size 514080 sectors (512B/sector)

when it fails to format properly in the log file:
zululog-newboard-failed-kurzweil-example.txt

As for the MPC60 the log file does not show any SCSI transactions with debug mode on:
zululog-new-board-failed-mpc60.txt

But unlike when ZuluSCSI v1.1 didn't work, the RP2040 doesn't hang and boots to the main screen.

I'll add logic analyzer data for the MPC60 once I get it up and running again.

Operation comparison at startup between v1.1 and RP2040

This is the debug log when the same SD card is started with 1.1, RP2040 and PC-9821 respectively. RP2040 is not recognized by PC-9821.

After negotiating at 10MB/s, the RP2040 somehow resets the bus.

[0ms] Platform: ZuluSCSI v1.1
[0ms] FW Version: 1.2.0-release Dec 21 2022 18:21:02
[0ms] DIPSW3 is ON: Enabling SCSI termination
[1ms] DIPSW2 is ON: enabling debug messages
[2ms] Optional GreenPAK detected, loading firmware
[54ms] GreenPAK firmware successfully loaded
[170ms] SD card detected, FAT64 volume size: 241096 MB
[170ms] SD MID: 0x74, OID: 0x4A 0x60
[170ms] SD Name: SDU1 
[171ms] SD Date: 4/2021
[171ms] SD Serial: ----------
[173ms] Reading configuration from zuluscsi.ini
[173ms] Active configuration:
[177ms] -- SelectionDelay: 255
[181ms] -- EnableSCSI2 is on
[1164ms] Finding HDD images in directory /:
[1165ms] -- Opening /HD00_imaged.hda for id:0 lun:0
[1166ms] ---- Image file is contiguous, SD card sectors 134656 to 8523264
[1166ms] ---- Read prefetch enabled: 8192 bytes
[1221ms] SCSI ID:0 BlockSize:512 Type:0 Quirks:0 ImageSize:4194304kB
[1723ms] SCSI PHY operating mode: GREENPAK_DMA
[1723ms] Initialization complete!
[25230ms] DBG BUS RESET
[27583ms] DBG BUS RESET
[32114ms] DBG -- BUS_BUSY
[32114ms] DBG ---- SELECTION: 0
[32115ms] DBG ---- MESSAGE_OUT
[32116ms] DBG ------ OUT: 0xC0 
[32116ms] DBG ------ OUT: 0x01 
[32117ms] DBG ------ OUT: 0x02 
[32117ms] DBG ------ OUT: 0x03 
[32117ms] DBG ------ OUT: 0x01 
[32118ms] DBG ---- MESSAGE_IN
[32118ms] DBG ------ IN: 0x01 0x02 0x03 0x00 
[32121ms] DBG ---- MESSAGE_OUT
[32123ms] DBG ------ OUT: 0x01 
[32124ms] DBG ------ OUT: 0x03 
[32124ms] DBG ------ OUT: 0x01 
[32124ms] DBG ------ OUT: 0x0C 
[32125ms] DBG ------ OUT: 0x0F 
[32125ms] SCSI ID 0 negotiated synchronous mode 10 MB/s (period 4x25 ns, offset 15 bytes)
[32126ms] DBG ---- MESSAGE_IN
[32126ms] DBG ------ IN: 0x01 0x03 0x01 0x19 0x0F 
[32129ms] DBG ---- COMMAND: Inquiry
[32129ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x08 0x00 
[32129ms] DBG ---- DATA_IN, syncOffset 15 syncPeriod 25
[32130ms] DBG ---- Total IN: 8 OUT: 0 CHECKSUM: 4124
[32130ms] DBG ---- STATUS: 0 GOOD
[32146ms] DBG ---- MESSAGE_IN
[32147ms] DBG ------ IN: 0x00 
[32147ms] DBG -- BUS_FREE
[10ms] Platform: ZuluSCSI RP2040
[10ms] FW Version: 1.2.0-release Dec 21 2022 18:21:45
[11ms] DIP switch settings: debug log 1, termination 1
[11ms] SCSI termination is enabled
[12ms] Flash chip size: 2048 kB
[14ms] SCSI target/disk mode selected by DIP switch, acting as a SCSI disk
[23ms] SD card detected, FAT64 volume size: 241096 MB
[24ms] SD MID: 0x74, OID: 0x4A 0x60
[24ms] SD Name: SDU1 
[24ms] SD Date: 4/2021
[24ms] SD Serial: ----------
[27ms] Reading configuration from zuluscsi.ini
[27ms] Active configuration:
[32ms] -- SelectionDelay: 255
[37ms] -- EnableSCSI2 is on
[1209ms] Finding HDD images in directory /:
[1211ms] -- Opening /HD00_imaged.hda for id:0 lun:0
[1212ms] ---- Image file is contiguous, SD card sectors 134656 to 8523264
[1213ms] ---- Read prefetch enabled: 8192 bytes
[1279ms] -- Platform supports ROM drive up to 1692 kB
[1280ms] ---- ROM drive image not detected
[1280ms] SCSI ID:0 BlockSize:512 Type:0 Quirks:0 ImageSize:4194304kB
[1781ms] Initialization complete!
[24907ms] DBG BUS RESET
[27250ms] DBG BUS RESET
[31765ms] DBG ---- SELECTION: 0
[31766ms] DBG ---- MESSAGE_OUT
[31767ms] DBG ------ OUT: 0xC0 
[31767ms] DBG ------ OUT: 0x01 
[31768ms] DBG ------ OUT: 0x02 
[31768ms] DBG ------ OUT: 0x03 
[31768ms] DBG ------ OUT: 0x01 
[31769ms] DBG ---- MESSAGE_IN
[31769ms] DBG ------ IN: 0x01 0x02 0x03 0x00 
[31772ms] DBG ---- MESSAGE_OUT
[31774ms] DBG ------ OUT: 0x01 
[31775ms] DBG ------ OUT: 0x03 
[31775ms] DBG ------ OUT: 0x01 
[31775ms] DBG ------ OUT: 0x0C 
[31776ms] DBG ------ OUT: 0x0F 
[31776ms] SCSI ID 0 negotiated synchronous mode 10 MB/s (period 4x25 ns, offset 15 bytes)
[31777ms] DBG ---- MESSAGE_IN
[31777ms] DBG ------ IN: 0x01 0x03 0x01 0x19 0x0F 
[31785ms] DBG BUS RESET
[31786ms] DBG ---- COMMAND: Unknown
[31786ms] DBG ------ OUT: 0x80 0x00 0x00 0x00 0x00 0x00 
[31787ms] DBG -- BUS_FREE

Stock Drive Utility sees volume as unsupported device if both SW1 is on AND drive ID info is present in ini

To reproduce:
0) Power Macintosh 9600/350, ZuluSCSI 1.1 with 1.0.6-rc2 FW connected to Int SCSI bus, at end of chain along with CD and Zip drives, Term and SW1 switches set on.

  1. Format SD card as ExFAT / MBR and copy a blank disk image onto it (I used a blank 8192MB image created with https://bluescsi.onegeekarmy.eu/diskjockey/)
  2. Copy a zuluscsi.ini file to the SD card, comment all options out except for the vendor, product, version, serial lines
  3. Set SW1 on ZuluSCSI to on
  4. Boot 9600 off Mac OS 8.6 CD (you can use this copy of 8.6 here https://mega.nz/folder/8hA3AQCJ#pWUq92L70yDXlogy9lk5Dg/folder/ll4HCQQB).
  5. Run Drive Setup (1.7.2) off the 8.6 CD.
  6. Select your volume to initialize.

Results:
Drive Setup reports the volume as an unsupported drive and will not allow you to initialize it.

Does not occur if you have only SW1 on or the 4 lines in the ini, not both. My understanding is the ini should override the dip switches.

missing "tracks per zone" (heads) value in mode sense page 03h (format params)

For mode sense page 03h, at

uint16_t sectorsPerTrack = scsiDev.target->cfg->sectorsPerTrack;
sectors per track and data bytes per sector are written, but bytes 2 and 3 are left as zero. These bytes are defined to hold "TRACKS PER ZONE" (i.e. heads?). I believe this should be writing scsiDev.target->cfg->headsPerCylinder in there.

(Yes page code 03h is obsolete; I'm using an OS from 1992 (Domain/OS) and it seems to want these values! :) )

ZuluSCSI RP4020 Issue with Akai MPC 60 Mk2 Sampler

Hi everyone,

I am desperate to get my ZuluSCSI Board working in my Akai MPC 60 II Sampler/Drummachine. It is connected to a SCSI-Breakoutoard by a vendor called "Jazzcat" which uses an AMD AM5380 SCSI interface controller. I have a SanDisk Ultra 32gb Class 10 SD-Card with a 56mb "HD5.ima" image file in the root directory. When powering the unit without an SD-card in it will search for an scsi hard-disk on start-up, then time out and work as usual. If I put the SD-card in it will freeze while "...searching for a SCSI hard disk".

What I've tried:

  • powering the board via usb instead of the internal power supply (does not power via scsi-port as no termination power is supplied by the controller board)
  • tried a different SD-card
  • tried multiple different .iso /.hda files.
  • triple checked all connections
  • tried all kinds of settings in the zuluscsi.ini

Unfortunately I don't have an alternative scsi drive to try.

This is the output of the zululog.txt with Debug-mode switched on:

[10ms] Platform: ZuluSCSI RP2040
[10ms] FW Version: 23.03.30-release Mar 30 2023 16:53:18
[11ms] DIP switch settings: debug log 1, termination 1
[11ms] SCSI termination is enabled
[12ms] Flash chip size: 4096 kB
[14ms] SCSI target/disk mode selected by DIP switch, acting as a SCSI disk
[20ms] SD card detected, FAT32 volume size: 29897 MB
[20ms] SD MID: 0x6F, OID: 0x03 0x03
[21ms] SD Name: SDABC
[21ms] SD Date: 12/2022
[21ms] SD Serial: 0xAA000080
[22ms] Config file zuluscsi.ini not found, using defaults
[22ms] Active configuration:
[23ms] -- SelectionDelay: 255
[23ms] -- EnableSCSI2 is on
[24ms] -- EnableParity is on
[33ms] Finding HDD images in directory /:
[33ms] -- Opening /HD5_512.IMA for id:5 lun:0
[52ms] DBG ---- Image file is contiguous, SD card sectors 41088 to 153087
[52ms] ---- Read prefetch enabled: 8192 bytes
[53ms] -- Platform supports ROM drive up to 3740 kB
[54ms] ---- ROM drive image not detected
[54ms] SCSI ID:5 BlockSize:512 Type:0 Quirks:0 ImageSize:56000kB
[155ms] Initialization complete!
[78849ms] DBG BUS RESET
[79773ms] DBG ---- SELECTION: 5
[79775ms] DBG ---- COMMAND: RequestSense
[79776ms] DBG ------ OUT: 0x03 0x00 0x00 0x00 0x00 0x00
[79776ms] DBG ---- DATA_IN
[79777ms] DBG ---- Total IN: 4 OUT: 0 CHECKSUM: 30
[79778ms] DBG ---- STATUS: 0 GOOD

The long time between SD initialization and the first bus reset is caused because I powered on the zuluscsi via usb first and later the MPC. However I get the same output when powering via the internal power-adaptor.

Any help is greatly appreciated. Thanks in advance!

Amiga large drive compatibility issues

Tried to install a ZuluSCSI to my Amiga(s).
Small images work fine, 1GB and 4GB do not present any problems. They're using the default 512 block size.
Trying to use an 8GB image, it appears to work (I can partition the "drive" in HDToolbox and then format it) but if I write almost any amount of data to it, even just 100MB or so, when I reboot the drive has lost its information. It feels like the RDB is being corrupted once data is written so far into the disk, the drive name has been changed to something like DH1\o\o\o\o\o" and it's unreadable.

I've tried changing block size, and using the appropriate filename such as HD20_4096.img

  • Tried on two different ZuluSCSI devices, both with latest firmware (although issue existed on original firmware they shipped with)
  • Tried on A4000 using CyberStorm SCSI controller, and A3000 using built-in scsi.device
  • Both are running kickstart 3.2 which supports drives larger than 4GB
  • The 3000 was running a SCSI2SD v5.2 and a single 16GB drive OK so should be no issues with the OS

Log file:
zululog.txt

Feature: Implement supply voltage monitoring

Sometimes problems have been caused by insufficient power supply through SCSI cable (e.g. #172).

The internal ADC in the microcontroller could be used to detect these situations.
The chips also have brown-out detector, which activates when the voltage falls very low - threshold is probably too low to be useful for this purpose, as SCSI communication is affected earlier than the microcontroller operation.

On RP2040, the temperature sensor outputs a voltage of 0.7 V, from which the VDD voltage level can be calculated.
Same for GD32.

Issue Flashing Firmware v1.0.9 to ZuluSCSI RP2040

Platform: ZuluSCSI RP2040
FW Version: 1.0.9-release Sep 30 2022 18:19:23

Earlier tonight, I attempted to upgrade my ZuluSCSI RP2040 from firmware 1.0.8 to 1.0.9 using the methods described. I renamed the v1.0.9 RP2040-specific bin file to ZuluSCSI.bin, inserted the SD card with such file at the root directory, and booted the device.

The light on the device flashed numerous times (more than the five described as a failure), and I am now unable to boot from the device.

The following zuluerr.txt was generated:

[10ms] DIP switch settings: debug log 0, termination 1
[10ms] SCSI termination is enabled
[11ms] Bootloader version: Sep 30 2022 18:19:21 ZuluSCSI RP2040
[267ms] Found firmware file: ZuluSCSI.bin
[268ms] DBG Writing flash at offset 0x00020000 data 0x00 0xC0 0x03 0x20 

++ MbedOS Fault Handler ++

FaultType: HardFault

Context:
R0   : BC0C47B8
R1   : 000206FC
R2   : 00000002
R3   : BC0C47B8
R4   : 000206FC
R5   : 1FFEC3DC
R6   : 00021000
R7   : D0000000
R8   : 00000000
R9   : 00000000
R10  : 00000000
R11  : 00000000
R12  : 4001801C
SP   : 2000A0F8
LR   : 100046FB
PC   : D0000000
xPSR : 80000000
PSP  : 2000A0D8
MSP  : 2003BFC0
CPUID: 410CC601
Mode : Thread
Priv : Privileged
Stack: PSP

-- MbedOS Fault Handler --

[316ms] --------------
[316ms] CRASH!
[317ms] Platform: ZuluSCSI RP2040
[317ms] FW Version: 1.0.9-release Sep 30 2022 18:19:23
[317ms] error_status: 0x80FF013D
[318ms] error_address: 0xD0000000
[318ms] error_value: 0x2000D680
[318ms] STACK 0x2000A0F8:    0x00020000 0x2000C3DC 0x2000C3DC 0x00000004
[319ms] STACK 0x2000A108:    0x2000C3DC 0x00000000 0x2000A180 0x10000929
[320ms] STACK 0x2000A118:    0x2000A180 0x00000024 0x00000000 0x2000A738
[321ms] STACK 0x2000A128:    0x20011991 0x00000000 0x00000000 0x100009B5
[321ms] STACK 0x2000A138:    0x00000000 0x756C755A 0x49534353 0x6E69622E
[322ms] STACK 0x2000A148:    0x00000000 0x1000DD2B 0x10008DA4 0x61000000
[323ms] STACK 0x2000A158:    0x2000BBF4 0x1000DD2B 0x2000BB34 0x2000B924
[324ms] STACK 0x2000A168:    0x2000B148 0x1000D385 0x00000000 0x00000000

At this point, I cannot seem to access the device via Mac/Windows and cannot boot the device on an Adaptec AHA-2842W, as I had done before.

I attempted another flash, this time to the nightly build and received the same exact error.

Any thoughts would be appreciated greatly.

EDIT: As of 11:59 P.M., I have managed to boot the device by swapping from an exFAT-formatted SD card to a new FAT32 formatted one. I am not sure if this is perhaps related, but the device seems just fine now.

Physical eject button for changing between CD-ROM iso images

I suppose this is more of a suggestion than an issue, but is it possible in a future revision to have a hardware pushbutton for the purpose of switching cd-rom images, and have that button tied to a specific SCSI ID in the .ini file? I know ZuluSCSI and RP2040 support multiple images, but not all OSes provide an easy way to eject a drive, since a physical drive would obviously have an eject button on it typically.

256 sector support is broken

Hi there, please, help, 256 sector byte emulation crashes ZuluSCSI on the latest 1.1.1 firmware
The host and images don't matter. Here is the dump with debug info below. I haven't tried other FW versions.

`[10ms] DIP switch settings: debug log 1, termination 1
[10ms] SCSI termination is enabled
[12ms] SCSI target mode selected by DIP switch, acting as an SCSI disk
[21ms] SD card detected, FAT32 volume size: 30436 MB
[21ms] SD MID: 0x03, OID: 0x53 0x44
[22ms] SD Name: SD32G
[22ms] SD Date: 9/2016
[22ms] SD Serial: 0x3B589DFD
[25ms] Reading configuration from zuluscsi.ini
[25ms] Active configuration:
[30ms] -- SelectionDelay: 0
[36ms] -- EnableSCSI2 is on
[1008ms] Finding HDD images in directory /:
[1009ms] -- Opening /HD0_256.img for id:0 lun:0
[1021ms] ---- NOTE: File /HD0_256.img has FAT allocated size of 227200 sectors and file size of 227180 sectors
[1023ms] ---- Due to issue #80 in ZuluSCSI version 1.0.8 and 1.0.9 the allocated size was mistakenly reported to SCSI controller.
[1024ms] ---- If the drive was formatted using those versions, you may have problems accessing it with newer firmware.
[1025ms] ---- The old behavior can be restored with setting [SCSI] UseFATAllocSize = 1 in zuluscsi.ini
[1031ms] ---- Image file is contiguous, SD card sectors 3630080 to 3857259
[1032ms] ---- Read prefetch enabled: 8192 bytes
[1081ms] SCSI ID:0 BlockSize:256 Type:0 Quirks:0 ImageSize:113590kB
[1586ms] Initialization complete!
[1586ms] Platform: ZuluSCSI RP2040
[1586ms] FW Version: 1.1.1-release Oct 25 2022 12:54:05
[6659ms] DBG BUS RESET
[10119ms] DBG ---- SELECTION: 0
[10120ms] DBG ---- MESSAGE_OUT
[10120ms] DBG ------ OUT: 0xC0
[10120ms] DBG ---- COMMAND: Inquiry
[10121ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10121ms] DBG ---- DATA_IN
[10122ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 33334
[10122ms] DBG ---- STATUS: 0 GOOD
[10130ms] DBG ---- MESSAGE_IN
[10130ms] DBG ------ IN: 0x00
[10130ms] DBG -- BUS_FREE
[10131ms] DBG ---- SELECTION: 0
[10131ms] DBG ---- MESSAGE_OUT
[10131ms] DBG ------ OUT: 0xC0
[10132ms] DBG ---- COMMAND: Inquiry
[10132ms] DBG ------ OUT: 0x12 0x01 0x00 0x00 0xFF 0x00
[10133ms] DBG ---- DATA_IN
[10134ms] DBG ---- Total IN: 255 OUT: 0 CHECKSUM: 50561
[10134ms] DBG ---- STATUS: 0 GOOD
[10138ms] DBG ---- MESSAGE_IN
[10138ms] DBG ------ IN: 0x00
[10139ms] DBG -- BUS_FREE
[10139ms] DBG ---- SELECTION: 0
[10139ms] DBG ---- MESSAGE_OUT
[10140ms] DBG ------ OUT: 0xC0
[10140ms] DBG ---- COMMAND: Inquiry
[10140ms] DBG ------ OUT: 0x12 0x01 0x80 0x00 0xFF 0x00
[10141ms] DBG ---- DATA_IN
[10142ms] DBG ---- Total IN: 255 OUT: 0 CHECKSUM: 52926
[10142ms] DBG ---- STATUS: 0 GOOD
[10147ms] DBG ---- MESSAGE_IN
[10147ms] DBG ------ IN: 0x00
[10148ms] DBG -- BUS_FREE
[10148ms] DBG ---- SELECTION: 0
[10148ms] DBG ---- MESSAGE_OUT
[10149ms] DBG ------ OUT: 0xC1
[10149ms] DBG ---- COMMAND: Inquiry
[10150ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10150ms] DBG ---- DATA_IN
[10151ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10151ms] DBG ---- STATUS: 0 GOOD
[10156ms] DBG ---- MESSAGE_IN
[10156ms] DBG ------ IN: 0x00
[10156ms] DBG -- BUS_FREE
[10156ms] DBG ---- SELECTION: 0
[10157ms] DBG ---- MESSAGE_OUT
[10157ms] DBG ------ OUT: 0xC2
[10158ms] DBG ---- COMMAND: Inquiry
[10158ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10159ms] DBG ---- DATA_IN
[10159ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10160ms] DBG ---- STATUS: 0 GOOD
[10164ms] DBG ---- MESSAGE_IN
[10164ms] DBG ------ IN: 0x00
[10164ms] DBG -- BUS_FREE
[10165ms] DBG ---- SELECTION: 0
[10165ms] DBG ---- MESSAGE_OUT
[10166ms] DBG ------ OUT: 0xC3
[10166ms] DBG ---- COMMAND: Inquiry
[10166ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10167ms] DBG ---- DATA_IN
[10167ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10168ms] DBG ---- STATUS: 0 GOOD
[10176ms] DBG ---- MESSAGE_IN
[10176ms] DBG ------ IN: 0x00
[10177ms] DBG -- BUS_FREE
[10177ms] DBG ---- SELECTION: 0
[10177ms] DBG ---- MESSAGE_OUT
[10178ms] DBG ------ OUT: 0xC4
[10178ms] DBG ---- COMMAND: Inquiry
[10179ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10179ms] DBG ---- DATA_IN
[10180ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10180ms] DBG ---- STATUS: 0 GOOD
[10184ms] DBG ---- MESSAGE_IN
[10184ms] DBG ------ IN: 0x00
[10184ms] DBG -- BUS_FREE
[10185ms] DBG ---- SELECTION: 0
[10185ms] DBG ---- MESSAGE_OUT
[10185ms] DBG ------ OUT: 0xC5
[10186ms] DBG ---- COMMAND: Inquiry
[10186ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10187ms] DBG ---- DATA_IN
[10187ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10188ms] DBG ---- STATUS: 0 GOOD
[10192ms] DBG ---- MESSAGE_IN
[10192ms] DBG ------ IN: 0x00
[10193ms] DBG -- BUS_FREE
[10193ms] DBG ---- SELECTION: 0
[10193ms] DBG ---- MESSAGE_OUT
[10194ms] DBG ------ OUT: 0xC6
[10194ms] DBG ---- COMMAND: Inquiry
[10194ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10195ms] DBG ---- DATA_IN
[10196ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10196ms] DBG ---- STATUS: 0 GOOD
[10200ms] DBG ---- MESSAGE_IN
[10201ms] DBG ------ IN: 0x00
[10201ms] DBG -- BUS_FREE
[10201ms] DBG ---- SELECTION: 0
[10202ms] DBG ---- MESSAGE_OUT
[10202ms] DBG ------ OUT: 0xC7
[10202ms] DBG ---- COMMAND: Inquiry
[10203ms] DBG ------ OUT: 0x12 0x00 0x00 0x00 0x24 0x00
[10203ms] DBG ---- DATA_IN
[10204ms] DBG ---- Total IN: 36 OUT: 0 CHECKSUM: 25158
[10204ms] DBG ---- STATUS: 0 GOOD
[10209ms] DBG ---- MESSAGE_IN
[10209ms] DBG ------ IN: 0x00
[10209ms] DBG -- BUS_FREE
[10997ms] DBG -- BUS_BUSY
[10998ms] DBG -- BUS_FREE
[11790ms] DBG -- BUS_BUSY
[11790ms] DBG ---- SELECTION: 0
[11790ms] DBG ---- MESSAGE_OUT
[11790ms] DBG ------ OUT: 0xC0
[11791ms] DBG ---- COMMAND: ReadCapacity
[11791ms] DBG ------ OUT: 0x25 0x00 0x00 0x00 0x00 0x00
[11792ms] DBG ------ OUT: 0x00 0x00 0x00 0x00
[11792ms] DBG ---- DATA_IN
[11793ms] DBG ---- Total IN: 8 OUT: 0 CHECKSUM: 30741
[11793ms] DBG ---- STATUS: 0 GOOD
[11801ms] DBG ---- MESSAGE_IN
[11801ms] DBG ------ IN: 0x00
[11801ms] DBG -- BUS_FREE
[11801ms] DBG ---- SELECTION: 0
[11802ms] DBG ---- MESSAGE_OUT
[11802ms] DBG ------ OUT: 0xC0
[11802ms] DBG ------ OUT: 0x01
[11803ms] DBG ------ OUT: 0x03
[11803ms] DBG ------ OUT: 0x01
[11803ms] DBG ------ OUT: 0x19
[11804ms] DBG ------ OUT: 0x08
[11804ms] SCSI ID 0 negotiated synchronous mode 10 MB/s (period 4x25 ns, offset 8 bytes)
[11805ms] DBG ---- MESSAGE_IN
[11805ms] DBG ------ IN: 0x01 0x03 0x01 0x19 0x08
[11806ms] DBG ---- COMMAND: Read10
[11806ms] DBG ------ OUT: 0x28 0x00 0x00 0x00 0x00 0x00
[11807ms] DBG ------ OUT: 0x00 0x00 0x02 0x00
[11807ms] DBG ------ Read 2x256 starting at 0
[11808ms] DBG ---- DATA_IN, syncOffset 8 syncPeriod 25
assertion "(uint64_t)sectorcount * SD_SECTOR_SIZE == count" failed: file "src/ZuluSCSI_disk.cpp", line 189, function: int ImageBackingStore::read(void*, size_t)

++ MbedOS Fault Handler ++

FaultType: HardFault

Context:
R0 : 000000A1
R1 : 100352A8
R2 : 2001839C
R3 : 10028659
R4 : 1003022A
R5 : 000000BD
R6 : 00000000
R7 : 00000000
R8 : 00000000
R9 : 00000000
R10 : 00000000
R11 : 00000000
R12 : 000000A0
SP : 200183A8
LR : 10029839
PC : 10028658
xPSR : 21000000
PSP : 20018388
MSP : 2003BFC0
CPUID: 410CC601
Mode : Thread
Priv : Privileged
Stack: PSP

-- MbedOS Fault Handler --

[11817ms] --------------
[11817ms] CRASH!
[11817ms] Platform: ZuluSCSI RP2040
[11817ms] FW Version: 1.1.1-release Oct 25 2022 12:54:05
[11818ms] error_status: 0x80FF013D
[11818ms] error_address: 0x10028658
[11819ms] error_value: 0x2001CDD8
[11819ms] STACK 0x200183A8: 0x1003529B 0x10030270 0x10030270 0x200198C4
[11820ms] STACK 0x200183B8: 0x00000000 0x20001C29 0x00000000 0x2001A228
[11820ms] STACK 0x200183C8: 0x00002004 0x2001A214 0x00000000 0x20003369
[11821ms] STACK 0x200183D8: 0x00000100 0x00000020 0x200198C4 0x00010174
[11822ms] STACK 0x200183E8: 0x0000039D 0x00000000 0x00010174 0x20021110
[11823ms] STACK 0x200183F8: 0x00000000 0x200014ED 0x00000001 0x00000900
[11823ms] STACK 0x20018408: 0x00000000 0x00000000 0x00000000 0x20004A2B
[11824ms] STACK 0x20018418: 0x00000000 0x2000DB45 0x00000000 0x1002269F
`

V1.0.9 mismatches in reported capacity vs file sizes

It seems I've run across one or two minor bugs in the ZuluSCSI RP2040 firmware related to how files are presented as devices. I created two files. The first is 512MB and the second is 512MB+1 sector:
-rw-r--r-- 1 cdh cdh 536870912 Oct 4 15:43 HD1.img
-rw-r--r-- 1 cdh cdh 536871424 Oct 7 17:21 HD3.img

The Geometry and accessible space provided to the host is significantly different between these two files:

9.OS321b2:4091> devtest -g a4091.device 1
                 SSize TotalSectors   Cyl  Head  Sect  DType Removable
TD_GETGEOMETRY     512      1048576  8192    16     8  0x00  No
Inquiry                                                0x00  No
READ_CAPACITY_10   512      1048576
READ_CAPACITY_16     -            -                    Fail 52 ERROR_SENSE_CODE
Read-to capacity   512      1048575
Mode Page 0x03     512                             63
Mode Page 0x04                         65   255
9.OS321b2:4091> devtest -g a4091.device 3
                 SSize TotalSectors   Cyl  Head  Sect  DType Removable
TD_GETGEOMETRY     512      1048640  8192    16     8  0x00  No
Inquiry                                                0x00  No
READ_CAPACITY_10   512      1048640
READ_CAPACITY_16     -            -                    Fail 52 ERROR_SENSE_CODE
Read-to capacity   512      1048640
Mode Page 0x03     512                             63
Mode Page 0x04                         65   255

The 1048576 value is what is reported to SCSI READ_CAPACITY_10. The 1048575 value is the number of sectors which can be read (which is off by 1). This issue does not manifest with the V1.1 and same 1.0.9 firmware version and same SD Card. Output below.

9.OS321b2:4091> devtest -g a4091.device 1
                 SSize TotalSectors   Cyl  Head  Sect  DType Removable
TD_GETGEOMETRY     512      1048576  8192    16     8  0x00  No
Inquiry                                                0x00  No
READ_CAPACITY_10   512      1048576
READ_CAPACITY_16     -            -                    Fail 52 ERROR_SENSE_CODE
Read-to capacity   512      1048576
Mode Page 0x03     512                             63
Mode Page 0x04                         65   255

For the second drive shown in the first block (target 3), 1048640 sectors is reported for the capacity, but the correct value should be 1048577 (512 byte) sectors because 536871424 / 512 = 1048577. In this case, it seems more drive space is being made accessible than the size of the file. This issue does also manifest on the V1.1.

These are not high priority issues for me. Just minor items I noticed while testing with the new device.

RP2040 Initiator mode improvements

@PetteriAimonen Currently, creating image dumps always results in files named "HDx_imaged.hda" regardless of the source media type. I've been able to successfully dump a CD-ROM image. The resulting file should be named according to the device type. CD-ROM images should probably also have .iso suffixes, regardless of whether or not it's actually an ISO filesystem on-disc.

Infinite blinking

I have a Korg Triton-Rack which was previously confirmed to work with the SCSI2SD 5.5 (see link below). I tried both my SCSI2SD 5.0 and a ZuluSCSI mini with it, but no luck. I have a strong feeling that there is an issue with the termination power, because connecting the USB cable to the SCSI2SD 5.0 makes it work. With the SCSI2SD 5.0 only on termination power, I see nothing happening at all, the device does not blink and it is not detected by the Triton-Rack. The ZuluSCSI mini is also not detected, but instead its LED just keeps blinking infinitely. The blinks are rather short and I have the impression that they are not as bright as the regular 1 / 3 / 5 blinks on "healthy" startup. Also, no log file is created at all.

Do you have any idea what these symptoms might mean? Supposedly the Triton-Rack should provide enough termination power but what I'm seeing makes me think that this is not the case for me.

Edit: Worth noting is also that both units work if they are daisy-chained with another host inbetween that provides the power, which I believe confirms my theory even more that the termination power is the issue - but I really want to avoid this situation because the Triton-Rack really doesn't like it when the other device is turned on later than the Triton-Rack itself.)

Bus Error on Macintosh SE/30 when using System 7.5.3

A customer reports the following issue with their SE/30:

As was foretold, I am having some issues with the Zulu in my SE/30. Here's what I have been able to establish in my limited morning tinker time.

Mac OS 7.0.1 - Works well, boots normally and behaves as expected.
Mac OS 7.5.3 - Does not boot, recognises valid OS but throws "Bus Error" before loading anything

The weird part is that both those systems are on the same partition. I had suspected a driver issue but I'm not sure how that correlates to the two systems behaving differently.

I've asked them to provide a debug log.

Need help configuring ZuluSCSI RP2040

Hi,
Sorry for my english, i'm french !

At the first time, we have a SCSI floppy disk and SCSI HDD
At the second time, we have one scsi2sd configure in floppy mode and another one scsi2sd configure in HDD mode with terminaison.
Configuration were save in the card with good configuration. In the floppy scsi2sd we insert a sd card with a floppy partition only when we want to load and save parameters or reinstall the system. In the HDD scsi2sd we have a SD card with the system file.

Now, i want to test two ZuluSCSI RP 2040 because we can't find scsi2sd card..., but i can't understand how i can configure my system...

For floppy, I need to put a empty FD0.img on my SD card for floppy disk with zuluscsi.ini for information if i need. But when i remove SD card and i reboot the system. How zuluscsi knows what is the good parameters like floppy configuration without sd card ?
For HDD, I need to put a empty HD1.img with good size like 358Mo for example and zuluscsi.ini if i need. But when system format and install system on SD card, what the system do when i reboot or switch off the system ?

Maybe i don't understand something...

Tomorrow i try to connect zuluscsi with floppy scsi and hdd scsi in initiator mode to check HDxx_imaged.hda .

In complement : in zuluscsi manual two references are missing ... http://zuluscsi.com/ZuluSCSI-Manual#using-transferring , http://zuluscsi.com/ZuluSCSI-Manual#limitations-formatting

Thx for information and help ...

Certain drive images do not show up at all in Drive Setup

I shared an image that reproduces that issue here
https://drive.google.com/file/d/18IblhpvPX7LKZXFjWPuIvFQv_RA9MfPE/view?usp=sharing

To reproduce:
0) Power Macintosh 9600/350, ZuluSCSI 1.1 with 1.0.6-rc2 FW connected to Int SCSI bus, at end of chain along with CD and Zip drives, Term and SW1 switches set on.

  1. Format SD card as ExFAT / MBR and copy offending disk image onto it.
  2. Boot 9600 off Mac OS 8.6 CD (you can use this copy of 8.6 here https://mega.nz/folder/8hA3AQCJ#pWUq92L70yDXlogy9lk5Dg/folder/ll4HCQQB).
  3. Run Drive Setup (1.7.2) off the 8.6 CD.
  4. Look for the disk image volume on your ZuluSCSI in the list of devices in Drive Setup.

Results:
The drive image is not shown in the list, thus you cannot initialize/partition the volume.

If I create a brand new image using Disk Jockey (https://bluescsi.onegeekarmy.eu/diskjockey/) I don't see this issue. It's not clear to me what is special about these offending images

RP2040 issues 1.08 with Ensoniq ASR/16/EPS

On boot of Ensoniq, LED stays on for about 30sec, then turns off. ASR-10 can't boot from ZuluSCSI. But when it boots from floppy, it does see the ID and I can traverse directories. However, if I attempt to read a large instrument I get FILE OPERATION ERROR. This is with DEBUG=1.
zululog RP ASR-10.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.