Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148459158
D19867.id56379.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D19867.id56379.diff
View Options
Index: head/sys/dev/bge/if_bgereg.h
===================================================================
--- head/sys/dev/bge/if_bgereg.h
+++ head/sys/dev/bge/if_bgereg.h
@@ -3067,3 +3067,11 @@
#define BGE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->bge_mtx, MA_OWNED)
#define BGE_UNLOCK(_sc) mtx_unlock(&(_sc)->bge_mtx)
#define BGE_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->bge_mtx)
+
+#ifdef BUS_SPACE_MAXADDR
+#if (BUS_SPACE_MAXADDR > 0xFFFFFFFF)
+#define BGE_DMA_BOUNDARY (0x100000000)
+#else
+#define BGE_DMA_BOUNDARY 0
+#endif
+#endif
Index: head/sys/dev/pci/pci.c
===================================================================
--- head/sys/dev/pci/pci.c
+++ head/sys/dev/pci/pci.c
@@ -4343,9 +4343,6 @@
{
struct pci_softc *sc;
int busno, domain;
-#ifdef PCI_DMA_BOUNDARY
- int error, tag_valid;
-#endif
#ifdef PCI_RES_BUS
int rid;
#endif
@@ -4365,23 +4362,7 @@
if (bootverbose)
device_printf(dev, "domain=%d, physical bus=%d\n",
domain, busno);
-#ifdef PCI_DMA_BOUNDARY
- tag_valid = 0;
- if (device_get_devclass(device_get_parent(device_get_parent(dev))) !=
- devclass_find("pci")) {
- error = bus_dma_tag_create(bus_get_dma_tag(dev), 1,
- PCI_DMA_BOUNDARY, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR,
- NULL, NULL, BUS_SPACE_MAXSIZE, BUS_SPACE_UNRESTRICTED,
- BUS_SPACE_MAXSIZE, 0, NULL, NULL, &sc->sc_dma_tag);
- if (error)
- device_printf(dev, "Failed to create DMA tag: %d\n",
- error);
- else
- tag_valid = 1;
- }
- if (!tag_valid)
-#endif
- sc->sc_dma_tag = bus_get_dma_tag(dev);
+ sc->sc_dma_tag = bus_get_dma_tag(dev);
return (0);
}
Index: head/sys/dev/pci/pcivar.h
===================================================================
--- head/sys/dev/pci/pcivar.h
+++ head/sys/dev/pci/pcivar.h
@@ -693,14 +693,6 @@
void pci_print_faulted_dev(void);
-#ifdef BUS_SPACE_MAXADDR
-#if (BUS_SPACE_MAXADDR > 0xFFFFFFFF)
-#define PCI_DMA_BOUNDARY 0x100000000
-#else
-#define PCI_DMA_BOUNDARY 0
-#endif
-#endif
-
#endif /* _SYS_BUS_H_ */
/*
Index: head/sys/dev/twa/tw_osl.h
===================================================================
--- head/sys/dev/twa/tw_osl.h
+++ head/sys/dev/twa/tw_osl.h
@@ -57,6 +57,12 @@
#define TW_OSLI_MAX_NUM_IOS (TW_OSLI_MAX_NUM_REQUESTS - 2)
#define TW_OSLI_MAX_NUM_AENS 0x100
+#ifdef PAE
+#define TW_OSLI_DMA_BOUNDARY (1u << 31)
+#else
+#define TW_OSLI_DMA_BOUNDARY ((bus_size_t)((uint64_t)1 << 32))
+#endif
+
/* Possible values of req->state. */
#define TW_OSLI_REQ_STATE_INIT 0x0 /* being initialized */
#define TW_OSLI_REQ_STATE_BUSY 0x1 /* submitted to CL */
Index: head/sys/dev/twa/tw_osl_freebsd.c
===================================================================
--- head/sys/dev/twa/tw_osl_freebsd.c
+++ head/sys/dev/twa/tw_osl_freebsd.c
@@ -551,7 +551,7 @@
/* Create the parent dma tag. */
if (bus_dma_tag_create(bus_get_dma_tag(sc->bus_dev), /* parent */
sc->alignment, /* alignment */
- 0, /* boundary */
+ TW_OSLI_DMA_BOUNDARY, /* boundary */
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
Index: head/sys/x86/iommu/intel_ctx.c
===================================================================
--- head/sys/x86/iommu/intel_ctx.c
+++ head/sys/x86/iommu/intel_ctx.c
@@ -130,7 +130,7 @@
maxaddr = MIN(ctx->domain->end, BUS_SPACE_MAXADDR);
ctx->ctx_tag.common.ref_count = 1; /* Prevent free */
ctx->ctx_tag.common.impl = &bus_dma_dmar_impl;
- ctx->ctx_tag.common.boundary = PCI_DMA_BOUNDARY;
+ ctx->ctx_tag.common.boundary = 0;
ctx->ctx_tag.common.lowaddr = maxaddr;
ctx->ctx_tag.common.highaddr = maxaddr;
ctx->ctx_tag.common.maxsize = maxaddr;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 19, 1:02 AM (5 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29936154
Default Alt Text
D19867.id56379.diff (3 KB)
Attached To
Mode
D19867: remove the 4GB boundary requirement on PCI DMA segments
Attached
Detach File
Event Timeline
Log In to Comment