[Coco] BUG with rbsuper and tc3 drivers SOLVED!

Tim Fadden t.fadden at cox.net
Fri Feb 17 15:53:39 EST 2017


On 2/14/2017 12:56 PM, Robert Gault wrote:
> Tormod Volden wrote:
>> On Tue, Feb 14, 2017 at 8:00 PM, Tormod Volden wrote:
>>> dmode doesn't call the driver so that sounds strange. Can you please
>>> send these descriptors to me. At least dmode issues I can reproduce
>>> without having SCSI disks :)
>>>
>>> What remains unclear to me is whether the DRV field has to be unique
>>> per controller, for every target and partition. I get a vague
>>> impression of this after reading the SuperDriver manual, and I also
>>> see rbsuper use the DRV number for its cache matching logic.
>>>
>>> I wonder if reading a sector from target 4 just after writing to the
>>> same sector number to target 3 would return what was written to target
>>> 3, unless also the DRV numbers are different? Especially since rbsuper
>>> is unaware of DNS being used for target number. Or likewise reading
>>> from one partition after writing to the same logical sector on another
>>> partition, because although it is rbsuper that adds the partition
>>> offsets, it does so after checking for cache hit and only just before
>>> calling the low-level driver on cache miss.
>>
>> Yup, see the Partitioning section on
>> http://nitros9.sourceforge.net/wiki/index.php/SuperDriver
>> "Do NOT allow two device descriptors share the same logical drive
>> number if they have different LSN offsets."
>>
>> I guess the same applies for different SCSI target IDs, so we should
>> fix the stock descriptors to both have different DRV and DNS.
>>
>> Tormod
>>
>
> I don't use the SuperDriver so this comment is based on the email 
> thread and http://nitros9.sourceforge.net/wiki/index.php/SuperDriver, 
> not actual experience.
>
> Be careful to distinguish HDB-DOS emulated Basic drives on a hard 
> drive from SCSI channels, as they are not equivalent. If the 
> SuperDriver is similar to the software that came with Ken-Ton hard 
> drives, the SCSI channel is based on the drive number used and 
> automatically calculated by the ROM or OS-9 software.
> IT.DNS is used by the SuperDriver for several things. One is 
> indicating that there are 256 bytes per sector when using emulated 
> Basic drives. IT.STP is used to indicate the emulated drive number 0-255.
>
> Robert
>
>
SRY, was out of town or I would have chimed in sooner.

With the original Superdriver, the scsi Id used the drv field for the 
scsi ID.  On the newer SuperDriver, the dns field picks up the scsi ID, 
and the drv setting has no affect. I have two scsi disks, both with 
multiple partitions. The original SuperDriver documentation does not 
match with the way the newer SuperDriver works.

I set them up like below, and everything works as it should. the p names 
are for target 0, and I used q for target 4
Both disks have the same partiton structure so they look similar except 
for the scsi id setting in the dns field. The first number in the dns 
field turns on and off turbo mode if the driver still works the same as 
it did originally.  and changing the drv setting has no affect at all as 
far as I can see.

scsi disk set to target 0, 4 partitions
nam=p0 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=10 cyl=012C sid=24
vfy=01 sct=0060 t0s=0060 ilv=01 sas=02 wpc=00 ofs=00 rvc=

nam=p1 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=10 cyl=0068 sid=10
vfy=01 sct=0060 t0s=0060 ilv=01 sas=02 wpc=0F ofs=D202 rvc=

nam=p2 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=10 cyl=012C sid=24
vfy=01 sct=0060 t0s=0060 ilv=01 sas=02 wpc=12 ofs=4204 rvc=

nam=p3 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=10 cyl=C213 sid=24
vfy=01 sct=0060 t0s=0060 ilv=01 sas=04 wpc=22 ofs=1406 rvc=

scisi disk set to target 4, w partitions.
nam=p0 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=14 cyl=012C sid=24
vfy=01 sct=0060 t0s=0060 ilv=01 sas=02 wpc=00 ofs=00 rvc=

nam=p1 mgr=RBF ddr=rbsuper
hpn=07 hda=FF74 drv=00 stp=00 typ=83 dns=14 cyl=0068 sid=10
vfy=01 sct=0060 t0s=0060 ilv=01 sas=02 wpc=0F ofs=D202 rvc=

The above works perfectly

is using 3 digit names ok?  that way I could use a naming scheme like 
/s00,  /s01, /s02,/s03, /s04,/ s40, /s41

showing logically the target and partition. I used a different letter 
for each target, and a number for the partition.

the first number in the dns field turns on and off turbo mode. and 
changing the drv setting has no affect at all as far as I can see.

Also the descriptors in the distribution are all set for target 0, where 
as in the past each descriptor was for a different target.


-- 

Tim Fadden
"Hey Schmidt, don't forget about the six P's.
Proper Preparation Prevents Piss-Poor Performance!"



More information about the Coco mailing list