Date: Mon, 12 Mar 2001 13:51:44 -0700 From: "Justin T. Gibbs" <gibbs@scsiguy.com> To: Alexander Leidinger <Alexander@leidinger.net> Cc: current@freebsd.org Subject: Re: aic7880 prints some timeouts after recent commit (yesterday) Message-ID: <200103122051.f2CKpis38370@aslan.scsiguy.com> In-Reply-To: Your message of "Mon, 12 Mar 2001 15:44:36 %2B0100." <200103121444.f2CEicK04384@Magelan.Leidinger.net>
next in thread | previous in thread | raw e-mail | index | archive | help
>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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103122051.f2CKpis38370>
