Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

weird problems with on-board Adaptec 7880

5 views
Skip to first unread message

Jose M. Alcaide

unread,
Nov 19, 2001, 12:13:42 PM11/19/01
to
I have a system based on a three-year-old Iwill PIILS motherboard. This
mobo includes an AIC7880 controller, which supplies a Ultra Wide SCSI
channel. There are two SCSI connectors (68-pin wide and 50-pin narrow) on
the motherboard.

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

Justin T. Gibbs

unread,
Nov 19, 2001, 12:48:01 PM11/19/01
to
>I have a system based on a three-year-old Iwill PIILS motherboard. This
>mobo includes an AIC7880 controller, which supplies a Ultra Wide SCSI
>channel. There are two SCSI connectors (68-pin wide and 50-pin narrow) on
>the motherboard.
>
>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 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

Jose M. Alcaide

unread,
Nov 19, 2001, 1:13:36 PM11/19/01
to
On Mon, Nov 19, 2001 at 10:47:36AM -0700, Justin T. Gibbs wrote:
> >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.

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,

Justin T. Gibbs

unread,
Nov 19, 2001, 5:09:06 PM11/19/01
to
>> Ensure the DLT does not have a jumper or dip switch for internal
>> termination.
>
>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 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

Jose M. Alcaide

unread,
Nov 20, 2001, 8:51:11 AM11/20/01
to
On Mon, Nov 19, 2001 at 03:08:48PM -0700, Justin T. Gibbs wrote:
> 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.

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,

narrow20.log
narrow10.log
narrow5.log
wide40dlt10.log
wide40.log
wide40termOFF.log

Justin T. Gibbs

unread,
Nov 20, 2001, 11:39:09 AM11/20/01
to
>On Mon, Nov 19, 2001 at 03:08:48PM -0700, Justin T. Gibbs wrote:
>> 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.
>
>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?

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.

Jose M. Alcaide

unread,
Nov 22, 2001, 12:32:03 PM11/22/01
to
On Tue, Nov 20, 2001 at 09:38:36AM -0700, Justin T. Gibbs wrote:
> 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.

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

0 new messages