From owner-freebsd-hackers Sat Mar 11 22:35:38 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id WAA08063 for hackers-outgoing; Sat, 11 Mar 1995 22:35:38 -0800 Received: from gndrsh.aac.dev.com (gndrsh.aac.dev.com [198.145.92.241]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id WAA08057 for ; Sat, 11 Mar 1995 22:35:35 -0800 Received: (from rgrimes@localhost) by gndrsh.aac.dev.com (8.6.8/8.6.6) id WAA05060; Sat, 11 Mar 1995 22:35:14 -0800 From: "Rodney W. Grimes" Message-Id: <199503120635.WAA05060@gndrsh.aac.dev.com> Subject: Re: configuring 2 U24F cards (fix--please commit) To: steve2@genesis.tiac.net (Steve Gerakines) Date: Sat, 11 Mar 1995 22:35:13 -0800 (PST) Cc: freebsd-hackers@FreeBSD.org In-Reply-To: <199503120731.XAA22108@genesis.tiac.net> from "Steve Gerakines" at Mar 11, 95 11:31:24 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Content-Length: 1536 Sender: hackers-owner@FreeBSD.org Precedence: bulk > > > Has anybody ever tried to use 2 (or more) Ultrastore U24F EISA scsi cards > > in one system? If so, how does the kernel config file look like? > > Problem is because the driver is scanning all slots. If there was one > set of code scanning the EISA slots this wouldn't be a problem. The > following patch should correct it. If someone could commit this for > me that would be great. Julian Elischer is working on code EISA code that moves this stuff out of the drivers. I would rather have the patch I submitted tested by the user then I will commit it (it uses the same scheme that aha1742 uses to make sure we only go over the slots one time, it also fixes a few other small nits like 2 constant 15's that should really be EISA_MAX_SLOT). > > - Steve > steve2@genesis.tiac.net > ---- 8< 8< 8< ---- > *** ultra14f.c.old Fri Jan 6 23:25:46 1995 > --- ultra14f.c Sat Mar 11 23:22:19 1995 > *************** > *** 960,965 **** > --- 960,973 ---- > ub->abort_ack = U24_ABORT_ACK; > ub->icm_ack = U24_ICM_ACK; > > + /* > + * Ignore cards that have already been found. > + */ > + for (i = 0; i < NUHA; i++) > + if (uhadata[i] != NULL && uhadata[i]->baseport == port) > + break; > + if (i != NUHA) continue; > + > /* Make sure an EISA card is installed in this slot. */ > outb(ur->id, 0xff); > p0 = inb(ur->id); > ---- EOF EOF EOF ---- > -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Custom computers for FreeBSD