- make DMA descriptor members volatile
- set VR_RXSTAT_OWN after all other descriptor data is set With these changes, vr_init() seems to initialize the vr chip stuck on RX properly.
This commit is contained in:
parent
e1e6c59ee6
commit
06503d5611
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_vr.c,v 1.78 2006/10/20 10:31:06 scw Exp $ */
|
||||
/* $NetBSD: if_vr.c,v 1.79 2006/11/02 10:44:30 tsutsui Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
|
||||
|
@ -104,7 +104,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: if_vr.c,v 1.78 2006/10/20 10:31:06 scw Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: if_vr.c,v 1.79 2006/11/02 10:44:30 tsutsui Exp $");
|
||||
|
||||
#include "rnd.h"
|
||||
|
||||
|
@ -281,11 +281,11 @@ do { \
|
|||
struct vr_descsoft *__ds = VR_DSRX((sc), (i)); \
|
||||
\
|
||||
__d->vr_next = htole32(VR_CDRXADDR((sc), VR_NEXTRX((i)))); \
|
||||
__d->vr_status = htole32(VR_RXSTAT_FIRSTFRAG | \
|
||||
VR_RXSTAT_LASTFRAG | VR_RXSTAT_OWN); \
|
||||
__d->vr_data = htole32(__ds->ds_dmamap->dm_segs[0].ds_addr); \
|
||||
__d->vr_ctl = htole32(VR_RXCTL_CHAIN | VR_RXCTL_RX_INTR | \
|
||||
((MCLBYTES - 1) & VR_RXCTL_BUFLEN)); \
|
||||
__d->vr_status = htole32(VR_RXSTAT_FIRSTFRAG | \
|
||||
VR_RXSTAT_LASTFRAG | VR_RXSTAT_OWN); \
|
||||
VR_CDRXSYNC((sc), (i), BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); \
|
||||
} while (/* CONSTCOND */ 0)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_vrreg.h,v 1.13 2005/12/11 12:22:50 christos Exp $ */
|
||||
/* $NetBSD: if_vrreg.h,v 1.14 2006/11/02 10:44:30 tsutsui Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997, 1998
|
||||
|
@ -328,10 +328,10 @@
|
|||
*/
|
||||
|
||||
struct vr_desc {
|
||||
u_int32_t vr_status;
|
||||
u_int32_t vr_ctl;
|
||||
u_int32_t vr_ptr1;
|
||||
u_int32_t vr_ptr2;
|
||||
volatile u_int32_t vr_status;
|
||||
volatile u_int32_t vr_ctl;
|
||||
volatile u_int32_t vr_ptr1;
|
||||
volatile u_int32_t vr_ptr2;
|
||||
};
|
||||
|
||||
#define vr_data vr_ptr1
|
||||
|
|
Loading…
Reference in New Issue