1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0e8011faSEmmanuel Vadot%YAML 1.2 3*0e8011faSEmmanuel Vadot--- 4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/fsl/fsl,qman-fqd.yaml# 5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0e8011faSEmmanuel Vadot 7*0e8011faSEmmanuel Vadottitle: QMan Private Memory Nodes 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadotmaintainers: 10*0e8011faSEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 11*0e8011faSEmmanuel Vadot 12*0e8011faSEmmanuel Vadotdescription: | 13*0e8011faSEmmanuel Vadot QMan requires two contiguous range of physical memory used for the backing store 14*0e8011faSEmmanuel Vadot for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR). 15*0e8011faSEmmanuel Vadot This memory is reserved/allocated as a node under the /reserved-memory node. 16*0e8011faSEmmanuel Vadot 17*0e8011faSEmmanuel Vadot BMan requires a contiguous range of physical memory used for the backing store 18*0e8011faSEmmanuel Vadot for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as 19*0e8011faSEmmanuel Vadot a node under the /reserved-memory node. 20*0e8011faSEmmanuel Vadot 21*0e8011faSEmmanuel Vadot The QMan FQD memory node must be named "qman-fqd" 22*0e8011faSEmmanuel Vadot The QMan PFDR memory node must be named "qman-pfdr" 23*0e8011faSEmmanuel Vadot The BMan FBPR memory node must be named "bman-fbpr" 24*0e8011faSEmmanuel Vadot 25*0e8011faSEmmanuel Vadot The following constraints are relevant to the FQD and PFDR private memory: 26*0e8011faSEmmanuel Vadot - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to 27*0e8011faSEmmanuel Vadot 1 GiB 28*0e8011faSEmmanuel Vadot - The alignment must be a muliptle of the memory size 29*0e8011faSEmmanuel Vadot 30*0e8011faSEmmanuel Vadot The size of the FQD and PFDP must be chosen by observing the hardware features 31*0e8011faSEmmanuel Vadot configured via the Reset Configuration Word (RCW) and that are relevant to a 32*0e8011faSEmmanuel Vadot specific board (e.g. number of MAC(s) pinned-out, number of offline/host command 33*0e8011faSEmmanuel Vadot FMan ports, etc.). The size configured in the DT must reflect the hardware 34*0e8011faSEmmanuel Vadot capabilities and not the specific needs of an application 35*0e8011faSEmmanuel Vadot 36*0e8011faSEmmanuel Vadot For additional details about reserved memory regions see 37*0e8011faSEmmanuel Vadot reserved-memory/reserved-memory.yaml in dtschema project. 38*0e8011faSEmmanuel Vadot 39*0e8011faSEmmanuel Vadotproperties: 40*0e8011faSEmmanuel Vadot $nodename: 41*0e8011faSEmmanuel Vadot pattern: '^(qman-fqd|qman-pfdr|bman-fbpr)+$' 42*0e8011faSEmmanuel Vadot 43*0e8011faSEmmanuel Vadot compatible: 44*0e8011faSEmmanuel Vadot enum: 45*0e8011faSEmmanuel Vadot - fsl,qman-fqd 46*0e8011faSEmmanuel Vadot - fsl,qman-pfdr 47*0e8011faSEmmanuel Vadot - fsl,bman-fbpr 48*0e8011faSEmmanuel Vadot 49*0e8011faSEmmanuel Vadotrequired: 50*0e8011faSEmmanuel Vadot - compatible 51*0e8011faSEmmanuel Vadot 52*0e8011faSEmmanuel VadotallOf: 53*0e8011faSEmmanuel Vadot - $ref: reserved-memory.yaml 54*0e8011faSEmmanuel Vadot 55*0e8011faSEmmanuel VadotunevaluatedProperties: false 56*0e8011faSEmmanuel Vadot 57*0e8011faSEmmanuel Vadotexamples: 58*0e8011faSEmmanuel Vadot - | 59*0e8011faSEmmanuel Vadot reserved-memory { 60*0e8011faSEmmanuel Vadot #address-cells = <2>; 61*0e8011faSEmmanuel Vadot #size-cells = <2>; 62*0e8011faSEmmanuel Vadot 63*0e8011faSEmmanuel Vadot qman-fqd { 64*0e8011faSEmmanuel Vadot compatible = "shared-dma-pool"; 65*0e8011faSEmmanuel Vadot size = <0 0x400000>; 66*0e8011faSEmmanuel Vadot alignment = <0 0x400000>; 67*0e8011faSEmmanuel Vadot no-map; 68*0e8011faSEmmanuel Vadot }; 69*0e8011faSEmmanuel Vadot }; 70