diff options
author | 2021-02-28 21:10:22 +0000 | |
---|---|---|
committer | 2021-02-28 21:10:22 +0000 | |
commit | 1d276ec2d0c11592a5e08931cad92c4cdd9d06d4 (patch) | |
tree | f69cc0c6de8655cc340e844ab050a056251916a7 | |
parent | Implement IOMMU OFW API for on-SoC/non-PCI devices. (diff) | |
download | wireguard-openbsd-1d276ec2d0c11592a5e08931cad92c4cdd9d06d4.tar.xz wireguard-openbsd-1d276ec2d0c11592a5e08931cad92c4cdd9d06d4.zip |
Issue call to IOMMU OFW API to collect an IOMMU-sprinkled DMA tag.
ok kettenis@
-rw-r--r-- | sys/arch/arm64/dev/mainbus.c | 5 | ||||
-rw-r--r-- | sys/arch/arm64/dev/simplebus.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sys/arch/arm64/dev/mainbus.c b/sys/arch/arm64/dev/mainbus.c index 2a257ac6300..b40c2169da8 100644 --- a/sys/arch/arm64/dev/mainbus.c +++ b/sys/arch/arm64/dev/mainbus.c @@ -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) diff --git a/sys/arch/arm64/dev/simplebus.c b/sys/arch/arm64/dev/simplebus.c index 1777fa7665f..5ff303dcd72 100644 --- a/sys/arch/arm64/dev/simplebus.c +++ b/sys/arch/arm64/dev/simplebus.c @@ -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> * @@ -21,8 +21,10 @@ #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); |