Back to home page

OSCL-LXR

 
 

    


0001 QorIQ DPAA Buffer Manager Device Tree Bindings
0002 
0003 Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
0004 
0005 CONTENTS
0006 
0007         - BMan Node
0008         - BMan Private Memory Node
0009         - Example
0010 
0011 BMan Node
0012 
0013 The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
0014 BMan supports hardware allocation and deallocation of buffers belonging to pools
0015 originally created by software with configurable depletion thresholds. This
0016 binding covers the CCSR space programming model
0017 
0018 PROPERTIES
0019 
0020 - compatible
0021         Usage:          Required
0022         Value type:     <stringlist>
0023         Definition:     Must include "fsl,bman"
0024                         May include "fsl,<SoC>-bman"
0025 
0026 - reg
0027         Usage:          Required
0028         Value type:     <prop-encoded-array>
0029         Definition:     Registers region within the CCSR address space
0030 
0031 The BMan revision information is located in the BMAN_IP_REV_1/2 registers which
0032 are located at offsets 0xbf8 and 0xbfc
0033 
0034 - interrupts
0035         Usage:          Required
0036         Value type:     <prop-encoded-array>
0037         Definition:     Standard property. The error interrupt
0038 
0039 - fsl,bman-portals
0040         Usage:          Required
0041         Value type:     <phandle>
0042         Definition:     Phandle to this BMan instance's portals
0043 
0044 - fsl,liodn
0045         Usage:          See pamu.txt
0046         Value type:     <prop-encoded-array>
0047         Definition:     PAMU property used for static LIODN assignment
0048 
0049 - fsl,iommu-parent
0050         Usage:          See pamu.txt
0051         Value type:     <phandle>
0052         Definition:     PAMU property used for dynamic LIODN assignment
0053 
0054         For additional details about the PAMU/LIODN binding(s) see pamu.txt
0055 
0056 Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
0057 to the respective BMan instance
0058 
0059 - fsl,bman
0060         Usage:          Required
0061         Value type:     <prop-encoded-array>
0062         Description:    List of phandle and DCP index pairs, to the BMan instance
0063                         to which this device is connected via the DCP
0064 
0065 BMan Private Memory Node
0066 
0067 BMan requires a contiguous range of physical memory used for the backing store
0068 for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
0069 a node under the /reserved-memory node.
0070 
0071 The BMan FBPR memory node must be named "bman-fbpr"
0072 
0073 PROPERTIES
0074 
0075 - compatible
0076         Usage:          required
0077         Value type:     <stringlist>
0078         Definition:     PPC platforms: Must include "fsl,bman-fbpr"
0079                         ARM platforms: Must include "shared-dma-pool"
0080                                        as well as the "no-map" property
0081 
0082 The following constraints are relevant to the FBPR private memory:
0083         - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to
0084           16 GiB
0085         - The alignment must be a muliptle of the memory size
0086 
0087 The size of the FBPR must be chosen by observing the hardware features configured
0088 via the Reset Configuration Word (RCW) and that are relevant to a specific board
0089 (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports,
0090 etc.). The size configured in the DT must reflect the hardware capabilities and
0091 not the specific needs of an application
0092 
0093 For additional details about reserved memory regions see reserved-memory.txt
0094 
0095 EXAMPLE
0096 
0097 The example below shows a BMan FBPR dynamic allocation memory node
0098 
0099         reserved-memory {
0100                 #address-cells = <2>;
0101                 #size-cells = <2>;
0102                 ranges;
0103 
0104                 bman_fbpr: bman-fbpr {
0105                         compatible = "shared-mem-pool";
0106                         size = <0 0x1000000>;
0107                         alignment = <0 0x1000000>;
0108                         no-map;
0109                 };
0110         };
0111 
0112 The example below shows a (P4080) BMan CCSR-space node
0113 
0114         bportals: bman-portals@ff4000000 {
0115                 ...
0116         };
0117 
0118         crypto@300000 {
0119                 ...
0120                 fsl,bman = <&bman, 2>;
0121                 ...
0122         };
0123 
0124         bman: bman@31a000 {
0125                 compatible = "fsl,bman";
0126                 reg = <0x31a000 0x1000>;
0127                 interrupts = <16 2 1 2>;
0128                 fsl,liodn = <0x17>;
0129                 fsl,bman-portals = <&bportals>;
0130                 memory-region = <&bman_fbpr>;
0131         };
0132 
0133         fman@400000 {
0134                 ...
0135                 fsl,bman = <&bman, 0>;
0136                 ...
0137         };