From owner-freebsd-current Sat Dec 19 20:29:10 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id UAA01681 for freebsd-current-outgoing; Sat, 19 Dec 1998 20:29:10 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from cs.rice.edu (cs.rice.edu [128.42.1.30]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id UAA01676 for ; Sat, 19 Dec 1998 20:29:09 -0800 (PST) (envelope-from alc@cs.rice.edu) Received: from nonpc.cs.rice.edu (nonpc.cs.rice.edu [128.42.1.219]) by cs.rice.edu (8.9.0/8.9.0) with ESMTP id WAA05413; Sat, 19 Dec 1998 22:29:07 -0600 (CST) Received: (from alc@localhost) by nonpc.cs.rice.edu (8.8.8/8.7.3) id WAA06325; Sat, 19 Dec 1998 22:29:06 -0600 (CST) Message-ID: <19981219222906.A6315@cs.rice.edu> Date: Sat, 19 Dec 1998 22:29:06 -0600 From: Alan Cox To: current@FreeBSD.ORG Cc: lcremean@tidalwave.net Subject: Re: cvs commit: src/sys/pci pcisupport.c Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.93.2i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > I've been poking around ide_pci.c, and it seems that not having explicit > Acer Aladdin support in there not only screws with UDMA support, it also > keeps the second channel from working correctly. This chipset fsr has its > BMISTA_SIMPLEX flag set, and ide_pci.c is seeing this and assuming (wrongly) > that the Aladdin IDE controller is single-channel. (Yes, it says it's just > disabling DMA, but the code actually disables _everything_ on the second > channel since wd.c uses ide_pci.c to probe for devices. It'd probably be a > good idea to not check for SIMPLEX anymore.) Try following patch Index: /usr/src/sys/i386/isa/wd.c =================================================================== RCS file: /home/ncvs/src/sys/i386/isa/wd.c,v retrieving revision 1.181 diff -c -r1.181 wd.c *** wd.c 1998/12/15 09:16:57 1.181 --- wd.c 1998/12/16 08:01:53 *************** *** 313,320 **** interface = du->dk_ctrlr / 2; du->dk_interface = interface; #if !defined(DISABLE_PCI_IDE) && (NPCI > 0) ! if (wddma[interface].wdd_candma) { ! du->dk_dmacookie = wddma[interface].wdd_candma(dvp->id_iobase, du->dk_ctrlr); du->dk_port = dvp->id_iobase; du->dk_altport = wddma[interface].wdd_altiobase(du->dk_dmacookie); } else { --- 313,321 ---- interface = du->dk_ctrlr / 2; du->dk_interface = interface; #if !defined(DISABLE_PCI_IDE) && (NPCI > 0) ! if ((wddma[interface].wdd_candma != NULL) && ! ((du->dk_dmacookie = wddma[interface].wdd_candma(dvp->id_iobase, ! du->dk_ctrlr)) != NULL)) { du->dk_port = dvp->id_iobase; du->dk_altport = wddma[interface].wdd_altiobase(du->dk_dmacookie); } else { DMA will still be limited to devices on wdc0, but at least the devices attached to wdc1 will be detected (and accessible). Alan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message