/openbmc/linux/Documentation/devicetree/bindings/iommu/ |
H A D | qcom,iommu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/iommu/qcom,iommu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm Technologies legacy IOMMU implementations 10 - Konrad Dybcio <konrad.dybcio@linaro.org> 13 Qualcomm "B" family devices which are not compatible with arm-smmu have 14 a similar looking IOMMU, but without access to the global register space 16 to non-secure vs secure interrupt line. 21 - items: [all …]
|
H A D | sprd,iommu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/iommu/sprd,iommu.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Unisoc IOMMU and Multi-media MMU 11 - Chunyan Zhang <zhang.lyra@gmail.com> 16 - sprd,iommu-v1 18 "#iommu-cells": 21 Unisoc IOMMUs are all single-master IOMMU devices, therefore no 24 Documentation/devicetree/bindings/iommu/iommu.txt [all …]
|
H A D | arm,smmu.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only 3 --- 4 $id: http://devicetree.org/schemas/iommu/arm,smmu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Will Deacon <will@kernel.org> 11 - Robin Murphy <Robin.Murphy@arm.com> 23 pattern: "^iommu@[0-9a-f]*" 26 - description: Qcom SoCs implementing "arm,smmu-v2" 28 - enum: 29 - qcom,msm8996-smmu-v2 [all …]
|
/openbmc/linux/drivers/iommu/arm/arm-smmu/ |
H A D | qcom_iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * IOMMU API for QCOM secure IOMMUs. Somewhat based on arm-smmu.c 13 #include <linux/dma-mapping.h> 17 #include <linux/io-64-nonatomic-hi-lo.h> 18 #include <linux/io-pgtable.h> 19 #include <linux/iommu.h> 33 #include "arm-smmu.h" 47 /* IOMMU core code handle */ 48 struct iommu_device iommu; member 69 struct mutex init_mutex; /* Protects iommu pointer */ [all …]
|
/openbmc/linux/drivers/iommu/ |
H A D | mtk_iommu_v1.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * IOMMU API for MTK architected m4u v1 implementations 5 * Copyright (c) 2015-2016 MediaTek Inc. 8 * Based on driver/iommu/mtk_iommu.c 14 #include <linux/dma-mapping.h> 18 #include <linux/iommu.h> 29 #include <asm/dma-iommu.h> 30 #include <dt-bindings/memory/mtk-memory-port.h> 31 #include <dt-bindings/memory/mt2701-larb-port.h> 76 #define MT2701_M4U_TF_LARB(TF) (6 - (((TF) >> 13) & 0x7)) [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 # The IOVA library may also be used by non-IOMMU_API users 11 bool "IOMMU Hardware Support" 22 menu "Generic IOMMU Pagetable Support" 36 sizes at both stage-1 and stage-2, as well as address spaces 37 up to 48-bits in size. 43 Enable self-tests for LPAE page table allocator. This performs 44 a series of page-table consistency checks during boot. 53 Enable support for the ARM Short-descriptor pagetable format. 54 This supports 32-bit virtual and physical addresses mapped using [all …]
|
H A D | sprd-iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Unisoc IOMMU driver 11 #include <linux/dma-mapping.h> 13 #include <linux/iommu.h> 52 * struct sprd_iommu_device - high-level sprd IOMMU device representation, 55 * @ver: sprd IOMMU IP version 61 * @iommu: IOMMU core representation 62 * @group: IOMMU group 63 * @eb: gate clock which controls IOMMU access 72 struct iommu_device iommu; member [all …]
|
/openbmc/qemu/docs/specs/ |
H A D | riscv-iommu.rst | 1 .. _riscv-iommu: 3 RISC-V IOMMU support for RISC-V machines 6 QEMU implements a RISC-V IOMMU emulation based on the RISC-V IOMMU spec 9 The emulation includes a PCI reference device, riscv-iommu-pci, that QEMU 10 RISC-V boards can use. The 'virt' RISC-V machine is compatible with this 13 riscv-iommu-pci reference device 14 -------------------------------- 16 This device implements the RISC-V IOMMU emulation as recommended by the section 17 "Integrating an IOMMU as a PCIe device" of `iommu1.0`_: a PCI device with base 18 class 08h, sub-class 06h and programming interface 00h. [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/powerpc/fsl/ |
H A D | pamu.txt | 5 The PAMU is an I/O MMU that provides device-to-memory access control and 10 - compatible : <string> 11 First entry is a version-specific string, such as 12 "fsl,pamu-v1.0". The second is "fsl,pamu". 13 - ranges : <prop-encoded-array> 18 PAMU v1.0, on an SOC that has five PAMU devices, the size 20 - interrupts : <prop-encoded-array> 25 - #address-cells: <u32> 27 - #size-cells : <u32> 31 - reg : <prop-encoded-array> [all …]
|
H A D | raideng.txt | 3 RAID Engine nodes are defined to describe on-chip RAID accelerators. Each RAID 11 - compatible: Should contain "fsl,raideng-v1.0" as the value 15 - reg: offset and length of the register set for the device 16 - ranges: standard ranges property specifying the translation 22 compatible = "fsl,raideng-v1.0"; 23 #address-cells = <1>; 24 #size-cells = <1>; 30 There must be a sub-node for each job queue present in RAID Engine 31 This node must be a sub-node of the main RAID Engine node 33 - compatible: Should contain "fsl,raideng-v1.0-job-queue" as the value [all …]
|
/openbmc/linux/arch/arm64/boot/dts/arm/ |
H A D | juno-base.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 2 #include "juno-clocks.dtsi" 3 #include "juno-motherboard.dtsi" 11 compatible = "arm,armv7-timer-mem"; 13 clock-frequency = <50000000>; 14 #address-cells = <1>; 15 #size-cells = <1>; 19 frame-number = <1>; 31 #mbox-cells = <1>; 33 clock-names = "apb_pclk"; [all …]
|
/openbmc/linux/arch/powerpc/boot/dts/fsl/ |
H A D | p5020si-post.dtsi | 4 * Copyright 2011 - 2015 Freescale Semiconductor Inc. 36 compatible = "fsl,bman-fbpr"; 37 alloc-ranges = <0 0 0x10000 0>; 41 compatible = "fsl,qman-fqd"; 42 alloc-ranges = <0 0 0x10000 0>; 46 compatible = "fsl,qman-pfdr"; 47 alloc-ranges = <0 0 0x10000 0>; 51 compatible = "fsl,p5020-elbc", "fsl,elbc", "simple-bus"; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
H A D | p3041si-post.dtsi | 4 * Copyright 2011 - 2015 Freescale Semiconductor Inc. 36 compatible = "fsl,bman-fbpr"; 37 alloc-ranges = <0 0 0x10 0>; 41 compatible = "fsl,qman-fqd"; 42 alloc-ranges = <0 0 0x10 0>; 46 compatible = "fsl,qman-pfdr"; 47 alloc-ranges = <0 0 0x10 0>; 51 compatible = "fsl,p3041-elbc", "fsl,elbc", "simple-bus"; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
H A D | p2041si-post.dtsi | 4 * Copyright 2011 - 2015 Freescale Semiconductor Inc. 36 compatible = "fsl,bman-fbpr"; 37 alloc-ranges = <0 0 0x10 0>; 41 compatible = "fsl,qman-fqd"; 42 alloc-ranges = <0 0 0x10 0>; 46 compatible = "fsl,qman-pfdr"; 47 alloc-ranges = <0 0 0x10 0>; 51 compatible = "fsl,p2041-elbc", "fsl,elbc", "simple-bus"; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
H A D | p5040si-post.dtsi | 4 * Copyright 2012 - 2015 Freescale Semiconductor Inc. 36 compatible = "fsl,bman-fbpr"; 37 alloc-ranges = <0 0 0x10000 0>; 41 compatible = "fsl,qman-fqd"; 42 alloc-ranges = <0 0 0x10000 0>; 46 compatible = "fsl,qman-pfdr"; 47 alloc-ranges = <0 0 0x10000 0>; 51 compatible = "fsl,p5040-elbc", "fsl,elbc", "simple-bus"; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
H A D | p4080si-post.dtsi | 4 * Copyright 2011 - 2015 Freescale Semiconductor Inc. 36 compatible = "fsl,bman-fbpr"; 37 alloc-ranges = <0 0 0x10 0>; 41 compatible = "fsl,qman-fqd"; 42 alloc-ranges = <0 0 0x10 0>; 46 compatible = "fsl,qman-pfdr"; 47 alloc-ranges = <0 0 0x10 0>; 51 compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus"; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
/openbmc/linux/arch/arm/boot/dts/qcom/ |
H A D | qcom-apq8064.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 2 /dts-v1/; 4 #include <dt-bindings/clock/qcom,gcc-msm8960.h> 5 #include <dt-bindings/clock/qcom,lcc-msm8960.h> 6 #include <dt-bindings/reset/qcom,gcc-msm8960.h> 7 #include <dt-bindings/clock/qcom,mmcc-msm8960.h> 8 #include <dt-bindings/clock/qcom,rpmcc.h> 9 #include <dt-bindings/soc/qcom,gsbi.h> 10 #include <dt-bindings/interrupt-controller/irq.h> 11 #include <dt-bindings/interrupt-controller/arm-gic.h> [all …]
|
/openbmc/linux/arch/arm64/boot/dts/qcom/ |
H A D | msm8916.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 6 #include <dt-bindings/arm/coresight-cti-dt.h> 7 #include <dt-bindings/clock/qcom,gcc-msm8916.h> 8 #include <dt-bindings/clock/qcom,rpmcc.h> 9 #include <dt-bindings/interconnect/qcom,msm8916.h> 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 #include <dt-bindings/power/qcom-rpmpd.h> 12 #include <dt-bindings/reset/qcom,gcc-msm8916.h> 13 #include <dt-bindings/thermal/thermal.h> [all …]
|
H A D | msm8939.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 4 * Copyright (c) 2020-2023, Linaro Limited 7 #include <dt-bindings/clock/qcom,gcc-msm8939.h> 8 #include <dt-bindings/clock/qcom,rpmcc.h> 9 #include <dt-bindings/interconnect/qcom,msm8939.h> 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 #include <dt-bindings/power/qcom-rpmpd.h> 12 #include <dt-bindings/reset/qcom,gcc-msm8939.h> 13 #include <dt-bindings/thermal/thermal.h> [all …]
|
H A D | msm8953.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 4 #include <dt-bindings/clock/qcom,gcc-msm8953.h> 5 #include <dt-bindings/clock/qcom,rpmcc.h> 6 #include <dt-bindings/gpio/gpio.h> 7 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 #include <dt-bindings/power/qcom-rpmpd.h> 9 #include <dt-bindings/soc/qcom,apr.h> 10 #include <dt-bindings/sound/qcom,q6afe.h> 11 #include <dt-bindings/sound/qcom,q6asm.h> 12 #include <dt-bindings/thermal/thermal.h> [all …]
|
/openbmc/linux/drivers/iommu/amd/ |
H A D | init.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2007-2010 Advanced Micro Devices, Inc. 8 #define pr_fmt(fmt) "AMD-Vi: " fmt 20 #include <linux/amd-iommu.h> 25 #include <asm/pci-direct.h> 26 #include <asm/iommu.h> 99 * structure describing one IOMMU in the ACPI table. Typically followed by one 119 * A device entry describing which devices a specific IOMMU translates and 137 * An AMD IOMMU memory definition structure. It defines things like exclusion 186 /* IOMMUs have a non-present cache? */ [all …]
|
/openbmc/qemu/hw/riscv/ |
H A D | riscv-iommu.c | 2 * QEMU emulation of an RISC-V IOMMU 4 * Copyright (C) 2021-2023, Rivos Inc. 23 #include "hw/qdev-properties.h" 30 #include "riscv-iommu.h" 31 #include "riscv-iommu-bits.h" 48 RISCVIOMMUState *iommu; /* Managing IOMMU device state */ member 50 bool notifier; /* IOMMU unmap notifier enabled */ 60 uint64_t satp; /* S-Stage address translation and protection */ 61 uint64_t gatp; /* G-Stage address translation and protection */ 62 uint64_t msi_addr_mask; /* MSI filtering - address mask */ [all …]
|
/openbmc/qemu/docs/system/arm/ |
H A D | virt.rst | 8 idiosyncrasies and limitations of a particular bit of real-world 16 ``virt-5.0`` machine type will behave like the ``virt`` machine from 17 the QEMU 5.0 release, and migration should work between ``virt-5.0`` 18 of the 5.0 release and ``virt-5.0`` of the 5.1 release. Migration 20 the non-versioned ``virt`` machine type. 27 - PCI/PCIe devices 28 - Flash memory 29 - Either one or two PL011 UARTs for the NonSecure World 30 - An RTC 31 - The fw_cfg device that allows a guest to obtain data from QEMU [all …]
|
/openbmc/linux/arch/arm/boot/dts/mediatek/ |
H A D | mt2701.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <dt-bindings/clock/mt2701-clk.h> 9 #include <dt-bindings/phy/phy.h> 10 #include <dt-bindings/power/mt2701-power.h> 11 #include <dt-bindings/interrupt-controller/irq.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/memory/mt2701-larb-port.h> 14 #include <dt-bindings/reset/mt2701-resets.h> 15 #include "mt2701-pinfunc.h" 18 #address-cells = <2>; [all …]
|
/openbmc/linux/drivers/vfio/ |
H A D | vfio_iommu_type1.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * VFIO: IOMMU DMA mapping support for Type1 IOMMU 12 * We arbitrarily define a Type1 IOMMU as one matching the below code. 13 * It could be called the x86 IOMMU as it's designed for AMD-Vi & Intel 14 * VT-d, but that makes it harder to re-use as theoretically anyone 15 * implementing a similar IOMMU could make use of this. We expect the 16 * IOMMU to support the IOMMU API and have few to no restrictions around 17 * the IOVA range that can be mapped. The Type1 IOMMU is currently 19 * userspace pages pinned into memory. We also assume devices and IOMMU 20 * domains are PCI based as the IOMMU API is still centered around a [all …]
|