English Amiga Board


Go Back   English Amiga Board > News

 
 
Thread Tools
Old 28 February 2018, 19:51   #1
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Warp Engine SCSI driver converted for PP&S Zeus 040 (and others)

And now something totally different: MacroSystem Warp Engine warpdrive.device SCSI driver converted to other 53C710 based SCSI controllers.

This quick project started when I saw request from wmaciv asking for working PP&S Zeus 040 SCSI driver. Official driver is quite bad, it uses all CPU time and is quite buggy.
I took the challenge because technically it should be easy (and it was!), 53C710 is all-in-one SCSI chip, no external DMA or other hardware needed so the "only" task was remapping 53C710 registers.

There was two obvious choices for driver, A4091 or Warp Engine. I chose Warp Engine because Warp Engine ROM driver is in normal relocatable executable format (+small loader) which made it easy to disassemble. Note that 53C720 is too different and can't be used with 53C710 driver or vice versa. All later variants (including 53C8xx) are fully or almost compatible with 53C720.

Executable version (run it in shell, drives get detected and partitions mounted) Zeus 040 driver was quickly done under emulation (I don't have Zeus 040) and surprisingly it worked perfectly on real hardware too (I didn't really expect it..). ~8M/s speed using SCSI2SDv6 with over 90% CPU availability.

Next step was ROM version (not yet tested, Zeus 040 has unusual ROM chip package size). And finally I also did two mostly useless versions: one for A4091 and another for A4000T built-in SCSI.

Included drivers:

warpdrive_a4000t: Executable/rommable A4000T driver.
warpdrive_a4091.rom: A4091 ROM driver. (No executable version because A4091 does not have no-autoboot jumper)
warpdrive_zeus040: Executable Zeus 040 driver.
warpdrive_zeus040.rom: Zeus 040 ROM driver (needs odd/even splitting).

A4091 and A4000T drivers are emulation only tested but I expect them to work because Zeus 040 driver worked perfectly fine on real hardware
Ignores SCSI ID/mode jumpers: ID=7, 100ns sync mode (fastest possible).
ROM version mode can be changed if needed by changing single value using hex editor.
Executable versions take optional parameter (0 to 7) which matches Warp Engine K, J and H jumper setting.

Currently only uploaded to the zone (warpengine_driver_hacks.zip). If spreading hacked files based on 3rd party drivers is not ok, I'll replace them with patches against Warp Engine ROM image.
Toni Wilen is offline  
Old 28 February 2018, 20:19   #2
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
Really outstanding work!

Does this new set of drivers provide any additional feature or better reimplementation in any aspect than the original drivers?.

I ask this because your response might persuade A4000T/A4091 owners to update.

Anyway, as mentioned, despite I dont have any of those devices I can truly apreciate any development going that route. Thanks.

Last edited by gulliver; 28 February 2018 at 21:04. Reason: typo
gulliver is offline  
Old 28 February 2018, 20:33   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by gulliver View Post
Does this new set of drivers provide any additional feature or better reimplementation in any aspect than the original drivers?.
I don't know if it is better than original A4000T/A4091 driver. Someone needs to test it. (I only have broken A4091) I only made them because it was very easy. Main goal was Zeus 040 driver replacement.
Toni Wilen is offline  
Old 28 February 2018, 22:37   #4
Romanujan
Registered User
 
Join Date: Dec 2007
Location: Szczecin/Poland
Posts: 424
Why running version command on the A4000T driver prints out version 40.-1?
Romanujan is offline  
Old 01 March 2018, 03:31   #5
dannyp1
Registered User
 
Join Date: Nov 2009
Location: Michigan USA
Posts: 168
I believe the most recent WarpDrive.device was version 40.66. I wonder if Toni is keeping this version number or if it will be changed because of changes he's made.
dannyp1 is offline  
Old 01 March 2018, 08:28   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
I get 40.66. (EDIT: short answer to short question without any details, run it in shell? In rom? and so on..)

Last edited by Toni Wilen; 01 March 2018 at 10:25.
Toni Wilen is offline  
Old 01 March 2018, 18:48   #7
Romanujan
Registered User
 
Join Date: Dec 2007
Location: Szczecin/Poland
Posts: 424
Sorry, I was imprecise. Driver not installed (not in ROM, no LoadModule used, etc.) - just open the shell, go to the directory with a driver file and type:

Code:
version warpdrive_a4000t

