• Please review our updated Terms and Rules here

emulex uc01 scsi controller - different scsi disk

iainmaoileoin

Experienced Member
Joined
Dec 24, 2014
Messages
216
Location
inverness
Does anyone know enough about these controllers to help save me time plootering about in the wrong places?

I have an 11/73 of sorts, emulex uc01 with an Adaptec ATASI 3046 connected to it.
That disk is a ?WINCHESTER? with an adaptec board on it to do the scsi to whatever conversion.

Anyway, it is an old disk and bound to blow.

I was hoping to replace it with something more modern - like a wee SCSI disk. My first cut of dropping in an old
IBM SCSI 1 disk did not seem to work ;-(

I have read the manual for the UC0151001R4_UC01L_RL01_RL02_Compatible_Universal_Controller_Apr84.pdf
(my card is older a UC01(2...) but the 015 jumpers etc seem to match what my board settings are).

I think I dont undersstand tables A.1/A.2 near page 84 of that document.
  • Does the disk label HAVE to say A3046
  • apart from speed, what are the issues with using a geometry that is larger than C/H/S given in these tables
  • The SCSI address in that table seems to go 1/2/4/8. Well SCSI 1 only does 7 items on a bus? what am I misunderstanding.

Am I up the wrong tree with trying to drop in a different drive? Am I just wasting my time?
I dont think I want to go a re-blow U49 with other parameters!

On page 3-17 of the emulex manual it tells me how to H/W format a drive. Do I need to do that?
The manual talks about sector headers and PLOs and such stuff, does the emulex not "JUST" use standard SCSI
sector headers?

All clues gratefully received.

If there is a better way to fly, then please tell me ---> buy a different controller? Seems a shame.

Thanks in advance.

PS: I broke my wrist skiing. Have you ever tried to remove/insert a qbus board that has no levers with a broken wrist??
DONT!
 
Does anyone know enough about these controllers to help save me time plootering about in the wrong places?

I have an 11/73 of sorts, emulex uc01 with an Adaptec ATASI 3046 connected to it.
That disk is a ?WINCHESTER? with an adaptec board on it to do the scsi to whatever conversion.

I think I dont undersstand tables A.1/A.2 near page 84 of that document.
  • Does the disk label HAVE to say A3046
  • apart from speed, what are the issues with using a geometry that is larger than C/H/S given in these tables
  • The SCSI address in that table seems to go 1/2/4/8. Well SCSI 1 only does 7 items on a bus? what am I misunderstanding.

Am I up the wrong tree with trying to drop in a different drive? Am I just wasting my time?
I dont think I want to go a re-blow U49 with other parameters!

On page 3-17 of the emulex manual it tells me how to H/W format a drive. Do I need to do that?
The manual talks about sector headers and PLOs and such stuff, does the emulex not "JUST" use standard SCSI
sector headers?
*snip*

I have not used the UC01, but I used other Emulex controllers of the same era. Take this advice with the usual caveats.

1) The "Key" is is simply a shorthand link to the following table. I seriously doubt the drive has to have any particular label. You can give the drive a media id (16 bit number, NOT Alphanumeric) if you format, but I doubt RT11 cares. Not sure about RSX, RSTS, etc..
2) As long as you use a drive larger than the geometry of the drive configuration you are using, you should be okay at least for the first logical drive. If the first one fails, try another.
3) I can't fathom the SCSI address table either. It may be a column representation of which SCSI drive is used (rightmost =drive 0, next left column 1, onward to the 8th column =drive7.)
SCSI Narrow is 3 bits, not 8 (obviously). Note the leftmost bits are never set (i.e. Controller lives there).
4) I would use SCSI 0 for the drive and 7 or 6 for the controller for starts.
5) Most drives should be already formatted. I wouldn't reformat, unless all else fails and the drive supports it. (note, you can only format scsi id's 0-3 with this controller).
6) A newer drive should work, provided it is set to SCSI-1 mode.
7) As you have found, this controller cannot read the drive capacity and just use that. I have used the UC07, which has interactive setup dialog is much easier to deal with, and does read drive capacity.

Good Luck!
 
What I have found so far:
Emulex is on SCSI ID 7
Seagate 1201N is on SCSI ID 1 (one). If I use zero then the controller wont see the drive $ 177774400/ gives 200,
this implies the controller - but not the drive - is ready. With drive set to to one I can see 201 in the register - drive and controller OK.

Then I come unstuck.
I cant read block 0 into memory 0. The drive is ready, takes the command (apparently) but the controller does not come back to
ready (I see 15 (base 8) in the controller register) not 201 or 2x<bit 0 set>.

