Emil Medve | 31ceb15 | 2014-11-05 09:18:51 -0600 | [diff] [blame] | 1 | QorIQ DPAA Buffer Manager Device Tree Bindings |
| 2 | |
| 3 | Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. |
| 4 | |
| 5 | CONTENTS |
| 6 | |
| 7 | - BMan Node |
| 8 | - BMan Private Memory Node |
| 9 | - Example |
| 10 | |
| 11 | BMan Node |
| 12 | |
| 13 | The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA). |
| 14 | BMan supports hardware allocation and deallocation of buffers belonging to pools |
| 15 | originally created by software with configurable depletion thresholds. This |
| 16 | binding covers the CCSR space programming model |
| 17 | |
| 18 | PROPERTIES |
| 19 | |
| 20 | - compatible |
| 21 | Usage: Required |
| 22 | Value type: <stringlist> |
| 23 | Definition: Must include "fsl,bman" |
| 24 | May include "fsl,<SoC>-bman" |
| 25 | |
| 26 | - reg |
| 27 | Usage: Required |
| 28 | Value type: <prop-encoded-array> |
| 29 | Definition: Registers region within the CCSR address space |
| 30 | |
| 31 | The BMan revision information is located in the BMAN_IP_REV_1/2 registers which |
| 32 | are located at offsets 0xbf8 and 0xbfc |
| 33 | |
| 34 | - interrupts |
| 35 | Usage: Required |
| 36 | Value type: <prop-encoded-array> |
| 37 | Definition: Standard property. The error interrupt |
| 38 | |
| 39 | - fsl,liodn |
| 40 | Usage: See pamu.txt |
| 41 | Value type: <prop-encoded-array> |
| 42 | Definition: PAMU property used for static LIODN assignment |
| 43 | |
| 44 | - fsl,iommu-parent |
| 45 | Usage: See pamu.txt |
| 46 | Value type: <phandle> |
| 47 | Definition: PAMU property used for dynamic LIODN assignment |
| 48 | |
| 49 | For additional details about the PAMU/LIODN binding(s) see pamu.txt |
| 50 | |
| 51 | Devices connected to a BMan instance via Direct Connect Portals (DCP) must link |
| 52 | to the respective BMan instance |
| 53 | |
| 54 | - fsl,bman |
| 55 | Usage: Required |
| 56 | Value type: <prop-encoded-array> |
| 57 | Description: List of phandle and DCP index pairs, to the BMan instance |
| 58 | to which this device is connected via the DCP |
| 59 | |
| 60 | BMan Private Memory Node |
| 61 | |
| 62 | BMan requires a contiguous range of physical memory used for the backing store |
| 63 | for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as a |
| 64 | node under the /reserved-memory node |
| 65 | |
| 66 | The BMan FBPR memory node must be named "bman-fbpr" |
| 67 | |
| 68 | PROPERTIES |
| 69 | |
| 70 | - compatible |
| 71 | Usage: required |
| 72 | Value type: <stringlist> |
| 73 | Definition: Must inclide "fsl,bman-fbpr" |
| 74 | |
| 75 | The following constraints are relevant to the FBPR private memory: |
| 76 | - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to |
| 77 | 16 GiB |
| 78 | - The alignment must be a muliptle of the memory size |
| 79 | |
| 80 | The size of the FBPR must be chosen by observing the hardware features configured |
| 81 | via the Reset Configuration Word (RCW) and that are relevant to a specific board |
| 82 | (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports, |
| 83 | etc.). The size configured in the DT must reflect the hardware capabilities and |
| 84 | not the specific needs of an application |
| 85 | |
| 86 | For additional details about reserved memory regions see reserved-memory.txt |
| 87 | |
| 88 | EXAMPLE |
| 89 | |
| 90 | The example below shows a BMan FBPR dynamic allocation memory node |
| 91 | |
| 92 | reserved-memory { |
| 93 | #address-cells = <2>; |
| 94 | #size-cells = <2>; |
| 95 | ranges; |
| 96 | |
| 97 | bman_fbpr: bman-fbpr { |
| 98 | compatible = "fsl,bman-fbpr"; |
Emil Medve | 1ee9df4 | 2014-12-08 04:29:16 -0600 | [diff] [blame^] | 99 | alloc-ranges = <0 0 0x10 0>; |
Emil Medve | 31ceb15 | 2014-11-05 09:18:51 -0600 | [diff] [blame] | 100 | size = <0 0x1000000>; |
| 101 | alignment = <0 0x1000000>; |
| 102 | }; |
| 103 | }; |
| 104 | |
| 105 | The example below shows a (P4080) BMan CCSR-space node |
| 106 | |
| 107 | crypto@300000 { |
| 108 | ... |
| 109 | fsl,bman = <&bman, 2>; |
| 110 | ... |
| 111 | }; |
| 112 | |
| 113 | bman: bman@31a000 { |
| 114 | compatible = "fsl,bman"; |
| 115 | reg = <0x31a000 0x1000>; |
| 116 | interrupts = <16 2 1 2>; |
| 117 | fsl,liodn = <0x17>; |
| 118 | memory-region = <&bman_fbpr>; |
| 119 | }; |
| 120 | |
| 121 | fman@400000 { |
| 122 | ... |
| 123 | fsl,bman = <&bman, 0>; |
| 124 | ... |
| 125 | }; |