Last edited by Romanujan; 01 March 2018 at 18:57.
Romanujan is offline  
Old 01 March 2018, 21:34   #8
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,902
I looked in the zone but I don't see the file. I could check A4091 version.
grelbfarlk is offline  
Old 01 March 2018, 22:12   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by grelbfarlk View Post
I looked in the zone but I don't see the file. I could check A4091 version.
It is currently 3rd file, impossible to miss..

Quote:
Originally Posted by Romanujan View Post
Sorry, I was imprecise. Driver not installed (not in ROM, no LoadModule used, etc.) - just open the shell, go to the directory with a driver file and type:

Code:
version warpdrive_a4000t
It means nothing, it is not a driver but loader that creates the driver in memory. Version probably guesses something.
Toni Wilen is offline  
Old 01 March 2018, 22:23   #10
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,902
Quote:
Originally Posted by Toni Wilen View Post
It is currently 3rd file, impossible to miss..
Sorry I was looking in the ftp The Zone folder. Found it, will report back.
grelbfarlk is offline  
Old 02 March 2018, 09:39   #11
alexh
Thalion Webshrine
 
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 14,331
I wonder if this driver would be any better than the one included with the A2000 CSA Magnum 040/4? I remember people complaining it was "strange".

I don't have one. Just noticed that it has the same SCSI chip.

chiark on this forum used to have one but he sold it to a regular member of Amibay called Tahoe.
alexh is online now  
Old 02 March 2018, 11:00   #12
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by alexh View Post
I wonder if this driver would be any better than the one included with the A2000 CSA Magnum 040/4? I remember people complaining it was "strange".

I don't have one. Just noticed that it has the same SCSI chip.

chiark on this forum used to have one but he sold it to a regular member of Amibay called Tahoe.
I'll ask. ROM dump is needed to find out how the SCSI chip (and other hardware) is mapped to address space.
Toni Wilen is offline  
Old 02 March 2018, 19:18   #13
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 3,333
ROM dump probably wouldn't be needed for that. You should be able to test with the disk-loadable driver. (Also, a version of the driver can be loaded to RDB LSEG blocks, presumably the actual ROM is just a tiny loader.)

btw there are a few useful tools on the software disk that aren't Magnum-specific. In C/CSA:
Code:
asi	Amiga System Information. Display expansions, libraries, memory list, 
creg	Read 40/4 Magnum Control Registers
DRAM	Configure DRAM Controller
DROM	Remap Kickstart ROM into Magnum DRAM
inq	Issue INQUIRY. Magnum-specific?
rdb	Display RDB info, also has a "-fixnexus" option "fix LSEG blocks written by Nexus". Magnum-specific?
rw	Read/Write memory
sad	SCSI Access (Driver) Program. Issue TEST UNIT READY, READ CAPACITY, REQUEST SENSE, INQUIRY, MODE SENSE, display RDB structures
mark_k is offline  
Old 02 March 2018, 20:42   #14
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Some updates coming soon, 53C710 timing parameter register settings aren't exactly right.

Quote:
Originally Posted by mark_k View Post
ROM dump probably wouldn't be needed for that. You should be able to test with the disk-loadable driver.
Yes but testing is more annoying.. And I also want something back

EDIT: and ROM replacement is impossible without original ROM image.

Last edited by Toni Wilen; 03 March 2018 at 13:24.
Toni Wilen is offline  
Old 04 March 2018, 19:33   #15
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 3,333
I've uploaded some notes/info about the CSA 40/4 Magnum to The Zone. Figured out from looking at various programs on the software disk.
mark_k is offline  
Old 18 March 2018, 16:05   #16
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Update uploaded.

- CSA Magnum 40/4 supported. (Thanks Tahoe) Due to hardware stability problems it is not real hardware tested.
- Removed duplicate strings and some unused code.
- Fixed timing values.
- Readme included.
Toni Wilen is offline  
Old 19 March 2018, 23:08   #17
chiark
Needs a life
 
chiark's Avatar
 
Join Date: Jan 2008
Location: England
Posts: 1,707
Glad Tahoe's still got the board ! Brilliant stuff, Toni.
chiark is offline  
Old 10 October 2018, 01:05   #18
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,902
Toni, I'm finally getting around to trying the A4091 driver, am I understanding you correctly that I need to burn this to a ROM to test it?
*EDIT*
Burnt a ROM, seems to basically work.

