summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/sbus
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sparc64/sbus')
-rw-r--r--sys/sparc64/sbus/sbus.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/sys/sparc64/sbus/sbus.c b/sys/sparc64/sbus/sbus.c
index 8825630..593fda6 100644
--- a/sys/sparc64/sbus/sbus.c
+++ b/sys/sparc64/sbus/sbus.c
@@ -297,7 +297,6 @@ sbus_probe(device_t dev)
bus_size_t size;
char *name, *cname, *t;
phandle_t child, node = nexus_get_node(dev);
- u_long da;
u_int64_t mr;
int intr, clock, rid, vec, i;
@@ -421,7 +420,12 @@ sbus_probe(device_t dev)
panic("sbus_probe: couldn't malloc iommu name");
snprintf(name, 32, "%s dvma", device_get_name(dev));
- iommu_init(name, &sc->sc_is, 0, -1);
+ /*
+ * Note: the SBus IOMMU ignores the high bits of an address, so a NULL
+ * DMA pointer will be translated by the first page of the IOTSB.
+ * To detect bugs we'll allocate and ignore the first entry.
+ */
+ iommu_init(name, &sc->sc_is, 0, -1, 1);
/* Enable the over-temperature and power-fail intrrupts. */
rid = 0;
@@ -446,18 +450,6 @@ sbus_probe(device_t dev)
/* Initialize the counter-timer. */
sparc64_counter_init(sc->sc_bustag, sc->sc_bushandle, SBR_TC0);
-#ifdef INVARIANTS
- da = sc->sc_is.is_dvmabase / IO_PAGE_SIZE;
- /*
- * Note: the SBUS IOMMU ignores the high bits of an address, so a NULL
- * DMA pointer will be translated by the first page of the IOTSB.
- * To detect bugs we'll allocate and ignore the first entry.
- */
- if (rman_reserve_resource(&sc->sc_is.is_dvma_rman, da, da, 1, 0,
- NULL) == NULL)
- panic("sbus_probe: can't toss first dvma page");
-#endif /* INVARIANTS */
-
/*
* Loop through ROM children, fixing any relative addresses
* and then configuring each device.
OpenPOWER on IntegriCloud