From owner-freebsd-current Wed Jan 27 17:11:04 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id RAA12408 for freebsd-current-outgoing; Wed, 27 Jan 1999 17:11:04 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id RAA12403 for ; Wed, 27 Jan 1999 17:11:02 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.2/8.9.1) id RAA81035; Wed, 27 Jan 1999 17:11:02 -0800 (PST) (envelope-from dillon) Date: Wed, 27 Jan 1999 17:11:02 -0800 (PST) From: Matthew Dillon Message-Id: <199901280111.RAA81035@apollo.backplane.com> To: current@FreeBSD.ORG Subject: Hmmm.. more on the eis ahb bug References: <199901272244.OAA64912@apollo.backplane.com> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hmmm. Actually, this looks broken either way. It looks like it is trying to wait until the mbox is empty? But it breaks out of the loop if the mbox is busy or not-empty, from what I can tell. Could an Adaptec SCSI guru take a look at this code ? There's probably some poor sob running EISA who's scratching his head right now :-) -Matt static __inline void ahbqueuembox(struct ahb_softc *ahb, u_int32_t mboxval, u_int attn_code) { u_int loopmax = 300; while (--loopmax) { u_int status; status = ahb_inb(ahb, HOSTSTAT); if ((status & HOSTSTAT_MBOX_EMPTY|HOSTSTAT_BUSY) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ != HOSTSTAT_MBOX_EMPTY) break; DELAY(20); } if (loopmax == 0) panic("ahb%ld: adapter not taking commands\n", ahb->unit); ahb_outl(ahb, MBOXOUT0, mboxval); ahb_outb(ahb, ATTN, attn_code); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message