1 Freescale Peripheral Management Access Unit (P 1 Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding 2 2 3 DESCRIPTION 3 DESCRIPTION 4 4 5 The PAMU is an I/O MMU that provides device-to 5 The PAMU is an I/O MMU that provides device-to-memory access control and 6 address translation capabilities. 6 address translation capabilities. 7 7 8 Required properties: 8 Required properties: 9 9 10 - compatible : <string> 10 - compatible : <string> 11 First entry is a version-spe 11 First entry is a version-specific string, such as 12 "fsl,pamu-v1.0". The second 12 "fsl,pamu-v1.0". The second is "fsl,pamu". 13 - ranges : <prop-encoded-array> 13 - ranges : <prop-encoded-array> 14 A standard property. Utilize 14 A standard property. Utilized to describe the memory mapped 15 I/O space utilized by the co 15 I/O space utilized by the controller. The size should 16 be set to the total size of 16 be set to the total size of the register space of all 17 physically present PAMU cont 17 physically present PAMU controllers. For example, for 18 PAMU v1.0, on an SOC that ha 18 PAMU v1.0, on an SOC that has five PAMU devices, the size 19 is 0x5000. 19 is 0x5000. 20 - interrupts : <prop-encoded-array> 20 - interrupts : <prop-encoded-array> 21 Interrupt mappings. The fir 21 Interrupt mappings. The first tuple is the normal PAMU 22 interrupt, used for reportin 22 interrupt, used for reporting access violations. The second 23 is for PAMU hardware errors, 23 is for PAMU hardware errors, such as PAMU operation errors 24 and ECC errors. 24 and ECC errors. 25 - #address-cells: <u32> 25 - #address-cells: <u32> 26 A standard property. 26 A standard property. 27 - #size-cells : <u32> 27 - #size-cells : <u32> 28 A standard property. 28 A standard property. 29 29 30 Optional properties: 30 Optional properties: 31 - reg : <prop-encoded-array> 31 - reg : <prop-encoded-array> 32 A standard property. It re 32 A standard property. It represents the CCSR registers of 33 all child PAMUs combined. I 33 all child PAMUs combined. Include it to provide support 34 for legacy drivers. 34 for legacy drivers. >> 35 - interrupt-parent : <phandle> >> 36 Phandle to interrupt controller 35 - fsl,portid-mapping : <u32> 37 - fsl,portid-mapping : <u32> 36 The Coherency Subdomain ID P 38 The Coherency Subdomain ID Port Mapping Registers and 37 Snoop ID Port Mapping regist 39 Snoop ID Port Mapping registers, which are part of the 38 CoreNet Coherency fabric (CC 40 CoreNet Coherency fabric (CCF), provide a CoreNet 39 Coherency Subdomain ID/CoreN 41 Coherency Subdomain ID/CoreNet Snoop ID to pamu mapping 40 functions. Certain bits fro 42 functions. Certain bits from these registers should be 41 set if PAMUs should be snoop 43 set if PAMUs should be snooped. This property defines 42 a bitmask which selects the 44 a bitmask which selects the bits that should be set if 43 PAMUs should be snooped. 45 PAMUs should be snooped. 44 46 45 Child nodes: 47 Child nodes: 46 48 47 Each child node represents one PAMU controller 49 Each child node represents one PAMU controller. Each SOC device that is 48 connected to a specific PAMU device should hav 50 connected to a specific PAMU device should have a "fsl,pamu-phandle" property 49 that links to the corresponding specific child 51 that links to the corresponding specific child PAMU controller. 50 52 51 - reg : <prop-encoded-array> 53 - reg : <prop-encoded-array> 52 A standard property. Specif 54 A standard property. Specifies the physical address and 53 length (relative to the pare 55 length (relative to the parent 'ranges' property) of this 54 PAMU controller's configurat 56 PAMU controller's configuration registers. The size should 55 be set to the size of this P 57 be set to the size of this PAMU controllers's register space. 56 For PAMU v1.0, this size is 58 For PAMU v1.0, this size is 0x1000. 57 - fsl,primary-cache-geometry 59 - fsl,primary-cache-geometry 58 : <prop-encoded-array> 60 : <prop-encoded-array> 59 Two cells that specify the g 61 Two cells that specify the geometry of the primary PAMU 60 cache. The first is the num 62 cache. The first is the number of cache lines, and the 61 second is the number of "way 63 second is the number of "ways". For direct-mapped caches, 62 specify a value of 1. 64 specify a value of 1. 63 - fsl,secondary-cache-geometry 65 - fsl,secondary-cache-geometry 64 : <prop-encoded-array> 66 : <prop-encoded-array> 65 Two cells that specify the g 67 Two cells that specify the geometry of the secondary PAMU 66 cache. The first is the num 68 cache. The first is the number of cache lines, and the 67 second is the number of "way 69 second is the number of "ways". For direct-mapped caches, 68 specify a value of 1. 70 specify a value of 1. 69 71 70 Device nodes: 72 Device nodes: 71 73 72 Devices that have LIODNs need to specify links 74 Devices that have LIODNs need to specify links to the parent PAMU controller 73 (the actual PAMU controller that this device i 75 (the actual PAMU controller that this device is connected to) and a pointer to 74 the LIODN register, if applicable. 76 the LIODN register, if applicable. 75 77 76 - fsl,iommu-parent 78 - fsl,iommu-parent 77 : <phandle> 79 : <phandle> 78 Phandle to the single, specifi 80 Phandle to the single, specific PAMU controller node to which 79 this device is connect. The P 81 this device is connect. The PAMU topology is represented in 80 the device tree to assist code 82 the device tree to assist code that dynamically determines the 81 best LIODN values to minimize 83 best LIODN values to minimize PAMU cache thrashing. 82 84 83 - fsl,liodn-reg : <prop-encoded-array> 85 - fsl,liodn-reg : <prop-encoded-array> 84 Two cells that specify the l 86 Two cells that specify the location of the LIODN register 85 for this device. Required f 87 for this device. Required for devices that have a single 86 LIODN. The first cell is a 88 LIODN. The first cell is a phandle to a node that contains 87 the registers where the LIOD 89 the registers where the LIODN is to be set. The second is 88 the offset from the first "r 90 the offset from the first "reg" resource of the node where 89 the specific LIODN register 91 the specific LIODN register is located. 90 92 91 93 92 Example: 94 Example: 93 95 94 iommu@20000 { 96 iommu@20000 { 95 compatible = "fsl,pamu-v1.0", 97 compatible = "fsl,pamu-v1.0", "fsl,pamu"; 96 reg = <0x20000 0x5000>; 98 reg = <0x20000 0x5000>; 97 ranges = <0 0x20000 0x5000>; 99 ranges = <0 0x20000 0x5000>; 98 fsl,portid-mapping = <0xf80000 100 fsl,portid-mapping = <0xf80000>; 99 #address-cells = <1>; 101 #address-cells = <1>; 100 #size-cells = <1>; 102 #size-cells = <1>; 101 interrupts = < 103 interrupts = < 102 24 2 0 0 104 24 2 0 0 103 16 2 1 30>; 105 16 2 1 30>; 104 106 105 pamu0: pamu@0 { 107 pamu0: pamu@0 { 106 reg = <0 0x1000>; 108 reg = <0 0x1000>; 107 fsl,primary-cache-geom 109 fsl,primary-cache-geometry = <32 1>; 108 fsl,secondary-cache-ge 110 fsl,secondary-cache-geometry = <128 2>; 109 }; 111 }; 110 112 111 pamu1: pamu@1000 { 113 pamu1: pamu@1000 { 112 reg = <0x1000 0x1000>; 114 reg = <0x1000 0x1000>; 113 fsl,primary-cache-geom 115 fsl,primary-cache-geometry = <32 1>; 114 fsl,secondary-cache-ge 116 fsl,secondary-cache-geometry = <128 2>; 115 }; 117 }; 116 118 117 pamu2: pamu@2000 { 119 pamu2: pamu@2000 { 118 reg = <0x2000 0x1000>; 120 reg = <0x2000 0x1000>; 119 fsl,primary-cache-geom 121 fsl,primary-cache-geometry = <32 1>; 120 fsl,secondary-cache-ge 122 fsl,secondary-cache-geometry = <128 2>; 121 }; 123 }; 122 124 123 pamu3: pamu@3000 { 125 pamu3: pamu@3000 { 124 reg = <0x3000 0x1000>; 126 reg = <0x3000 0x1000>; 125 fsl,primary-cache-geom 127 fsl,primary-cache-geometry = <32 1>; 126 fsl,secondary-cache-ge 128 fsl,secondary-cache-geometry = <128 2>; 127 }; 129 }; 128 130 129 pamu4: pamu@4000 { 131 pamu4: pamu@4000 { 130 reg = <0x4000 0x1000>; 132 reg = <0x4000 0x1000>; 131 fsl,primary-cache-geom 133 fsl,primary-cache-geometry = <32 1>; 132 fsl,secondary-cache-ge 134 fsl,secondary-cache-geometry = <128 2>; 133 }; 135 }; 134 }; 136 }; 135 137 136 guts: global-utilities@e0000 { 138 guts: global-utilities@e0000 { 137 compatible = "fsl,qoriq-device 139 compatible = "fsl,qoriq-device-config-1.0"; 138 reg = <0xe0000 0xe00>; 140 reg = <0xe0000 0xe00>; 139 fsl,has-rstcr; 141 fsl,has-rstcr; 140 #sleep-cells = <1>; 142 #sleep-cells = <1>; 141 fsl,liodn-bits = <12>; 143 fsl,liodn-bits = <12>; 142 }; 144 }; 143 145 144 /include/ "qoriq-dma-0.dtsi" 146 /include/ "qoriq-dma-0.dtsi" 145 dma@100300 { 147 dma@100300 { 146 fsl,iommu-parent = <&pamu0>; 148 fsl,iommu-parent = <&pamu0>; 147 fsl,liodn-reg = <&guts 0x584>; 149 fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ 148 }; 150 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.