Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [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,bman-portals |
| 40 | Usage: Required |
| 41 | Value type: <phandle> |
| 42 | Definition: Phandle to this BMan instance's portals |
| 43 | |
| 44 | - fsl,liodn |
| 45 | Usage: See pamu.txt |
| 46 | Value type: <prop-encoded-array> |
| 47 | Definition: PAMU property used for static LIODN assignment |
| 48 | |
| 49 | - fsl,iommu-parent |
| 50 | Usage: See pamu.txt |
| 51 | Value type: <phandle> |
| 52 | Definition: PAMU property used for dynamic LIODN assignment |
| 53 | |
| 54 | For additional details about the PAMU/LIODN binding(s) see pamu.txt |
| 55 | |
| 56 | Devices connected to a BMan instance via Direct Connect Portals (DCP) must link |
| 57 | to the respective BMan instance |
| 58 | |
| 59 | - fsl,bman |
| 60 | Usage: Required |
| 61 | Value type: <prop-encoded-array> |
| 62 | Description: List of phandle and DCP index pairs, to the BMan instance |
| 63 | to which this device is connected via the DCP |
| 64 | |
| 65 | BMan Private Memory Node |
| 66 | |
| 67 | BMan requires a contiguous range of physical memory used for the backing store |
| 68 | for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as |
| 69 | a node under the /reserved-memory node. |
| 70 | |
| 71 | The BMan FBPR memory node must be named "bman-fbpr" |
| 72 | |
| 73 | PROPERTIES |
| 74 | |
| 75 | - compatible |
| 76 | Usage: required |
| 77 | Value type: <stringlist> |
| 78 | Definition: PPC platforms: Must include "fsl,bman-fbpr" |
| 79 | ARM platforms: Must include "shared-dma-pool" |
| 80 | as well as the "no-map" property |
| 81 | |
| 82 | The following constraints are relevant to the FBPR private memory: |
| 83 | - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to |
| 84 | 16 GiB |
| 85 | - The alignment must be a muliptle of the memory size |
| 86 | |
| 87 | The size of the FBPR must be chosen by observing the hardware features configured |
| 88 | via the Reset Configuration Word (RCW) and that are relevant to a specific board |
| 89 | (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports, |
| 90 | etc.). The size configured in the DT must reflect the hardware capabilities and |
| 91 | not the specific needs of an application |
| 92 | |
| 93 | For additional details about reserved memory regions see reserved-memory.txt |
| 94 | |
| 95 | EXAMPLE |
| 96 | |
| 97 | The example below shows a BMan FBPR dynamic allocation memory node |
| 98 | |
| 99 | reserved-memory { |
| 100 | #address-cells = <2>; |
| 101 | #size-cells = <2>; |
| 102 | ranges; |
| 103 | |
| 104 | bman_fbpr: bman-fbpr { |
| 105 | compatible = "shared-mem-pool"; |
| 106 | size = <0 0x1000000>; |
| 107 | alignment = <0 0x1000000>; |
| 108 | no-map; |
| 109 | }; |
| 110 | }; |
| 111 | |
| 112 | The example below shows a (P4080) BMan CCSR-space node |
| 113 | |
| 114 | bportals: bman-portals@ff4000000 { |
| 115 | ... |
| 116 | }; |
| 117 | |
| 118 | crypto@300000 { |
| 119 | ... |
| 120 | fsl,bman = <&bman, 2>; |
| 121 | ... |
| 122 | }; |
| 123 | |
| 124 | bman: bman@31a000 { |
| 125 | compatible = "fsl,bman"; |
| 126 | reg = <0x31a000 0x1000>; |
| 127 | interrupts = <16 2 1 2>; |
| 128 | fsl,liodn = <0x17>; |
| 129 | fsl,bman-portals = <&bportals>; |
| 130 | memory-region = <&bman_fbpr>; |
| 131 | }; |
| 132 | |
| 133 | fman@400000 { |
| 134 | ... |
| 135 | fsl,bman = <&bman, 0>; |
| 136 | ... |
| 137 | }; |