Will do some testing, all I have on this system at the moment is an SFS drive and an A3660 with Speedgeek's 030 state machine.

Last edited by grelbfarlk; 10 October 2018 at 02:13.
grelbfarlk is offline  
Old 03 November 2018, 00:54   #19
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,902
It does work, though it's a bit slower than the A4091 ROM. In Sysspeed for instance with a SATA drive over a SCSI->IDE->SATA adapter I can get something like 4.5MB/s with the A4091 ROM and ~3.8MB/S with the Warpengine ROM.

However as commented in a different thread it seems like something broke with the A4091 along the way, whatever drives I put on the system like a 300GB U320 with an SCA-80->68pin adapter I never get over 4MB/s. These drives on the WarpEngine, Trexx-2, or CSPPC will do 9MB/s or 30+MB/s on the CSPPC.
Synchronous mode is set on the RDB, but it seems like the SCSI-2 FAST mode is not being enabled for some reason. The jumper for it is turned off (to enable it).

One or two years ago I had set up these A4091s and tested getting about 5MB/s with a basic A3640, if I added an A3128 as the highest priority memory and tested again, I'd get somewhere between 7-8MB/s. Current system I'm testing has a CSMK-2 060.

Somewhat at a loss as I've tried every combination of terminators I can think of, including LVD/SE terminators, SCSI-2 Active Terminators, both, none....

The A4091 install disks included a different Setpatch version, maybe there was some Voodoo that was going on with that Setpatch that has not been propagated to later versions.
grelbfarlk is offline  
Old 22 February 2020, 18:16   #20
richx
Registered User
 
richx's Avatar
 
Join Date: Nov 2019
Location: USA
Posts: 7
Thanks for this, very cool! The original Zeus SCSI driver does not appear to work with an 060 on real hardware (http://eab.abime.net/showthread.php?t=100942), crash/black screen at boot, so I was thinking about trying this instead.

But reading the last zip readme about the CFG options makes it seem like the default Zeus exe/ROM config options would cause high clocks.

Quote:
Near the beginning of rom image/executable is string "CFG:", after it comes 4 bytes:

1: Warp Engine jumper (K, J, H) value. Default = 8 (sync mode, values below override actual sync speed so this setting is only useful to select between sync=8 and async=1)
2: 53C710 SSCF divisor, crystal frequency to sync divider. (1=1,2=1.5,3=2.0). Result must not be larger than 50MHz.
3: 53C710 CF divisor, crystal frequency to async divider (0=2,1=1.5,2=1.0,3=3). Result must not be larger than 25MHz.
4: 53C710 XFERP divisor, SSCF sync result to sync transfer rate divisor (0=4,1=5,..,7=11). Result must not be larger than 10MHz.
Quote:
2018-03-18 warpdrive_zeus040.exe
000000d0: 0068 0000 0079 0000 00b6 0000 0000 4346 .h...y........CF
000000e0: 473a 0801 0000 646f 732e 6c69 6272 6172 G:....dos.librar


2018-03-18 warpdrive_zeus040.rom

00000090: 0055 0000 0092 0000 0000 4346 473a 0801 .U........CFG:..
000000a0: 0000 646f 732e 6c69 6272 6172 7900 6578 ..dos.library.ex


C F G : 1 2 3 4
4346 473a 0801 0000
4346 473a 0801 0000

The Zeus has a 56MHz crystal (66MHz for 33Mhz version I guess), which would lead to following values which are higher than the "Result must not be larger than ..." values:
SSCF: 56MHz
CF: 28MHz
XFERP: 14MHz

Am I reading something wrong? Do the files need to be edited for the Zeus, but why would default not be lower?
richx is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
FOR SALE - Warp Engine 040 for A4000 fitzsteve MarketPlace 6 12 October 2015 00:42
Progressive Zeus 040 troubleshooting Robert Morewood support.Hardware 3 05 March 2008 07:58
FS : Zeus 040 for A2000 with 64 mb ram coze MarketPlace 7 09 May 2007 04:08
FS:- A4000/040, Warp Engine040, C64/3D, AMON, SCSI. LOADED alewis MarketPlace 20 08 February 2007 14:58
FS: Warp Engine 040 and 2gb SCSI HD (wb preinstalled) alewis MarketPlace 7 15 August 2006 18:06

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 09:12.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.22303 seconds with 13 queries