Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jun 1998 08:39:54 -0700 (PDT)
From:      jose@we.lc.ehu.es
To:        freebsd-gnats-submit@FreeBSD.ORG
Subject:   kern/6966: AHC driver fails to read SEEPROM on Iwill PIILS mb (AIC7880 embedded)
Message-ID:  <199806161539.IAA27618@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         6966
>Category:       kern
>Synopsis:       AHC driver fails to read SEEPROM on Iwill PIILS mb (AIC7880 embedded)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 16 08:40:01 PDT 1998
>Last-Modified:
>Originator:     Jose M. Alcaide
>Organization:
Univ. del Pais Vasco - Dept. Electronica
>Release:        2.2.6-STABLE (980612)
>Environment:
FreeBSD defiant.we.lc.ehu.es 2.2.6-STABLE FreeBSD 2.2.6-STABLE #0: Fri Jun 12 14:10:09 CEST 1998     jose@defiant.we.lc.ehu.es:/usr/src/sys/compile/DEFIANT  i386

>Description:
When the AHC driver tries to read the serial EEPROM at startup,
the operation fails with a "checksum error". The system is based
on an Iwill PIILS mb, which has the AIC7880 controller onboard.

The source of the problem is in sys/pci/aic7870.c: the SEEPROM
type (93c46, c56, c66) is determined from the controller chip
type. The Adaptec 2940UW uses the AIC7880 and the 93c46 SEEPROM.
However, this is not the case for the Iwill PIILS mb (and perhaps
other motherboards with embedded SCSI). The PIILS uses a 93c56
SEEPROM, so that AHC fails when trying to read a 93c46.

I have assigned a "serious" severity to this problem because
the AHC driver uses the BIOS defaults when it cannot read the
SEEPROM, and it just works. However, some features (i.e. Ultra
speed) are disabled.
>How-To-Repeat:
boot -v on any Iwill PIILS-based system.

>Fix:
Modify sys/pci/aic7870.c for not associating the SEEPROM type to the
controller chip type. Instead, if the read of a 93c46 fails, then
it should try to read a 93c56 or 93c66.

I have patched aic7870.c, forcing a 93c56 SEEPROM type and it
works fine. However, this is not a general solution; it's only
a workaround for my system.
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199806161539.IAA27618>