Subject: Re: NetBSD 1.2/i386 refusing to recognize Adaptec 2940U ?? (fixed now???)
To: Jonathan Marsden <Jonathan@xc.org>
From: David Brownlee <david@mono.org>
List: netbsd-help
Date: 02/14/1997 13:49:53
I beleive support for recognising 2940U was added to NetBSD soon
after 1.2 was released - you can probably check directly by
looking at the relevant files in:
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/
(or a mirror like
ftp://ftp.southern.com/pub/NetBSD/NetBSD-current/src/sys/)
David/abs david@{mono.org,southern.com,mhm-internet.com}
Microsoft: Asks you where you want to go. NetBSD gets you there.
System Manager: Southern Studios Ltd, PO Box 59, London N22 1AR.
System Admin: MHM Internet, 14 Barley Mow Passage, Chiswick, London W4 4PH.
SysOP: Monochrome, Largest UK Internet BBS - 'telnet mono.org'.
On Thu, 13 Feb 1997, Jonathan Marsden wrote:
> I've successfully set up several NetBSD machines that use Adaptec
> 2940* controllers. But this one was defying me.
>
> Problem: NetBSD 1.2/i386 refuses to recognize Adaptec 2940U controller card
>
> Machine: Dell Dimension P166v, 32MB RAM, 3.2GB IBM ATA2 disk, ATAPI CDROM, 3C590 NIC.
>
> Symptom: dmesg output shows only:
>
> ...
> vendor 0x9004 product 0x6178 (class mass storage, subclass SCSI, revision 0x01) at pci0 dev 13 function 0 not configured
>
> as extra output when the 2940U is installed.
>
> I note that the vendor and product ID string looked for in
> /usr/src/sys/dev/pci/ahc_pci.c is:
>
> #define PCI_DEVICE_ID_ADAPTEC_2940U 0x81789004ul
>
> I note product id 0x8178, not 0x6178 which is what the card is returning.
>
> Diagnosis: Card is returning a product ID unknown to NetBSD 1.2.
>
> Solution: Hack /usr/src/sys/dev/pci/ahc_pci.c to know about this card
> (context diff enclosed below).
>
> Result:
>
> ahc1 at pci0 dev 13 function 0
> ahc1: interrupting at irq 11
> ahc1: Reading SEEPROM...done.
> ahc1: aic7880 Single Channel, SCSI Id=7, 3 SCBs
> ahc1: Reseting Channel A
> ahc1: Downloading Sequencer Program...Done
> scsibus0 at ahc1
> ep0 at pci0 dev 15 function 0: 3Com 3C590 Ethernet
> ep0: aui/bnc/utp address 00:60:97:61:d4:1f
> ep0: shifting address bits by 2
> ep0: interrupting at irq 10
> biomask c840 netmask cc40 ttymask dcd2
> changing root device to wd0a
>
> Looks good so far!
>
> Questions:
>
> Q1: Do I have a bad 2940U? Or just an OEM version that NetBSD 1.2 won't recognize?
>
> Q2: What regression tests can I run to check this *really* works OK?
>
> Q3: How should I submit this patch to the NetBSD developers?
>
> Thanks,
>
> Jonathan (who just did his first ever kernel hack <grin>)
> --
> Jonathan Marsden | Internet: jonathan@xc.org | Making electronic
> 1849 N. Wabash Ave.| Phone: +1 (909) 794 1151 | communications work
> Redlands, CA 92374 | FAX: +1 (909) 794 3016 | reliably for Christian
> USA | http://www.xc.org/jonathan | missions worldwide
> ------------------------------------------------------------------------
> *** ahc_pci.c.orig Wed Jul 17 17:41:19 1996
> --- ahc_pci.c Thu Feb 13 09:27:34 1997
> ***************
> *** 83,88 ****
> --- 83,89 ----
> #define PCI_DEVICE_ID_ADAPTEC_3940U 0x82789004ul
> #define PCI_DEVICE_ID_ADAPTEC_2944U 0x84789004ul
> #define PCI_DEVICE_ID_ADAPTEC_2940U 0x81789004ul
> + #define PCI_DEVICE_ID_OEM_2940U 0x61789004ul
> #define PCI_DEVICE_ID_ADAPTEC_3940 0x72789004ul
> #define PCI_DEVICE_ID_ADAPTEC_2944 0x74789004ul
> #define PCI_DEVICE_ID_ADAPTEC_2940 0x71789004ul
> ***************
> *** 212,217 ****
> --- 213,221 ----
> case PCI_DEVICE_ID_ADAPTEC_2940U:
> return ("Adaptec 2940 Ultra SCSI host adapter");
> break;
> + case PCI_DEVICE_ID_OEM_2940U:
> + return ("OEM AHA 2940 Ultra SCSI host adapter");
> + break;
> case PCI_DEVICE_ID_ADAPTEC_2944:
> return ("Adaptec 2944 SCSI host adapter");
> break;
> ***************
> *** 260,265 ****
> --- 264,270 ----
> case PCI_DEVICE_ID_ADAPTEC_3940U:
> case PCI_DEVICE_ID_ADAPTEC_2944U:
> case PCI_DEVICE_ID_ADAPTEC_2940U:
> + case PCI_DEVICE_ID_OEM_2940U:
> case PCI_DEVICE_ID_ADAPTEC_3940:
> case PCI_DEVICE_ID_ADAPTEC_2944:
> case PCI_DEVICE_ID_ADAPTEC_2940:
> ***************
> *** 341,346 ****
> --- 346,352 ----
> break;
> case PCI_DEVICE_ID_ADAPTEC_2944U:
> case PCI_DEVICE_ID_ADAPTEC_2940U:
> + case PCI_DEVICE_ID_OEM_2940U:
> ahc_t = AHC_294U;
> break;
> case PCI_DEVICE_ID_ADAPTEC_2944:
> ------------------------------------------------------------------------
>