summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-08-31 18:48:09 +0000
committeryongari <yongari@FreeBSD.org>2010-08-31 18:48:09 +0000
commit105474a3a4920b6a201844c0d9f12829a03b68fc (patch)
tree301eb65f201b51b9f671e361ff020c9748e4f56b /sys/dev/bge
parent642b72c1ba89d2df7d6e91c439cf81c68cfc00d4 (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/dev/bge/if_bgereg.h8
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
/*
OpenPOWER on IntegriCloud