/openbmc/linux/Documentation/devicetree/bindings/iommu/ |
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# 7 title: ARM System MMU Architecture Implementation 10 - Will Deacon <will@kernel.org> 11 - Robin Murphy <Robin.Murphy@arm.com> 14 ARM SoCs may contain an implementation of the ARM System Memory 18 The SMMU may also raise interrupts in response to various fault 23 pattern: "^iommu@[0-9a-f]*" [all …]
|
H A D | arm,smmu-v3.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only 3 --- 4 $id: http://devicetree.org/schemas/iommu/arm,smmu-v3.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ARM SMMUv3 Architecture Implementation 10 - Will Deacon <will@kernel.org> 11 - Robin Murphy <Robin.Murphy@arm.com> 15 revisions, replacing the MMIO register interface with in-memory command 21 pattern: "^iommu@[0-9a-f]*" 23 const: arm,smmu-v3 [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/ |
H A D | arm,komeda.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/arm,komeda.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Arm Komeda display processor 10 - Liviu Dudau <Liviu.Dudau@arm.com> 11 - Andre Przywara <andre.przywara@arm.com> 14 The Arm Mali D71 display processor supports up to two displays with up 21 - items: 22 - const: arm,mali-d32 [all …]
|
/openbmc/linux/drivers/iommu/arm/arm-smmu/ |
H A D | arm-smmu-impl.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 // Miscellaneous Arm SMMU implementation and integration quirks 3 // Copyright (C) 2019 Arm Limited 5 #define pr_fmt(fmt) "arm-smmu: " fmt 10 #include "arm-smmu.h" 28 static u32 arm_smmu_read_ns(struct arm_smmu_device *smmu, int page, in arm_smmu_read_ns() argument 33 return readl_relaxed(arm_smmu_page(smmu, page) + offset); in arm_smmu_read_ns() 36 static void arm_smmu_write_ns(struct arm_smmu_device *smmu, int page, in arm_smmu_write_ns() argument 41 writel_relaxed(val, arm_smmu_page(smmu, page) + offset); in arm_smmu_write_ns() 44 /* Since we don't care for sGFAR, we can do without 64-bit accessors */ [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-$(CONFIG_QCOM_IOMMU) += qcom_iommu.o 3 obj-$(CONFIG_ARM_SMMU) += arm_smmu.o 4 arm_smmu-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-nvidia.o 5 arm_smmu-$(CONFIG_ARM_SMMU_QCOM) += arm-smmu-qcom.o 6 arm_smmu-$(CONFIG_ARM_SMMU_QCOM_DEBUG) += arm-smmu-qcom-debug.o
|
H A D | arm-smmu-qcom-debug.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include "arm-smmu.h" 11 #include "arm-smmu-qcom.h" 13 void qcom_smmu_tlb_sync_debug(struct arm_smmu_device *smmu) in qcom_smmu_tlb_sync_debug() argument 17 struct qcom_smmu *qsmmu = container_of(smmu, struct qcom_smmu, smmu); in qcom_smmu_tlb_sync_debug() 23 dev_err(smmu->dev, "TLB sync timed out -- SMMU may be deadlocked\n"); in qcom_smmu_tlb_sync_debug() 25 cfg = qsmmu->cfg; in qcom_smmu_tlb_sync_debug() 29 ret = qcom_scm_io_readl(smmu->ioaddr + cfg->reg_offset[QCOM_SMMU_TBU_PWR_STATUS], in qcom_smmu_tlb_sync_debug() 32 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 35 ret = qcom_scm_io_readl(smmu->ioaddr + cfg->reg_offset[QCOM_SMMU_STATS_SYNC_INV_TBU_ACK], in qcom_smmu_tlb_sync_debug() [all …]
|
H A D | arm-smmu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * IOMMU API for ARM architected SMMU implementations. 5 * Copyright (C) 2013 ARM Limited 7 * Author: Will Deacon <will.deacon@arm.com> 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) [all …]
|
H A D | arm-smmu-nvidia.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 // Copyright (C) 2019-2020 NVIDIA CORPORATION. All rights reserved. 12 #include "arm-smmu.h" 15 * Tegra194 has three ARM MMU-500 Instances. 18 * non-isochronous HW devices. 21 * In addition, the SMMU driver needs to coordinate with the memory controller 23 * memory client. This is necessary to allow for use-case such as seamlessly 30 * SMMU instance. 35 struct arm_smmu_device smmu; member 41 static inline struct nvidia_smmu *to_nvidia_smmu(struct arm_smmu_device *smmu) in to_nvidia_smmu() argument [all …]
|
H A D | arm-smmu-qcom.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/adreno-smmu-priv.h> 12 #include "arm-smmu.h" 13 #include "arm-smmu-qcom.h" 15 #define QCOM_DUMMY_VAL -1 17 static struct qcom_smmu *to_qcom_smmu(struct arm_smmu_device *smmu) in to_qcom_smmu() argument 19 return container_of(smmu, struct qcom_smmu, smmu); in to_qcom_smmu() 22 static void qcom_smmu_tlb_sync(struct arm_smmu_device *smmu, int page, in qcom_smmu_tlb_sync() argument 28 arm_smmu_writel(smmu, page, sync, QCOM_DUMMY_VAL); in qcom_smmu_tlb_sync() 30 for (spin_cnt = TLB_SPIN_COUNT; spin_cnt > 0; spin_cnt--) { in qcom_smmu_tlb_sync() [all …]
|
H A D | arm-smmu.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * IOMMU API for ARM architected SMMU implementations. 5 * Copyright (C) 2013 ARM Limited 7 * Author: Will Deacon <will.deacon@arm.com> 18 #include <linux/io-64-nonatomic-hi-lo.h> 19 #include <linux/io-pgtable.h> 242 /* Maximum number of context banks per SMMU */ 368 struct arm_smmu_device *smmu; member 374 struct mutex init_mutex; /* Protects smmu pointer */ 380 struct arm_smmu_device *smmu; member [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/perf/ |
H A D | arm,smmu-v3-pmcg.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/perf/arm,smmu-v3-pmcg.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Arm SMMUv3 Performance Monitor Counter Group 10 - Will Deacon <will@kernel.org> 11 - Robin Murphy <robin.murphy@arm.com> 20 pattern: "^pmu@[0-9a-f]*" 23 - items: 24 - const: arm,mmu-600-pmcg [all …]
|
/openbmc/linux/drivers/iommu/ |
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 31 depends on ARM || ARM64 || COMPILE_TEST 34 Enable support for the ARM long descriptor pagetable format. 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. 51 depends on ARM || ARM64 || COMPILE_TEST 53 Enable support for the ARM Short-descriptor pagetable format. [all …]
|
/openbmc/u-boot/arch/arm/dts/ |
H A D | zynqmp.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * (C) Copyright 2014 - 2015, Xilinx, Inc. 17 #address-cells = <2>; 18 #size-cells = <2>; 21 #address-cells = <1>; 22 #size-cells = <0>; 25 compatible = "arm,cortex-a53", "arm,armv8"; 27 enable-method = "psci"; 28 operating-points-v2 = <&cpu_opp_table>; 30 cpu-idle-states = <&CPU_SLEEP_0>; [all …]
|
/openbmc/linux/arch/arm64/boot/dts/xilinx/ |
H A D | zynqmp.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * (C) Copyright 2014 - 2021, Xilinx, Inc. 15 #include <dt-bindings/dma/xlnx-zynqmp-dpdma.h> 16 #include <dt-bindings/gpio/gpio.h> 17 #include <dt-bindings/interrupt-controller/arm-gic.h> 18 #include <dt-bindings/interrupt-controller/irq.h> 19 #include <dt-bindings/power/xlnx-zynqmp-power.h> 20 #include <dt-bindings/reset/xlnx-zynqmp-resets.h> 24 #address-cells = <2>; 25 #size-cells = <2>; [all …]
|
/openbmc/linux/drivers/iommu/arm/arm-smmu-v3/ |
H A D | arm-smmu-v3.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * IOMMU API for ARM architected SMMUv3 implementations. 5 * Copyright (C) 2015 ARM Limited 7 * Author: Will Deacon <will.deacon@arm.com> 19 #include <linux/io-pgtable.h> 27 #include <linux/pci-ats.h> 30 #include "arm-smmu-v3.h" 31 #include "../../dma-iommu.h" 32 #include "../../iommu-sva.h" 37 …domain will report an abort back to the device and will not be allowed to pass through the SMMU."); [all …]
|
H A D | arm-smmu-v3-sva.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Implementation of the IOMMU SVA API for the ARM SMMUv3 12 #include "arm-smmu-v3.h" 13 #include "../../iommu-sva.h" 14 #include "../../io-pgtable-arm.h" 41 * Check if the CPU ASID is available on the SMMU side. If a private context 50 struct arm_smmu_device *smmu; in arm_smmu_share_asid() local 57 if (cd->mm) { in arm_smmu_share_asid() 58 if (WARN_ON(cd->mm != mm)) in arm_smmu_share_asid() 59 return ERR_PTR(-EINVAL); in arm_smmu_share_asid() [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-$(CONFIG_ARM_SMMU_V3) += arm_smmu_v3.o 3 arm_smmu_v3-objs-y += arm-smmu-v3.o 4 arm_smmu_v3-objs-$(CONFIG_ARM_SMMU_V3_SVA) += arm-smmu-v3-sva.o 5 arm_smmu_v3-objs := $(arm_smmu_v3-objs-y)
|
/openbmc/linux/drivers/acpi/arm64/ |
H A D | iort.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * IORT document number: ARM DEN 0049A 21 #include <linux/dma-map-ops.h> 45 * iort_set_fwnode() - Create iort_fwnode and use it to register 62 return -ENOMEM; in iort_set_fwnode() 64 INIT_LIST_HEAD(&np->list); in iort_set_fwnode() 65 np->iort_node = iort_node; in iort_set_fwnode() 66 np->fwnode = fwnode; in iort_set_fwnode() 69 list_add_tail(&np->list, &iort_fwnode_list); in iort_set_fwnode() 76 * iort_get_fwnode() - Retrieve fwnode associated with an IORT node [all …]
|
/openbmc/linux/drivers/iommu/arm/ |
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-y += arm-smmu/ arm-smmu-v3/
|
/openbmc/linux/Documentation/devicetree/bindings/misc/ |
H A D | fsl,qoriq-mc.txt | 3 The Freescale Management Complex (fsl-mc) is a hardware resource 5 network-oriented packet processing applications. After the fsl-mc 12 For an overview of the DPAA2 architecture and fsl-mc bus see: 16 same hardware "isolation context" and a 10-bit value called an ICID 21 between ICIDs and IOMMUs, so an iommu-map property is used to define 28 For arm-smmu binding, see: 29 Documentation/devicetree/bindings/iommu/arm,smmu.yaml. 32 The msi-map property is used to associate the devices with both the ITS 36 Documentation/devicetree/bindings/interrupt-controller/msi.txt. 39 Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml. [all …]
|
/openbmc/linux/include/linux/ |
H A D | adreno-smmu-priv.h | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <linux/io-pgtable.h> 12 * struct adreno_smmu_fault_info - container for key fault information 38 * struct adreno_smmu_priv - private interface between adreno-smmu and GPU 40 * @cookie: An opque token provided by adreno-smmu and passed 42 * @get_ttbr1_cfg: Get the TTBR1 config for the GPUs context-bank 54 * The GPU driver (drm/msm) and adreno-smmu work together for controlling 55 * the GPU's SMMU instance. This is by necessity, as the GPU is directly 56 * updating the SMMU for context switches, while on the other hand we do 57 * not want to duplicate all of the initial setup logic from arm-smmu.
|
/openbmc/linux/arch/arm64/boot/dts/intel/ |
H A D | socfpga_agilex.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 6 /dts-v1/; 7 #include <dt-bindings/reset/altr,rst-mgr-s10.h> 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/interrupt-controller/arm-gic.h> 10 #include <dt-bindings/clock/agilex-clock.h> 13 compatible = "intel,socfpga-agilex"; 14 #address-cells = <2>; 15 #size-cells = <2>; 17 reserved-memory { [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>; 26 compatible = "arm,mhu", "arm,primecell"; 31 #mbox-cells = <1>; [all …]
|
/openbmc/qemu/include/hw/arm/ |
H A D | smmu-common.h | 2 * ARM SMMU Support 4 * Copyright (C) 2015-2016 Broadcom Corporation 30 /* VMSAv8-64 Translation constants and functions */ 34 #define VMSA_STRIDE(gran) ((gran) - VMSA_LEVELS + 1) 35 #define VMSA_BIT_LVL(isz, strd, lvl) ((isz) - (strd) * \ 36 (VMSA_LEVELS - (lvl))) 38 VMSA_BIT_LVL(isz, strd, lvl)) - 1) 40 #define CACHED_ENTRY_TO_ADDR(ent, addr) ((ent)->entry.translated_addr + \ 41 ((addr) & (ent)->entry.addr_mask)) 55 /* SMMU Stage */ [all …]
|
/openbmc/linux/arch/arm64/boot/dts/altera/ |
H A D | socfpga_stratix10.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 6 /dts-v1/; 7 #include <dt-bindings/reset/altr,rst-mgr-s10.h> 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/clock/stratix10-clock.h> 12 compatible = "altr,socfpga-stratix10"; 13 #address-cells = <2>; 14 #size-cells = <2>; 16 reserved-memory { 17 #address-cells = <2>; [all …]
|