xref: /freebsd/sys/contrib/device-tree/Bindings/soc/fsl/fsl,qman-fqd.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
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