/linux-6.8/Documentation/devicetree/bindings/iommu/ |
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 …]
|
D | msm,iommu-v0.txt | 1 * QCOM IOMMU 3 The MSM IOMMU is an implementation compatible with the ARM VMSA short 5 of the CPU, each connected to the IOMMU through a port called micro-TLB. 9 - compatible: Must contain "qcom,apq8064-iommu". 10 - reg: Base address and size of the IOMMU registers. 11 - interrupts: Specifiers for the MMU fault interrupts. For instances that 12 support secure mode two interrupts must be specified, for non-secure and 13 secure mode, in that order. For instances that don't support secure mode a 15 - #iommu-cells: The number of cells needed to specify the stream id. This 17 - qcom,ncb: The total number of context banks in the IOMMU. [all …]
|
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 …]
|
D | renesas,ipmmu-vmsa.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/iommu/renesas,ipmmu-vmsa.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Renesas VMSA-Compatible IOMMU 10 - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> 13 The IPMMU is an IOMMU implementation compatible with the ARM VMSA page tables. 15 connected to the IPMMU through a port called micro-TLB. 20 - items: 21 - enum: [all …]
|
/linux-6.8/drivers/iommu/arm/arm-smmu/ |
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 …]
|
D | arm-smmu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * IOMMU API for ARM architected SMMU implementations. 10 * - SMMUv1 and v2 implementations 11 * - Stream-matching and stream-indexing 12 * - v7/v8 long-descriptor format 13 * - Non-secure access to the SMMU 14 * - Context fault reporting 15 * - Extended Stream ID (16 bit) 18 #define pr_fmt(fmt) "arm-smmu: " fmt 24 #include <linux/dma-mapping.h> [all …]
|
/linux-6.8/Documentation/admin-guide/ |
D | thunderbolt.rst | 1 .. SPDX-License-Identifier: GPL-2.0 22 is expected to be accompanied with an IOMMU based DMA protection. 25 ----------------------------------- 27 should be a userspace tool that handles all the low-level details, keeps 31 found in ``Documentation/ABI/testing/sysfs-bus-thunderbolt``. 35 ``/etc/udev/rules.d/99-local.rules``:: 47 knowing about it. There are ways to prevent this by setting up an IOMMU but 64 In BIOS settings this is typically called *Unique ID*. 66 secure 68 addition to UUID the device (if it supports secure connect) is sent [all …]
|
D | kernel-parameters.txt | 16 force -- enable ACPI if default was off 17 on -- enable ACPI but allow fallback to DT [arm64,riscv64] 18 off -- disable ACPI if default was on 19 noirq -- do not use ACPI for IRQ routing 20 strict -- Be less tolerant of platforms that are not 22 rsdt -- prefer RSDT over (default) XSDT 23 copy_dsdt -- copy DSDT to memory 37 If set to vendor, prefer vendor-specific driver 69 Documentation/firmware-guide/acpi/debug.rst for more information about 127 Format: <byte> or <bitmap-list> [all …]
|
/linux-6.8/Documentation/driver-api/ |
D | vfio.rst | 2 VFIO - "Virtual Function I/O" [1]_ 7 allotted. This includes x86 hardware with AMD-Vi and Intel VT-d, 9 systems such as Freescale PAMU. The VFIO driver is an IOMMU/device 11 a secure, IOMMU protected environment. In other words, this allows 12 safe [2]_, non-privileged, userspace drivers. 19 bare-metal device drivers [3]_. 22 field, also benefit from low-overhead, direct device access from 23 userspace. Examples include network adapters (often non-TCP/IP based) 27 which has no notion of IOMMU protection, limited interrupt support, 33 secure, more featureful userspace driver environment than UIO. [all …]
|
D | vfio-mediated-device.rst | 1 .. SPDX-License-Identifier: GPL-2.0-only 17 The number of use cases for virtualizing DMA devices that do not have built-in 25 an IOMMU/device-agnostic framework for exposing direct device access to user 26 space in a secure, IOMMU-protected environment. This framework is used for 37 * Add a mediated device to and remove it from an IOMMU group 44 The following high-level block diagram shows the main components and interfaces 48 +---------------+ 50 | +-----------+ | mdev_register_driver() +--------------+ 51 | | | +<------------------------+ | 53 | | bus | +------------------------>+ vfio_mdev.ko |<-> VFIO user [all …]
|
/linux-6.8/drivers/iommu/ |
D | msm_iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. 13 #include <linux/io-pgtable.h> 18 #include <linux/iommu.h> 25 #include "msm_iommu_hw-8xxx.h" 54 static int __enable_clocks(struct msm_iommu_dev *iommu) in __enable_clocks() argument 58 ret = clk_enable(iommu->pclk); in __enable_clocks() 62 if (iommu->clk) { in __enable_clocks() 63 ret = clk_enable(iommu->clk); in __enable_clocks() 65 clk_disable(iommu->pclk); in __enable_clocks() [all …]
|
/linux-6.8/Documentation/arch/x86/ |
D | sva.rst | 1 .. SPDX-License-Identifier: GPL-2.0 19 application page-faults. For more information please refer to the PCIe 22 Use of SVA requires IOMMU support in the platform. IOMMU is also 24 to cache translations for virtual addresses. The IOMMU driver uses the 34 Unlike Single Root I/O Virtualization (SR-IOV), Scalable IOV (SIOV) permits 40 ID (PASID), which is a 20-bit number defined by the PCIe SIG. 43 IOMMU to track I/O on a per-PASID granularity in addition to using the PCIe 53 record, and the PASID (process address space ID) of the current process. 55 ENQCMD works with non-posted semantics and carries a status back if the 67 A new thread-scoped MSR (IA32_PASID) provides the connection between [all …]
|
/linux-6.8/Documentation/arch/s390/ |
D | vfio-ap.rst | 13 The AP adapter cards are exposed via the AP bus. The motivation for vfio-ap 45 sub-directory:: 57 domain can be configured with a secure private key used for clear key 65 usage domain; for example, to set the secure private key for the control 76 significant bit, correspond to domains 0-255. 82 comprised of an AP adapter ID (APID) and an AP queue index (APQI). The 111 * NQAP: to enqueue an AP command-request message to a queue 112 * DQAP: to dequeue an AP command-reply message from a queue 132 an APID from 0-255. If a bit is set, the corresponding adapter is valid for 137 corresponds to an AP queue index (APQI) from 0-255. If a bit is set, the [all …]
|
/linux-6.8/Documentation/ABI/testing/ |
D | sysfs-bus-thunderbolt | 29 de-authorization of devices. Value of 1 means user can 30 de-authorize PCIe tunnel by writing 0 to authorized 37 Description: This attribute tells whether the system uses IOMMU 38 for DMA protection. Value of 1 means IOMMU is used 0 means 53 secure Require devices that support secure connect at 78 0 The device will be de-authorized (only supported if 87 0 The device will be de-authorized (only supported if 117 Description: When a devices supports Thunderbolt secure connect it will 119 authorization to use the secure connection method instead. 127 Description: This attribute contains id of this device extracted from [all …]
|
/linux-6.8/arch/arm/mach-omap2/ |
D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 7 obj-y := id.o io.o control.o devices.o fb.o pm.o \ 8 common.o dma.o omap-headsmp.o sram.o 10 hwmod-common = omap_hwmod.o \ 15 clock-common = clock.o 16 secure-common = omap-smc.o omap-secure.o 18 obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) 19 obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common) 20 obj-$(CONFIG_ARCH_OMAP4) += $(secure-common) 21 obj-$(CONFIG_SOC_AM33XX) += $(secure-common) [all …]
|
D | pdata-quirks.c | 1 // SPDX-License-Identifier: GPL-2.0-only 20 #include <linux/platform_data/pinctrl-single.h> 21 #include <linux/platform_data/hsmmc-omap.h> 22 #include <linux/platform_data/iommu-omap.h> 23 #include <linux/platform_data/ti-sysc.h> 25 #include <linux/platform_data/asoc-ti-mcbsp.h> 26 #include <linux/platform_data/ti-prm.h> 30 #include "common-board-devices.h" 33 #include "omap-secure.h" 58 * Note that if the pins are used for MMC1, pbias-regulator [all …]
|
/linux-6.8/drivers/iommu/iommufd/ |
D | device.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* Copyright (c) 2021-2022, NVIDIA CORPORATION & AFFILIATES 6 #include <linux/iommu.h> 8 #include "../iommu-priv.h" 25 WARN_ON(igroup->hwpt || !list_empty(&igroup->device_list)); in iommufd_group_release() 27 xa_cmpxchg(&igroup->ictx->groups, iommu_group_id(igroup->group), igroup, in iommufd_group_release() 29 iommu_group_put(igroup->group); in iommufd_group_release() 30 mutex_destroy(&igroup->lock); in iommufd_group_release() 36 kref_put(&group->ref, iommufd_group_release); in iommufd_put_group() 45 * group ID's cannot be re-used until the group is put back which does in iommufd_group_try_get() [all …]
|
/linux-6.8/drivers/gpu/host1x/ |
D | dev.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (c) 2012-2015, NVIDIA Corporation. 10 #include <linux/iommu.h> 33 unsigned int id); 79 struct host1x *host, unsigned int id, u32 thresh); 80 void (*enable_syncpt_intr)(struct host1x *host, unsigned int id); 81 void (*disable_syncpt_intr)(struct host1x *host, unsigned int id); 114 * On T20-T148, the boot chain may setup DC to increment syncpoints 120 * On Tegra186, secure world applications may require access to 186 host->syncpt_op->restore(sp); in host1x_hw_syncpt_restore() [all …]
|
/linux-6.8/arch/arm64/boot/dts/qcom/ |
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/soc/qcom,apr.h> [all …]
|
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/soc/qcom,apr.h> [all …]
|
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 …]
|
/linux-6.8/arch/arm64/boot/dts/freescale/ |
D | fsl-ls1028a.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 3 * Device Tree Include file for NXP Layerscape-1028A family SoC. 5 * Copyright 2018-2020 NXP 11 #include <dt-bindings/clock/fsl,qoriq-clockgen.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/thermal/thermal.h> 17 interrupt-parent = <&gic>; 18 #address-cells = <2>; 19 #size-cells = <2>; 22 #address-cells = <1>; [all …]
|
/linux-6.8/drivers/memory/tegra/ |
D | tegra186.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2017-2021 NVIDIA CORPORATION. All rights reserved. 7 #include <linux/iommu.h> 17 #include <dt-bindings/memory/tegra186-mc.h> 28 struct platform_device *pdev = to_platform_device(mc->dev); in tegra186_mc_probe() 33 mc->bcast_ch_regs = devm_platform_ioremap_resource_byname(pdev, "broadcast"); in tegra186_mc_probe() 34 if (IS_ERR(mc->bcast_ch_regs)) { in tegra186_mc_probe() 35 if (PTR_ERR(mc->bcast_ch_regs) == -EINVAL) { in tegra186_mc_probe() 36 dev_warn(&pdev->dev, in tegra186_mc_probe() 37 "Broadcast channel is missing, please update your device-tree\n"); in tegra186_mc_probe() [all …]
|
/linux-6.8/include/acpi/ |
D | actbl2.h | 1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 4 * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec) 6 * Copyright (C) 2000 - 2023, Intel Corp. 51 #define ACPI_SIG_RHCT "RHCT" /* RISC-V Hart Capabilities Table */ 54 #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ 59 * All tables must be byte-packed to match the ACPI specification, since 69 * essentially useless for dealing with packed data in on-disk formats or 78 * AEST - Arm Error Source Table 89 /* Common Subtable header - one per Node Structure (Subtable) */ 246 * AGDI - Arm Generic Diagnostic Dump and Reset Device Interface [all …]
|
/linux-6.8/drivers/vfio/ |
D | vfio_main.c | 1 // SPDX-License-Identifier: GPL-2.0-only 18 #include <linux/iommu.h> 44 #define DRIVER_DESC "VFIO - User Level meta-driver" 55 MODULE_PARM_DESC(enable_unsafe_noiommu_mode, "Enable UNSAFE, no-IOMMU mode. This mode provides no … 67 return -EINVAL; in vfio_assign_device_set() 80 return -ENOMEM; in vfio_assign_device_set() 81 mutex_init(&new_dev_set->lock); in vfio_assign_device_set() 82 INIT_LIST_HEAD(&new_dev_set->device_list); in vfio_assign_device_set() 83 new_dev_set->set_id = set_id; in vfio_assign_device_set() 100 dev_set->device_count++; in vfio_assign_device_set() [all …]
|