123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding
- DESCRIPTION
- The PAMU is an I/O MMU that provides device-to-memory access control and
- address translation capabilities.
- Required properties:
- - compatible : <string>
- First entry is a version-specific string, such as
- "fsl,pamu-v1.0". The second is "fsl,pamu".
- - ranges : <prop-encoded-array>
- A standard property. Utilized to describe the memory mapped
- I/O space utilized by the controller. The size should
- be set to the total size of the register space of all
- physically present PAMU controllers. For example, for
- PAMU v1.0, on an SOC that has five PAMU devices, the size
- is 0x5000.
- - interrupts : <prop-encoded-array>
- Interrupt mappings. The first tuple is the normal PAMU
- interrupt, used for reporting access violations. The second
- is for PAMU hardware errors, such as PAMU operation errors
- and ECC errors.
- - #address-cells: <u32>
- A standard property.
- - #size-cells : <u32>
- A standard property.
- Optional properties:
- - reg : <prop-encoded-array>
- A standard property. It represents the CCSR registers of
- all child PAMUs combined. Include it to provide support
- for legacy drivers.
- - interrupt-parent : <phandle>
- Phandle to interrupt controller
- Child nodes:
- Each child node represents one PAMU controller. Each SOC device that is
- connected to a specific PAMU device should have a "fsl,pamu-phandle" property
- that links to the corresponding specific child PAMU controller.
- - reg : <prop-encoded-array>
- A standard property. Specifies the physical address and
- length (relative to the parent 'ranges' property) of this
- PAMU controller's configuration registers. The size should
- be set to the size of this PAMU controllers's register space.
- For PAMU v1.0, this size is 0x1000.
- - fsl,primary-cache-geometry
- : <prop-encoded-array>
- Two cells that specify the geometry of the primary PAMU
- cache. The first is the number of cache lines, and the
- second is the number of "ways". For direct-mapped caches,
- specify a value of 1.
- - fsl,secondary-cache-geometry
- : <prop-encoded-array>
- Two cells that specify the geometry of the secondary PAMU
- cache. The first is the number of cache lines, and the
- second is the number of "ways". For direct-mapped caches,
- specify a value of 1.
- Device nodes:
- Devices that have LIODNs need to specify links to the parent PAMU controller
- (the actual PAMU controller that this device is connected to) and a pointer to
- the LIODN register, if applicable.
- - fsl,iommu-parent
- : <phandle>
- Phandle to the single, specific PAMU controller node to which
- this device is connect. The PAMU topology is represented in
- the device tree to assist code that dynamically determines the
- best LIODN values to minimize PAMU cache thrashing.
- - fsl,liodn-reg : <prop-encoded-array>
- Two cells that specify the location of the LIODN register
- for this device. Required for devices that have a single
- LIODN. The first cell is a phandle to a node that contains
- the registers where the LIODN is to be set. The second is
- the offset from the first "reg" resource of the node where
- the specific LIODN register is located.
- Example:
- iommu@20000 {
- compatible = "fsl,pamu-v1.0", "fsl,pamu";
- reg = <0x20000 0x5000>;
- ranges = <0 0x20000 0x5000>;
- #address-cells = <1>;
- #size-cells = <1>;
- interrupts = <
- 24 2 0 0
- 16 2 1 30>;
- pamu0: pamu@0 {
- reg = <0 0x1000>;
- fsl,primary-cache-geometry = <32 1>;
- fsl,secondary-cache-geometry = <128 2>;
- };
- pamu1: pamu@1000 {
- reg = <0x1000 0x1000>;
- fsl,primary-cache-geometry = <32 1>;
- fsl,secondary-cache-geometry = <128 2>;
- };
- pamu2: pamu@2000 {
- reg = <0x2000 0x1000>;
- fsl,primary-cache-geometry = <32 1>;
- fsl,secondary-cache-geometry = <128 2>;
- };
- pamu3: pamu@3000 {
- reg = <0x3000 0x1000>;
- fsl,primary-cache-geometry = <32 1>;
- fsl,secondary-cache-geometry = <128 2>;
- };
- pamu4: pamu@4000 {
- reg = <0x4000 0x1000>;
- fsl,primary-cache-geometry = <32 1>;
- fsl,secondary-cache-geometry = <128 2>;
- };
- };
- guts: global-utilities@e0000 {
- compatible = "fsl,qoriq-device-config-1.0";
- reg = <0xe0000 0xe00>;
- fsl,has-rstcr;
- #sleep-cells = <1>;
- fsl,liodn-bits = <12>;
- };
- /include/ "qoriq-dma-0.dtsi"
- dma@100300 {
- fsl,iommu-parent = <&pamu0>;
- fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
- };
|