/linux/Documentation/devicetree/bindings/pci/ |
H A D | pci-iommu.txt | 2 relationship between PCI(e) devices and IOMMU(s). 17 Requester ID. While a given PCI device can only master through one IOMMU, a 18 root complex may split masters across a set of IOMMUs (e.g. with one IOMMU per 22 and a mechanism is required to map from a PCI device to its IOMMU and sideband 25 For generic IOMMU bindings, see 26 Documentation/devicetree/bindings/iommu/iommu.txt. 33 ------------------- 35 - iommu-map: Maps a Requester ID to an IOMMU and associated IOMMU specifier 39 (rid-base,iommu,iommu-base,length). 41 Any RID r in the interval [rid-base, rid-base + length) is associated with [all …]
|
H A D | fsl,layerscape-pcie.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Frank Li <Frank.Li@nxp.com> 16 which is used to describe the PLL settings at the time of chip-reset. 26 - enum: 27 - fsl,ls1012a-pcie 28 - fsl,ls1021a-pcie 29 - fsl,ls1028a-pcie [all …]
|
/linux/arch/sparc/kernel/ |
H A D | iommu-common.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * IOMMU mmap management and range allocation functions. 4 * Based almost entirely upon the powerpc iommu allocator. 10 #include <linux/iommu-helper.h> 11 #include <linux/dma-mapping.h> 13 #include <asm/iommu-common.h> 19 static inline bool need_flush(struct iommu_map_table *iommu) in need_flush() argument 21 return ((iommu->flags & IOMMU_NEED_FLUSH) != 0); in need_flush() 24 static inline void set_flush(struct iommu_map_table *iommu) in set_flush() argument 26 iommu->flags |= IOMMU_NEED_FLUSH; in set_flush() [all …]
|
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0 42 volatile int pci_poke_cpu = -1; 63 pci_poke_cpu = -1; in pci_config_read8() 85 pci_poke_cpu = -1; in pci_config_read16() 107 pci_poke_cpu = -1; in pci_config_read32() 128 pci_poke_cpu = -1; in pci_config_write8() 147 pci_poke_cpu = -1; in pci_config_write16() 166 pci_poke_cpu = - in pci_config_write32() 252 pci_init_dev_archdata(struct dev_archdata * sd,void * iommu,void * stc,void * host_controller,struct platform_device * op,int numa_node) pci_init_dev_archdata() argument 363 apb_calc_first_last(u8 map,u32 * first_p,u32 * last_p) apb_calc_first_last() argument 392 u8 map; apb_fake_ranges() local 725 pcibios_enable_device(struct pci_dev * dev,int mask) pcibios_enable_device() argument 821 struct iommu *iommu = dev->archdata.iommu; ali_sound_dma_hack() local 939 u32 mask; pci_bus_slot_names() local [all...] |
/linux/arch/arm64/boot/dts/apple/ |
H A D | t600x-die0.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR MIT 10 nco: clock-controller@28e03c000 { 11 compatible = "apple,t6000-nco", "apple,nco"; 14 #clock-cells = <1>; 17 aic: interrupt-controller@28e100000 { 18 compatible = "apple,t6000-aic", "apple,aic2"; 19 #interrupt-cells = <4>; 20 interrupt-controller; 23 reg-names = "core", "event"; 24 power-domains = <&ps_aic>; [all …]
|
H A D | t8112.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR MIT 10 #include <dt-bindings/gpio/gpio.h> 11 #include <dt-bindings/interrupt-controller/apple-aic.h> 12 #include <dt-bindings/interrupt-controller/irq.h> 13 #include <dt-bindings/pinctrl/apple.h> 14 #include <dt-bindings/spmi/spmi.h> 17 compatible = "apple,t8112", "apple,arm-platform"; 19 #address-cells = <2>; 20 #size-cells = <2>; 23 #address-cells = <2>; [all …]
|
H A D | t8103.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR MIT 10 #include <dt-bindings/gpio/gpio.h> 11 #include <dt-bindings/interrupt-controller/apple-aic.h> 12 #include <dt-bindings/interrupt-controller/irq.h> 13 #include <dt-bindings/pinctrl/apple.h> 16 compatible = "apple,t8103", "apple,arm-platform"; 18 #address-cells = <2>; 19 #size-cells = <2>; 22 #address-cells = <2>; 23 #size-cells = <0>; [all …]
|
/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 …]
|
H A D | t2081si-post.dtsi | 4 * Copyright 2013 - 2014 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 #address-cells = <2>; 52 #size-cells = <1>; 59 compatible = "fsl,t2080-pcie", "fsl,qoriq-pcie-v3.0", "fsl,qoriq-pcie"; [all …]
|
H A D | t1023si-post.dtsi | 35 #include <dt-bindings/thermal/thermal.h> 38 compatible = "fsl,bman-fbpr"; 39 alloc-ranges = <0 0 0x10000 0>; 43 compatible = "fsl,qman-fqd"; 44 alloc-ranges = <0 0 0x10000 0>; 48 compatible = "fsl,qman-pfdr"; 49 alloc-ranges = <0 0 0x10000 0>; 53 #address-cells = <2>; 54 #size-cells = <1>; 60 compatible = "fsl,t1023-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie"; [all …]
|
H A D | t1040si-post.dtsi | 4 * Copyright 2013 - 2014 Freescale Semiconductor Inc. 35 #include <dt-bindings/thermal/thermal.h> 38 compatible = "fsl,bman-fbpr"; 39 alloc-ranges = <0 0 0x10000 0>; 43 compatible = "fsl,qman-fqd"; 44 alloc-ranges = <0 0 0x10000 0>; 48 compatible = "fsl,qman-pfdr"; 49 alloc-ranges = <0 0 0x10000 0>; 53 #address-cells = <2>; 54 #size-cells = <1>; [all …]
|
/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 …]
|
/linux/drivers/iommu/ |
H A D | dma-iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * A fairly generic DMA-API to IOMMU-API glue layer. 5 * Copyright (C) 2014-2015 ARM Ltd. 7 * based in part on arch/arm/mm/dma-mapping.c: 8 * Copyright (C) 2000-2004 Russell King 15 #include <linux/dma-direct.h> 16 #include <linux/dma-map-ops.h> 19 #include <linux/iommu.h> 20 #include <linux/iommu-dma.h> 35 #include "dma-iommu.h" [all …]
|
/linux/arch/arm64/boot/dts/marvell/ |
H A D | cn9130-crb-A.dts | 1 // SPDX-License-Identifier: GPL-2.0+ 6 #include "cn9130-crb.dtsi" 9 model = "Marvell Armada CN9130-CRB-A"; 14 num-lanes = <4>; 15 num-viewport = <8>; 21 iommu-map = 25 iommu-map-mask = <0x031f>; 30 usb-phy = <&cp0_usb3_0_phy0>; 31 phy-names = "usb"; 36 usb-phy = <&cp0_usb3_0_phy1>; [all …]
|
H A D | armada-7040.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 9 #include "armada-ap806-quad.dtsi" 10 #include "armada-70x0.dtsi" 14 compatible = "marvell,armada7040", "marvell,armada-ap806-quad", 15 "marvell,armada-ap806"; 19 iommu-map = 23 iommu-map-mask = <0x031f>;
|
H A D | armada-8040.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 9 #include "armada-ap806-quad.dtsi" 10 #include "armada-80x0.dtsi" 14 compatible = "marvell,armada8040", "marvell,armada-ap806-quad", 15 "marvell,armada-ap806"; 19 iommu-map = 23 iommu-map-mask = <0x031f>;
|
/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 …]
|
/linux/arch/powerpc/include/asm/ |
H A D | iommu.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 15 #include <linux/dma-map-ops.h> 19 #include <asm/pci-bridge.h> 20 #include <asm/asm-const.h> 24 #define IOMMU_PAGE_MASK_4K (~((1 << IOMMU_PAGE_SHIFT_4K) - 1)) 27 #define IOMMU_PAGE_SIZE(tblptr) (ASM_CONST(1) << (tblptr)->it_page_shift) 28 #define IOMMU_PAGE_MASK(tblptr) (~((1 << (tblptr)->it_page_shift) - 1)) 31 #define DIRECT64_PROPNAME "linux,direct64-ddr-window-info" 32 #define DMA64_PROPNAME "linux,dma64-ddr-window-info" 43 * uaddr is a linear map address. [all …]
|
/linux/arch/sparc/include/asm/ |
H A D | iommu-common.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 32 unsigned long *map; member 35 extern void iommu_tbl_pool_init(struct iommu_map_table *iommu, 43 struct iommu_map_table *iommu, 46 unsigned long mask, 49 extern void iommu_tbl_range_free(struct iommu_map_table *iommu,
|
/linux/arch/alpha/kernel/ |
H A D | pci_iommu.c | 1 // SPDX-License-Identifier: GPL-2.0 14 #include <linux/dma-map-ops.h> 15 #include <linux/iommu-helper.h> 44 return (paddr >> (PAGE_SHIFT-1)) | 1; in mk_iommu_pte() 71 particular systems can over-align the arena. */ in iommu_arena_new_node() 76 arena->ptes = memblock_alloc_or_panic(mem_size, align); in iommu_arena_new_node() 78 spin_lock_init(&arena->lock); in iommu_arena_new_node() 79 arena->hose = hose; in iommu_arena_new_node() 80 arena->dma_base = base; in iommu_arena_new_node() 81 arena->size = window_size; in iommu_arena_new_node() [all …]
|
/linux/arch/arm/mm/ |
H A D | dma-mapping.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * linux/arch/arm/mm/dma-mapping.c 5 * Copyright (C) 2000-2004 Russell King 17 #include <linux/dma-direct.h> 18 #include <linux/dma-map-ops.h> 22 #include <linux/iommu.h> 33 #include <asm/dma-iommu.h> 34 #include <asm/mach/map.h> 36 #include <asm/xen/xen-ops.h> 84 if (buf->virt == virt) { in arm_dma_buffer_find() [all …]
|