Subject: Re: kern/10622: fxp driver has problem on DMA processing?
To: None <gnats-bugs@gnats.netbsd.org>
From: Takahiro Kambe <taca@sky.yamashina.kyoto.jp>
List: netbsd-bugs
Date: 07/20/2000 00:20:21
Oh!

In message <200007172225.e6HMPHh02883@edge.sky.yamashina.kyoto.jp>
	on Tue, 18 Jul 2000 07:25:17 +0900 (JST),
	Takahiro Kambe <taca@sky.yamashina.kyoto.jp> wrote:
> 	2. Changing i82557's PCI mapping as bellow:
> 	   This dosen't imporve anything.
> 
> --- sys/dev/ic/i82557.c.orig	Wed Jul 12 00:09:14 2000
> +++ sys/dev/ic/i82557.c	Wed Jul 12 00:20:11 2000
> @@ -998,6 +998,9 @@
>  
>   do_transmit:
>  		if (statack & FXP_SCB_STATACK_RNR) {
> +			fxp_scb_wait(sc);
> +			CSR_WRITE_1(sc, FXP_CSR_SCB_COMMAND,
> +			    FXP_SCB_COMMAND_RU_ABORT);
>  			rxmap = M_GETCTX(sc->sc_rxq.ifq_head, bus_dmamap_t);
>  			fxp_scb_wait(sc);
>  			CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL,
Obviously, this patch is the same as 3.  Correct one is bellow:

--- sys/dev/pci/if_fxp_pci.c.orig	Thu Jul 20 00:18:44 2000
+++ sys/dev/pci/if_fxp_pci.c	Thu Jul 20 00:19:37 2000
@@ -288,7 +288,7 @@
 	    pci_mapreg_info(pa->pa_pc, pa->pa_tag, FXP_PCI_MMBA,
 	    PCI_MAPREG_TYPE_MEM|PCI_MAPREG_MEM_TYPE_32BIT,
 	    &addr, &size, &flags) == 0) {
-		flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+		flags &= ~(BUS_SPACE_MAP_CACHEABLE | BUS_SPACE_MAP_PREFETCHABLE);
 		if (bus_space_map(memt, addr, size, flags, &memh) == 0)
 			memh_valid = 1;
 	}


--
Takahiro Kambe <taca@sky.yamashina.kyoto.jp>