| QorIQ DPAA Buffer Manager Device Tree Bindings | |
| Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. | |
| CONTENTS | |
| - BMan Node | |
| - BMan Private Memory Node | |
| - Example | |
| BMan Node | |
| The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA). | |
| BMan supports hardware allocation and deallocation of buffers belonging to pools | |
| originally created by software with configurable depletion thresholds. This | |
| binding covers the CCSR space programming model | |
| PROPERTIES | |
| - compatible | |
| Usage: Required | |
| Value type: <stringlist> | |
| Definition: Must include "fsl,bman" | |
| May include "fsl,<SoC>-bman" | |
| - reg | |
| Usage: Required | |
| Value type: <prop-encoded-array> | |
| Definition: Registers region within the CCSR address space | |
| The BMan revision information is located in the BMAN_IP_REV_1/2 registers which | |
| are located at offsets 0xbf8 and 0xbfc | |
| - interrupts | |
| Usage: Required | |
| Value type: <prop-encoded-array> | |
| Definition: Standard property. The error interrupt | |
| - fsl,bman-portals | |
| Usage: Required | |
| Value type: <phandle> | |
| Definition: Phandle to this BMan instance's portals | |
| - fsl,liodn | |
| Usage: See pamu.txt | |
| Value type: <prop-encoded-array> | |
| Definition: PAMU property used for static LIODN assignment | |
| - fsl,iommu-parent | |
| Usage: See pamu.txt | |
| Value type: <phandle> | |
| Definition: PAMU property used for dynamic LIODN assignment | |
| For additional details about the PAMU/LIODN binding(s) see pamu.txt | |
| Devices connected to a BMan instance via Direct Connect Portals (DCP) must link | |
| to the respective BMan instance | |
| - fsl,bman | |
| Usage: Required | |
| Value type: <prop-encoded-array> | |
| Description: List of phandle and DCP index pairs, to the BMan instance | |
| to which this device is connected via the DCP | |
| BMan Private Memory Node | |
| BMan requires a contiguous range of physical memory used for the backing store | |
| for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as | |
| a node under the /reserved-memory node. | |
| The BMan FBPR memory node must be named "bman-fbpr" | |
| PROPERTIES | |
| - compatible | |
| Usage: required | |
| Value type: <stringlist> | |
| Definition: PPC platforms: Must include "fsl,bman-fbpr" | |
| ARM platforms: Must include "shared-dma-pool" | |
| as well as the "no-map" property | |
| The following constraints are relevant to the FBPR private memory: | |
| - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to | |
| 16 GiB | |
| - The alignment must be a muliptle of the memory size | |
| The size of the FBPR must be chosen by observing the hardware features configured | |
| via the Reset Configuration Word (RCW) and that are relevant to a specific board | |
| (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports, | |
| etc.). The size configured in the DT must reflect the hardware capabilities and | |
| not the specific needs of an application | |
| For additional details about reserved memory regions see reserved-memory.txt | |
| EXAMPLE | |
| The example below shows a BMan FBPR dynamic allocation memory node | |
| reserved-memory { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| ranges; | |
| bman_fbpr: bman-fbpr { | |
| compatible = "shared-mem-pool"; | |
| size = <0 0x1000000>; | |
| alignment = <0 0x1000000>; | |
| no-map; | |
| }; | |
| }; | |
| The example below shows a (P4080) BMan CCSR-space node | |
| bportals: bman-portals@ff4000000 { | |
| ... | |
| }; | |
| crypto@300000 { | |
| ... | |
| fsl,bman = <&bman, 2>; | |
| ... | |
| }; | |
| bman: bman@31a000 { | |
| compatible = "fsl,bman"; | |
| reg = <0x31a000 0x1000>; | |
| interrupts = <16 2 1 2>; | |
| fsl,liodn = <0x17>; | |
| fsl,bman-portals = <&bportals>; | |
| memory-region = <&bman_fbpr>; | |
| }; | |
| fman@400000 { | |
| ... | |
| fsl,bman = <&bman, 0>; | |
| ... | |
| }; |