Issue call to IOMMU OFW API to collect an IOMMU-sprinkled DMA tag.
authorpatrick <patrick@openbsd.org>
Sun, 28 Feb 2021 21:10:22 +0000 (21:10 +0000)
committerpatrick <patrick@openbsd.org>
Sun, 28 Feb 2021 21:10:22 +0000 (21:10 +0000)
ok kettenis@

sys/arch/arm64/dev/mainbus.c
sys/arch/arm64/dev/simplebus.c

index 2a257ac..b40c216 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: mainbus.c,v 1.19 2020/08/26 03:29:05 visa Exp $ */
+/* $OpenBSD: mainbus.c,v 1.20 2021/02/28 21:10:22 patrick Exp $ */
 /*
  * Copyright (c) 2016 Patrick Wildt <patrick@blueri.se>
  * Copyright (c) 2017 Mark Kettenis <kettenis@openbsd.org>
@@ -25,6 +25,7 @@
 #include <machine/fdt.h>
 #include <dev/ofw/openfirm.h>
 #include <dev/ofw/fdt.h>
+#include <dev/ofw/ofw_misc.h>
 #include <dev/ofw/ofw_thermal.h>
 
 #include <arm64/arm64/arm64var.h>
@@ -267,6 +268,8 @@ mainbus_attach_node(struct device *self, int node, cfmatch_t submatch)
                fa.fa_dmat->_flags |= BUS_DMA_COHERENT;
        }
 
+       fa.fa_dmat = iommu_device_map(fa.fa_node, fa.fa_dmat);
+
        if (submatch == NULL && sc->sc_early == 0)
                print = mainbus_print;
        if (submatch == NULL)
index 1777fa7..5ff303d 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: simplebus.c,v 1.12 2020/11/19 17:42:59 kettenis Exp $ */
+/* $OpenBSD: simplebus.c,v 1.13 2021/02/28 21:10:22 patrick Exp $ */
 /*
  * Copyright (c) 2016 Patrick Wildt <patrick@blueri.se>
  *
 #include <sys/device.h>
 #include <sys/malloc.h>
 
+#include <machine/fdt.h>
 #include <dev/ofw/openfirm.h>
 #include <dev/ofw/fdt.h>
+#include <dev/ofw/ofw_misc.h>
 
 #include <arm64/fdt.h>
 #include <arm64/dev/simplebusvar.h>
@@ -252,6 +254,8 @@ simplebus_attach_node(struct device *self, int node)
                fa.fa_dmat->_flags |= BUS_DMA_COHERENT;
        }
 
+       fa.fa_dmat = iommu_device_map(fa.fa_node, fa.fa_dmat);
+
        child = config_found_sm(self, &fa, sc->sc_early ? NULL :
            simplebus_print, simplebus_submatch);