Subject: Re: Adaptec 2940 vendor/product code 0x9004/0x8178
To: Neil J. McRae <neil@domino.org>
From: None <Chris_G_Demetriou@NIAGARA.NECTAR.CS.CMU.EDU>
List: port-i386
Date: 01/30/1996 19:45:56
> Nope, we do this on a couple of machines and haven't had any problems,
> Charles fancy fixing this one ? :-)
> 
> > I plan to run NetBSD on a box with two Adaptec 2940 SCSI controllers.
> > The controllers I have are detected by the NetBSD/i386-1.1 kernel
> > as having an unrecognised vendor/product code 0x9004/0x8178, whereas
> > the kernel sources say:
> > 
> > aic7870.c:#define PCI_DEVICE_ID_ADAPTEC_2940    0x71789004ul
> > 
> > Notice the difference between 8178 and 7178.
> > 
> > Am I likely to run into trouble if I just teach the kernel to
> > treat device code 8178 identically to 7178?

I looked at the FreeBSD driver (which seems more up-to-date than the
NetBSD one), and the following appears to be the situation:


The 2940 does have the 0x7178 device ID.  The device with id 0x8178 is
the 2940U.

The 1.1 driver included support for the 2940, not the 2940U; the
#define in the 1.1 driver is correct.

The -current driver matches the 2940 and 2940U, and handles them the
same way.  This may or may not be correct, but i can't find serious
differences in the way the boards are handled in the FreeBSD driver
(though, granted, i didn't look too hard).


Therefore:

(1) If you're updating the 1.1 code to accept the 2940U, you should do
    so in such a way that it also accepts the 2940, i.e. accept
    devices with an id of 0x7178 and 0x8178, and

(2) It looks like the NetBSD driver should really be sync'd with the
    FreeBSD one.  Volunteers to do it?


I've updated the 'pcidevs' list to include all of the PCI devices
named in the FreeBSD driver.  (That adds device IDs for the
3940 Ultra, 2944 Ultra, 3940, 2944, and AIC-7880, and cleans up some
of the names of the others.)


chris