The drive powers up and reads in my unix box. So I dont think it is a drive issue,

I will report more as I find it. All clues welcome.
 
What I have found so far:
Emulex is on SCSI ID 7
Seagate 1201N is on SCSI ID 1 (one). If I use zero then the controller wont see the drive $ 177774400/ gives 200,
this implies the controller - but not the drive - is ready. With drive set to to one I can see 201 in the register - drive and controller OK.

Then I come unstuck.
I cant read block 0 into memory 0. The drive is ready, takes the command (apparently) but the controller does not come back to
ready (I see 15 (base 8) in the controller register) not 201 or 2x<bit 0 set>.

The drive powers up and reads in my unix box. So I dont think it is a drive issue,

I will report more as I find it. All clues welcome.


You didn't mention the drive configuration used. Section 3.8.2 seems to say it looks for Drive 0 on power up, not 1. So if the drive is otherwise okay on the unix box, this behavior is inconsistent.

Can you list the code or deposits given to the controller, the switch settings, and termination supplied for the drive? Is the drive formatted for 512 bytes? Parity set correctly.

You might try toggling in a standard RL01/02 bootstrap. It should load the first block at address 0.
 
You didn't mention the drive configuration used. Section 3.8.2 seems to say it looks for Drive 0 on power up, not 1. So if the drive is otherwise okay on the unix box, this behavior is inconsistent.

Can you list the code or deposits given to the controller, the switch settings, and termination supplied for the drive? Is the drive formatted for 512 bytes? Parity set correctly.

You might try toggling in a standard RL01/02 bootstrap. It should load the first block at address 0.

It is an old SCSI 1 80Mb IBM disk from some long-lost unix box in a corner.
I *believe* it has more cylinders,heads than the existing drive.

In my unix system the drive comes up and can be dd'ed both ways - no errors showing.

Now, "is the drive formatted for 512 bytes?" That is a good question. I need to go research that.
I can dd 512 bytes to any particular area - using the "Block" device. I dont think the block
device will "splice write". Tell me otherwise. OK off I go to look....

I agree with you about section 3.8.2 - This means something MUCH stranger is wrong/different.

I have toggled in a crude RL02 boot - but I can cant get it to read anything -
initially the controller and drive say ready (201 in the CSR)
but when I say "go" to the bootstrap the controller does not come back to ready.
No error is shown in the CSR - I stuck a we print number subroutine in and usually the function code I have written to the
controller is shown repeatedly (forever). No data transfers.

After a power-cycle I can hear the heads move when I run the RL02 boot - something seems to
happen.

I have tried three bootstraps - the boot-prom one, I wrote my own boot and then used one from the web
that had bootstrap examples for many peripherals. I use crude MOV code - 012737;0;174404; the examples
from the web would use a CLR on indexed addressing; Both boothstraps behaved the same.

This machine is just being revived. Perhaps I stop plootering with a disk replacement for a few days
and start looking at getting some of the other peripherals running. If I have a more fundamental
issue with DMA etc moving on will show it?

Current boot code
(I have a subroutine at 11100 that prints the contents of r5 to the console)
I get the same result from the book code without the print calls - they were put in to help the debug
001000/012706
1000
# mov #csr r0
012701
174400
012761
#reset mov #13,174404
000013
000004
012711
#mov #4 174400
000004
011105 # this is 373 from below!
# csr to r5
4737
#print
11100
105711
#test
100373
# loop back
005061
#clr 174402
000002
005061
# clr 174404
000004
012761
#mov 177400 174406 ??
177400
000006
012711
#mov #14 174400
000014
011105
# csr to r5
4737
#print
11100
105711
100373
# print
000
005007
q


I used to be friends with SCSI ;-)
 
If you have any patience… try this and report back

RL01/02 Disk

Loc. Cont. Instruction Comment
=======================================
000000 123456 Something specific in Loc 0
….
001000 012700 mov #rlcs,r0 controller address
001002 174400
001004 012760 mov #cmd,4(r0) seek command data
001006 000013
001010 000004
001012 012710 mov #cmd,(r0) get status
001014 000004
001016 105710 tstb (r0) wait ready
001020 100376 bpl .-2
001022 005060 clr 2(r0) zero bus address
001024 000002
001026 005060 clr 4(r0) zero disk address
001030 000004
001032 012760 mov #-256,6(r0) set the byte count
001034 177400
001036 000006
001040 012710 mov #cmd,(r0) read block
001042 000014
001044 105710 tstb (r0) wait ready
001046 100376 bpl .-2
001050 005007 clr r7 (jump to 0)
1000G Start at 1000

