From owner-freebsd-current Mon Mar 12 12:51:54 2001 Delivered-To: freebsd-current@freebsd.org Received: from aslan.scsiguy.com (aslan.scsiguy.com [63.229.232.106]) by hub.freebsd.org (Postfix) with ESMTP id 84AC437B719 for ; Mon, 12 Mar 2001 12:51:49 -0800 (PST) (envelope-from gibbs@scsiguy.com) Received: from scsiguy.com (localhost [127.0.0.1]) by aslan.scsiguy.com (8.11.2/8.9.3) with ESMTP id f2CKpis38370; Mon, 12 Mar 2001 13:51:46 -0700 (MST) (envelope-from gibbs@scsiguy.com) Message-Id: <200103122051.f2CKpis38370@aslan.scsiguy.com> To: Alexander Leidinger Cc: current@freebsd.org Subject: Re: aic7880 prints some timeouts after recent commit (yesterday) In-Reply-To: Your message of "Mon, 12 Mar 2001 15:44:36 +0100." <200103121444.f2CEicK04384@Magelan.Leidinger.net> Date: Mon, 12 Mar 2001 13:51:44 -0700 From: "Justin T. Gibbs" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >Hi, > >dmesg and the output of "ident /sys/dev/aic7xxx/*" and pciconf is >attached (BTW: the -v options to pciconf isn't documented in the >synopsis section of the man page). > >Do you need more information, e.g. the output of a verbose boot? > >Bye, >Alexander. I wish I had a system that exhibited this problem. Unfortunately I don't, so it has been difficult to get the workaround for this particular hardware bug correct. Can you see if this patch works for you? -- Justin Index: aic7xxx.c =================================================================== RCS file: /usr/cvs/src/sys/dev/aic7xxx/aic7xxx.c,v retrieving revision 1.41.2.17 diff -c -r1.41.2.17 aic7xxx.c *** aic7xxx.c 2001/03/12 14:57:40 1.41.2.17 --- aic7xxx.c 2001/03/12 20:30:40 *************** *** 2006,2018 **** ahc_lookup_phase_entry(int phase) { struct ahc_phase_table_entry *entry; ! int i; /* * num_phases doesn't include the default entry which * will be returned if the phase doesn't match. */ ! for (i = 0, entry = ahc_phase_table; i < num_phases; i++) { if (phase == entry->phase) break; } --- 2006,2019 ---- ahc_lookup_phase_entry(int phase) { struct ahc_phase_table_entry *entry; ! struct ahc_phase_table_entry *last_entry; /* * num_phases doesn't include the default entry which * will be returned if the phase doesn't match. */ ! last_entry = &ahc_phase_table[num_phases]; ! for (entry = ahc_phase_table; entry <= last_entry; entry++) { if (phase == entry->phase) break; } Index: aic7xxx.seq =================================================================== RCS file: /usr/cvs/src/sys/dev/aic7xxx/aic7xxx.seq,v retrieving revision 1.94.2.11 diff -c -r1.94.2.11 aic7xxx.seq *** aic7xxx.seq 2001/03/12 14:57:43 1.94.2.11 --- aic7xxx.seq 2001/03/12 20:47:35 *************** *** 2076,2082 **** test DFSTATUS, HDONE jnz dma_scb_hang_dma_done; test DFSTATUS, HDONE jnz dma_scb_hang_dma_done; test DFSTATUS, HDONE jnz dma_scb_hang_dma_done; - test DFSTATUS, HDONE jnz dma_scb_hang_dma_done; /* * The PCI module no longer intends to perform * a PCI transaction and HDONE has not come true. --- 2076,2081 ---- *************** *** 2102,2107 **** --- 2101,2107 ---- */ not SINDEX; add A, 5, SINDEX; + cmp A, 4 je dma_finish; jmp dma_scb_hang_fifo; dma_scb_hang_dma_done: and DFCNTRL, ~HDMAEN; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message