Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: msk(4) require to sync status buffer
KIYOHARA Takashi writes:
>
> Hi! all,
>
>
> I think that the processing of the status buffer of msk(4) is strange.
> It doesn't do at interrupt handling at all though it does pre-read-sync
> only first. I think that this cannot read a correct value with like CPU
> of writeback cache (not PC/AT).
Would something like this be responsible for msk0 not working
correctly after a cold boot? E.g. requiring a boot to Windows,
configuration of the nic, and then warm-boot to NetBSD, in order to
get the card to function properly?
Later...
Greg Oster
> ----Next_Part(Fri_Feb_22_22_09_46_2008_072)--
> Content-Type: Text/Plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline; filename="if_msk-dmasync.diff"
>
> Index: if_msk.c
> ===================================================================
> RCS file: /cvsroot/src/sys/dev/pci/if_msk.c,v
> retrieving revision 1.15
> diff -u -r1.15 if_msk.c
> --- if_msk.c 19 Jan 2008 22:10:18 -0000 1.15
> +++ if_msk.c 22 Feb 2008 12:52:24 -0000
> @@ -1877,6 +1877,8 @@
> BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
> cur_st = &sc->sk_status_ring[sc->sk_status_idx];
> }
> + /* Invalidate the status buffer that has already been cached */
> + MSK_CDSTSYNC(sc, sc->sk_status_idx, BUS_DMASYNC_PREREAD);
>
> if (status & SK_Y2_IMR_BMU) {
> CSR_WRITE_4(sc, SK_STAT_BMU_CSR, SK_STAT_BMU_IRQ_CLEAR);
>
> ----Next_Part(Fri_Feb_22_22_09_46_2008_072)----
Home |
Main Index |
Thread Index |
Old Index