After halt (or halting computer) report the contents of the following:
Last address executed R7
R0
Locations 0 -> 10
Controller addresses
174400
174402
174404
174406
174410
 
update

update

Stand down on this one.

I have knackered something in my system.

I now cant read off the original disk.

Controller behaves the same way as with "new" disks - powers up and the CSR says 201 (drive+controller ready)
Send a command and the controller never comes back to read.

sad face....
I guess I need to get the scope out and see if I can figure out what I have cooked.
 
Thanks

Thanks

If you have any patience… try this and report back

RL01/02 Disk

Loc. Cont. Instruction Comment
=======================================
000000 123456 Something specific in Loc 0
….
001000 012700 mov #rlcs,r0 controller address
001002 174400
001004 012760 mov #cmd,4(r0) seek command data
001006 000013
001010 000004
001012 012710 mov #cmd,(r0) get status
001014 000004
001016 105710 tstb (r0) wait ready
001020 100376 bpl .-2
001022 005060 clr 2(r0) zero bus address
001024 000002
001026 005060 clr 4(r0) zero disk address
001030 000004
001032 012760 mov #-256,6(r0) set the byte count
001034 177400
001036 000006
001040 012710 mov #cmd,(r0) read block
001042 000014
001044 105710 tstb (r0) wait ready
001046 100376 bpl .-2
001050 005007 clr r7 (jump to 0)
1000G Start at 1000

After halt (or halting computer) report the contents of the following:
Last address executed R7
R0
Locations 0 -> 10
Controller addresses
174400
174402
174404
174406
174410

I can give this a go tonight when I get home. I have a wee home cooked c program that sends these sorts of sequences down from my linix box, so it is more of a simple cut/paste than a messy "type it in" job. The above looks like one of the RL02 boot sequence I have used before.
I *predict* it will loop about 1044 and the CSR will be 15.
I fear I have goosed my controller ;-(
 
your experiment

your experiment

If you have any patience… try this and report back

RL01/02 Disk

Loc. Cont. Instruction Comment
=======================================
000000 123456 Something specific in Loc 0
….
001000 012700 mov #rlcs,r0 controller address
001002 174400
001004 012760 mov #cmd,4(r0) seek command data
001006 000013
001010 000004
001012 012710 mov #cmd,(r0) get status
001014 000004
001016 105710 tstb (r0) wait ready
001020 100376 bpl .-2
001022 005060 clr 2(r0) zero bus address
001024 000002
001026 005060 clr 4(r0) zero disk address
001030 000004
001032 012760 mov #-256,6(r0) set the byte count
001034 177400
001036 000006
001040 012710 mov #cmd,(r0) read block
001042 000014
001044 105710 tstb (r0) wait ready
001046 100376 bpl .-2
001050 005007 clr r7 (jump to 0)
1000G Start at 1000

After halt (or halting computer) report the contents of the following:
Last address executed R7
R0
Locations 0 -> 10
Controller addresses
174400
174402
174404
174406
174410
"d
0/123456 123456
00000002/174777 q?
@?
@001000/012700 012700
00001002/174400 174400
00001004/012760 012760
00001006/000013 000013
00001010/000004 000004
00001012/012710 012710
00001014/000004 000004
00001016/105710 105710
00001020/100376 100376
00001022/005060 005060
00001024/000002 000002
00001026/005060 005060
00001030/000004 000004
00001032/012760 012760
00001034/177400 177400
00001036/000006 000006
00001040/012710 012710
00001042/000014 000014
00001044/105710 105710
00001046/100376 100376
00001050/005007 005007
00001052/174777
@1000g

<I PRESS HALT>
001046<pc, so it is waiting for transfer to complete...>
@r7/
r7/001046
R0/174400

@0/
0/123456 <no change>
00000002/174777
00000004/177777
00000006/174777
00000010/177777

@17774400/
17774400/000014
17774402/000000
17774404/000000
17774406/000210
17774410/000000
17774412/000000
17774414/000000
17774416/000000
 
emulex uc01 works with scsi2sd

emulex uc01 works with scsi2sd

This info *MIGHT* help somebody in the future with a UC01 Emulex disk controller.
The SCSI2SD card works fine with it.

I have no idea why an old (working) IBM drive does not.
I also dont know how I cooked my original drive ;-( but I am happier than I was.
 
Back
Top