A few days ago I transplanted the motherboard to another system and I
attached some devices to its SCSI channel. I inmediately got speed
negotiation problems, and I tried several bus arrangements to no avail.
This is *not* a cabling or termination problem; I borrowed an Adaptec
2940U card from another machine, and I attached the same devices using the
*same* cables and arrangement. Obviously, everything worked fine. In
particular, the speed negotiated by the 2940U with an external DLT 4000
was 10 MB/s (10 MHz) (there were also a CD-ROM and CD-RW, both Ultra SCSI
20 MB/s, 20 MHz).
Currently I have *only* one device attached: the external DLT 4000 unit
(fast narrow SCSI). There is a flat 50-way cable from the appropriate
connector on the motherboard to an external micro-SCSI connector; from
here to the DLT there is a single standard SCSI cable, and I attached an
active terminator to the DLT's free SCSI connector, of course. Everything
is correct.
I entered the SCSI-select utility of the onboard AIC7880 and tried all
kind of things. Surprisingly, sometimes I achieved the 10 MHz sync speed
after enforcing a limit of 5 MB/s (!) for the DLT target. Weird. Anyway,
it did not work at all. Even a simple "mt status" gets hung until I reset
the bus.
I am suspecting of problems with the SEEPROM. Maybe the ahc(4) driver does
not understand correctly the settings it reads from the SEEPROM... I don't
know. I found a option called "AHC_DUMP_EEPROM"; I can turn it on if it
could be useful.
Here is an excerpt from the "boot -v" messages:
ahc2: <Adaptec aic7880 Ultra SCSI adapter> port 0xe400-0xe4ff mem 0xe5903000-0xe5903fff irq 14 at device 20.0 on pci0
ahc2: Reading SEEPROM...done.
ahc2: Low byte termination Enabled
ahc2: High byte termination Enabled
ahc2: Downloading Sequencer Program... 439 instructions downloaded
aic7880: Ultra Wide Channel A, SCSI Id=7, 16/255 SCBs
...
Waiting 15 seconds for SCSI devices to settle
noperiph:ahc2:0:-1:-1): SCSI bus reset delivered. 0 SCBs aborted.
...
(ahc2:A:5:0): Sending SDTR period 2b, offset f
(ahc2:A:5:0): Received SDTR period 2b, offset f
Filtered to period 2b, offset f
ahc2: target 5 synchronous at 5.7MHz, offset = 0xf
(ahc2:A:5:0): Sending SDTR period 2b, offset f
(ahc2:A:5:0): Received SDTR period 2b, offset f
Filtered to period 2b, offset f
sa0 at ahc2 bus 0 target 5 lun 0
sa0: <Quantum DLT4000 D782> Removable Sequential Access SCSI-2 device
sa0: Serial Number DK937R0392
sa0: 5.813MB/s transfers (5.813MHz, offset 15)
**NOTE:** the SCSI-select utility offers only two choices for bus
termination: "High ON/Low Auto" or "High OFF/Low OFF". If I attach devices
to both SCSI onboard connectors (wide and narrow), the "boot -v" messages
keep saying "Low byte termination enabled". Is that the expected behavior?
I forgot to say that this machine is running 4.4-STABLE (dated November
14th). I am willing to try *anything*. I can modify the ahc(4) sources if
needed. Any help, idea or suggestion will be greatly welcome!
Thanks in advance,
JMA
--
****** Jose M. Alcaide // jo...@we.lc.ehu.es // jm...@FreeBSD.org ******
** "Beware of Programmers who carry screwdrivers" -- Leonard Brandwein **
To Unsubscribe: send mail to majo...@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message
I suspect that it is a termination problem. More below.
>Currently I have *only* one device attached: the external DLT 4000 unit
>(fast narrow SCSI). There is a flat 50-way cable from the appropriate
>connector on the motherboard to an external micro-SCSI connector; from
>here to the DLT there is a single standard SCSI cable, and I attached an
>active terminator to the DLT's free SCSI connector, of course. Everything
>is correct.
Ensure the DLT does not have a jumper or dip switch for internal
termination.
>I entered the SCSI-select utility of the onboard AIC7880 and tried all
>kind of things. Surprisingly, sometimes I achieved the 10 MHz sync speed
>after enforcing a limit of 5 MB/s (!) for the DLT target. Weird. Anyway,
>it did not work at all. Even a simple "mt status" gets hung until I reset
>the bus.
>
>I am suspecting of problems with the SEEPROM. Maybe the ahc(4) driver does
>not understand correctly the settings it reads from the SEEPROM... I don't
>know. I found a option called "AHC_DUMP_EEPROM"; I can turn it on if it
>could be useful.
It may be useful.
>**NOTE:** the SCSI-select utility offers only two choices for bus
>termination: "High ON/Low Auto" or "High OFF/Low OFF". If I attach devices
>to both SCSI onboard connectors (wide and narrow), the "boot -v" messages
>keep saying "Low byte termination enabled". Is that the expected behavior?
Depends on the motherboard. Many of these systems actually control
the termination via a MB BIOS control. The SCSI Select controls were
never disabled when the SCSI BIOS was compiled. I believe that this may
be the cause of your bus instability.
--
Justin
But when I attach the DLT to the external connector of an Adaptec 2940U
controller, it works just fine. OTOH, I also tried to *only* attach the
internal Ultra-SCSI CD-ROM and CD-RW devices (terminating the bus using
the jumper of the device at the end of the chain), and I also get low sync
rates (5 MHz, 5.813 MHz). If I attach these devices to the Adaptec 2940U
(using the same cable) they work fine at 20 MHz sync rates.
> >I am suspecting of problems with the SEEPROM. Maybe the ahc(4) driver does
> >not understand correctly the settings it reads from the SEEPROM... I don't
> >know. I found a option called "AHC_DUMP_EEPROM"; I can turn it on if it
> >could be useful.
>
> It may be useful.
ahc2: <Adaptec aic7880 Ultra SCSI adapter> port 0xe400-0xe4ff mem 0xe5903000-0xe5903fff irq 14 at device 20.0 on pci0
Serial EEPROM:
0xb0ee 0xb0ee 0xb0ee 0xb0ee 0x8629 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
Serial EEPROM:
0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb
0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb
0x18a6 0x1c5e 0x2807 0x10 0xffff 0xffff 0xffff 0xffff
0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0x98c0
Supposedly, if I set a maximum speed (e.g. 10 MB/s, narrow) for a target
using SCSI-select, no higher speeds should be negotiated, isn't it? That's
not the case with this controller; fiddling with these settings, sometimes
I even got 10 MB/s for the DLT and 20 MB/s for the CD-ROM and CD-RW, but
the transfers don't work. This is the reason for I suspect that something
is broken in SCSI-select, or maybe the SEEPROM contents is corrupted (I
also tried to "load defaults" in SCSI-select).
> >**NOTE:** the SCSI-select utility offers only two choices for bus
> >termination: "High ON/Low Auto" or "High OFF/Low OFF". If I attach devices
> >to both SCSI onboard connectors (wide and narrow), the "boot -v" messages
> >keep saying "Low byte termination enabled". Is that the expected behavior?
>
> Depends on the motherboard. Many of these systems actually control
> the termination via a MB BIOS control. The SCSI Select controls were
> never disabled when the SCSI BIOS was compiled. I believe that this may
> be the cause of your bus instability.
The motherboard has a jumper labeled "SCSI Autoterm ON", and I tried to
remove it to no avail. The motherboard manual does not tell anything about
this jumper, however.
Thanks very much,
I don't think the syncrate problem is at all related to why the bus does
not work. The bus doesn't work because termination *on the controller*
is not set correctly. Your test with the 2940U can't detect all termination
issues.
>> It may be useful.
>
>ahc2: <Adaptec aic7880 Ultra SCSI adapter> port 0xe400-0xe4ff mem 0xe5903000-0
>xe5903fff irq 14 at device 20.0 on pci0
>
>Serial EEPROM:
> 0xb0ee 0xb0ee 0xb0ee 0xb0ee 0x8629 0xbfff 0xbfff 0xbfff
> 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
> 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
> 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
>
>Serial EEPROM:
> 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb
> 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb 0xc3bb
> 0x18a6 0x1c5e 0x2807 0x10 0xffff 0xffff 0xffff 0xffff
> 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0x98c0
The dump is only useful with an understanding of the corresponding
SCSI Select settings. Please go into SCSI select and set the transfer
rate from fastest to slowest across the SCSI IDs. This will provide
a better understanding of how this BIOS is setting the SEEPROM. Also
include the SCSI BIOS version for this controller.
>> >**NOTE:** the SCSI-select utility offers only two choices for bus
>> >termination: "High ON/Low Auto" or "High OFF/Low OFF". If I attach devices
>> >to both SCSI onboard connectors (wide and narrow), the "boot -v" messages
>> >keep saying "Low byte termination enabled". Is that the expected behavior?
>>
>> Depends on the motherboard. Many of these systems actually control
>> the termination via a MB BIOS control. The SCSI Select controls were
>> never disabled when the SCSI BIOS was compiled. I believe that this may
>> be the cause of your bus instability.
>
>The motherboard has a jumper labeled "SCSI Autoterm ON", and I tried to
>remove it to no avail. The motherboard manual does not tell anything about
>this jumper, however.
Well, the serial eeprom indicates that termination is hardcoded to on
for both the high and low byte. Can you provide an SEEPROM dump for
each different termination setting available? Please label them with
what options are enabled.
--
Justin
Maybe. I supposed that termination at the controller side was working.
However, if termination on the controller is always on, then it should
work when there are devices attached to only one of the two SCSI onboard
connectors. OTOH, if termination is always off, then it should work when
there are terminated device chains attached to both onboard SCSI
connectors... or am I wrong?
> The dump is only useful with an understanding of the corresponding
> SCSI Select settings. Please go into SCSI select and set the transfer
> rate from fastest to slowest across the SCSI IDs. This will provide
> a better understanding of how this BIOS is setting the SEEPROM. Also
> include the SCSI BIOS version for this controller.
Well, I did the following tests (logs attached):
narrow20.log Wide neg. disabled, 20 MB/s (all targets)
narrow10.log Wide neg. disabled, 10 MB/s (all targets)
narrow5.log Wide neg. disabled, 5 MB/s (all targets)
wide40dlt10.log Wide neg. enabled, 40 MB/s, except tgt#5 (narrow, 10 MB/s)
wide40.log Wide neg. enabled, 40 MB/s (all targets)
wide40termOFF.log Like wide40, but setting term. to "High OFF/Low OFF"
All tests but the last one were performed with the other termination
setting: "High ON/Low Auto".
Notice the "narrow5" test: all targets are set to 5 MB/s (5 MHz sync).
Despite of that, the speed negotiated with the DLT unit is 10 MB/s! In
all tests a simple "mt status" hangs the SCSI bus or at least the DLT
unit, because the command "camcontrol reset 2" does not seem to have any
effect on the DLT.
Thank very much for your help, especially after it seems clear that ahc(4)
is not accountable for this problem :-)
Regards,
It really depends on how the MB is wired. Some MBs don't allow any
software control of the termination from the aic7xxx chip. Since I
haven't used your board, I can't say.
>> The dump is only useful with an understanding of the corresponding
>> SCSI Select settings. Please go into SCSI select and set the transfer
>> rate from fastest to slowest across the SCSI IDs. This will provide
>> a better understanding of how this BIOS is setting the SEEPROM. Also
>> include the SCSI BIOS version for this controller.
>
>Well, I did the following tests (logs attached):
I'm on my way out of town so I will not be able to look at these until
next Monday. In the mean time, can you send me one last log with each
of the 16 devices set to a different transfer rate. It is much easier
to look at a single dump that shows all possible speeds (highest to lowest),
then to piece together 5 different logs that don't cover all of the
possible settings.
According to the motherboard's manual, the termination is controlled by
software. However, there is also a jumper onboard labeled "Autoterm".
I think that this jumper was removed on later revisions of the motherboard
(Iwill PIILS).
> I'm on my way out of town so I will not be able to look at these until
> next Monday. In the mean time, can you send me one last log with each
> of the 16 devices set to a different transfer rate. It is much easier
> to look at a single dump that shows all possible speeds (highest to lowest),
> then to piece together 5 different logs that don't cover all of the
> possible settings.
I thought that you also wanted to analyze the correlation between the
speed settings and the speed negotiated with the DLT. But if you are only
interested in the correlation between the SCSIselect settings and the
SEEPROM contents, then a single dump is easier indeed :-). Well, I
configured targets 0-7 narrow and 8-15 wide, in both cases from lowest
(async) to highest (20 MHz) speeds:
Serial EEPROM:
0xb0e5 0xb0e6 0xb0ec 0xb0ee 0x8629 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff 0xbfff
Serial EEPROM:
0xc394 0xc39c 0xc39a 0xc399 0xc398 0xc3da 0xc3d9 0xc3d8
0xc3b3 0xc3bc 0xc3ba 0xc3b9 0xc3b8 0xc3fa 0xc3f9 0xc3f8
0x18a6 0x1c5e 0x2807 0x10 0xffff 0xffff 0xffff 0xffff
0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0x991b
The SCSI BIOS version is 2.10. With respect to termination settings, the
only difference between the two possible choices ("High ON/Low Auto" and
"High OFF/Low OFF" is at row 3, column 2 (2nd block): 0x1c5e and 0x1c5a
respectively.
I attached the CD-ROM and CD-RW drives again to this damn SCSI bus. This
is the bus arrangement now (and what I originally intended):
ext. SCSI cable 50-way flat cable
active -- DLT 4000 --------------- micro SCSI ----------------- 50-pin MB
term. (centronics) connector connector
|
AIC7880
(High ON/Low Auto)
|
68-way flat cable 68-way flat cable |
CD-RW ----------------- CD-ROM ----------------- 68 pin MB
(term'd) connector
Both the CD-ROM and the CD-RW drives are connected using wide-to-narrow
connector adapters (I also tried to connect both drives using the 50-way
narrow cable and nothing changed). And this is what I get after setting
all the SCSIselect settings to their default values:
sa0 at ahc2 bus 0 target 5 lun 0
sa0: <Quantum DLT4000 D782> Removable Sequential Access SCSI-2 device
sa0: 5.813MB/s transfers (5.813MHz, offset 15) <--- should be 10 MHz
cd0 at ahc2 bus 0 target 3 lun 0
cd0: <PLEXTOR CD-ROM PX-40TS 1.11> Removable CD-ROM SCSI-2 device
cd0: 5.813MB/s transfers (5.813MHz, offset 15) <--- should be 20 MHz
cd1 at ahc2 bus 0 target 4 lun 0
cd1: <PLEXTOR CD-R PX-W1210S 1.01> Removable CD-ROM SCSI-2 device
cd1: 5.000MB/s transfers (5.000MHz, offset 15) <--- should be 20 MHz
Data transfers do not work, of course :-(
One more question: why a simple command such as "mt status" never
timeouts? It just hangs forever (or perhaps the default timeout is very
long). Actually, any try to transfer anything through that SCSI bus gets
blocked. Even a "camcontrol reset 2:[345]" gets blocked (though a
"camcontrol reset 2" works).
I also tried "camcontrol negotiate 2:3 -R 20 -a" (for example), and it
negotiates 20 Mbps/20 MHz (as reported by "camcontrol inquiry 2:3"). I
don't know if this means anything.
Thank you very much for your support and patience ;-)
Regards,
JMA
--
****** Jose M. Alcaide // jo...@we.lc.ehu.es // jm...@FreeBSD.org ******
** "Beware of Programmers who carry screwdrivers" -- Leonard Brandwein **
To Unsubscribe: send mail to majo...@FreeBSD.org