diff options
author | yongari <yongari@FreeBSD.org> | 2010-08-31 18:48:09 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2010-08-31 18:48:09 +0000 |
commit | 105474a3a4920b6a201844c0d9f12829a03b68fc (patch) | |
tree | 301eb65f201b51b9f671e361ff020c9748e4f56b /sys/dev/bge | |
parent | 642b72c1ba89d2df7d6e91c439cf81c68cfc00d4 (diff) | |
download | FreeBSD-src-105474a3a4920b6a201844c0d9f12829a03b68fc.zip FreeBSD-src-105474a3a4920b6a201844c0d9f12829a03b68fc.tar.gz |
Handle PAE case correctly. You cannot effectively specify a 4GB
boundary in PAE case so use a 2GB boundary for PAE as suggested by
jhb.
Pointed out by: jhb
Reviewed by: jhb
Diffstat (limited to 'sys/dev/bge')
-rw-r--r-- | sys/dev/bge/if_bge.c | 2 | ||||
-rw-r--r-- | sys/dev/bge/if_bgereg.h | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c index 48f1d45..042bd1e 100644 --- a/sys/dev/bge/if_bge.c +++ b/sys/dev/bge/if_bge.c @@ -2272,7 +2272,7 @@ bge_dma_alloc(struct bge_softc *sc) /* Create parent tag for buffers. */ boundary = 0; if ((sc->bge_flags & BGE_FLAG_4G_BNDRY_BUG) != 0) - boundary = BGE_DMA_4G_BNDRY; + boundary = BGE_DMA_BNDRY; error = bus_dma_tag_create(bus_get_dma_tag(sc->bge_dev), 1, boundary, lowaddr, BUS_SPACE_MAXADDR, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT, diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h index 01e4a6b..d17d56d 100644 --- a/sys/dev/bge/if_bgereg.h +++ b/sys/dev/bge/if_bgereg.h @@ -2487,10 +2487,14 @@ struct bge_gib { #define BGE_DMA_MAXADDR 0xFFFFFFFFFF #endif +#ifdef PAE +#define BGE_DMA_BNDRY 0x80000000 +#else #if (BUS_SPACE_MAXADDR > 0xFFFFFFFF) -#define BGE_DMA_4G_BNDRY 0x100000000 +#define BGE_DMA_BNDRY 0x100000000 #else -#define BGE_DMA_4G_BNDRY 0 +#define BGE_DMA_BNDRY 0 +#endif #endif /* |