Commit 304a90c4 authored by Frank Li's avatar Frank Li Committed by Rob Herring (Arm)
Browse files

dt-bindings: soc: fsl: Convert q(b)man-* to yaml format



Convert qman, bman, qman-portals, bman-portals to yaml format.

Additional Change for fsl,q(b)man-portal:
- Only keep one example.
- Add fsl,qman-channel-id property.
- Use interrupt type macro.
- Remove top level qman-portals@ff4200000 at example.

Additional change for fsl,q(b)man:
- Fixed example error.
- Remove redundent part, only keep fsl,qman node.
- Change memory-regions to memory-region.
- fsl,q(b)man-portals is not required property

Additional change for fsl,qman-fqd.yaml:
- Fixed example error.
- Only keep one example.
- Ref to reserve-memory.yaml
- Merge fsl,bman reserver memory part

Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20240626193753.2088926-1-Frank.Li@nxp.com


Signed-off-by: default avatarRob Herring (Arm) <robh@kernel.org>
parent bfb921b2
Loading
Loading
Loading
Loading
+0 −56
Original line number Diff line number Diff line
QorIQ DPAA Buffer Manager Portals Device Tree Binding

Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.

CONTENTS

	- BMan Portal
	- Example

BMan Portal Node

Portals are memory mapped interfaces to BMan that allow low-latency, lock-less
interaction by software running on processor cores, accelerators and network
interfaces with the BMan

PROPERTIES

- compatible
	Usage:		Required
	Value type:	<stringlist>
	Definition:	Must include "fsl,bman-portal-<hardware revision>"
			May include "fsl,<SoC>-bman-portal" or "fsl,bman-portal"

- reg
	Usage:		Required
	Value type:	<prop-encoded-array>
	Definition:	Two regions. The first is the cache-enabled region of
			the portal. The second is the cache-inhibited region of
			the portal

- interrupts
	Usage:		Required
	Value type:	<prop-encoded-array>
	Definition:	Standard property

EXAMPLE

The example below shows a (P4080) BMan portals container/bus node with two portals

	bman-portals@ff4000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges = <0 0xf 0xf4000000 0x200000>;

		bman-portal@0 {
			compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
			reg = <0x0 0x4000>, <0x100000 0x1000>;
			interrupts = <105 2 0 0>;
		};
		bman-portal@4000 {
			compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
			reg = <0x4000 0x4000>, <0x101000 0x1000>;
			interrupts = <107 2 0 0>;
		};
	};
+0 −137
Original line number Diff line number Diff line
QorIQ DPAA Buffer Manager Device Tree Bindings

Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.

CONTENTS

	- BMan Node
	- BMan Private Memory Node
	- Example

BMan Node

The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
BMan supports hardware allocation and deallocation of buffers belonging to pools
originally created by software with configurable depletion thresholds. This
binding covers the CCSR space programming model

PROPERTIES

- compatible
	Usage:		Required
	Value type:	<stringlist>
	Definition:	Must include "fsl,bman"
			May include "fsl,<SoC>-bman"

- reg
	Usage:		Required
	Value type:	<prop-encoded-array>
	Definition:	Registers region within the CCSR address space

The BMan revision information is located in the BMAN_IP_REV_1/2 registers which
are located at offsets 0xbf8 and 0xbfc

- interrupts
	Usage:		Required
	Value type:	<prop-encoded-array>
	Definition:	Standard property. The error interrupt

- fsl,bman-portals
	Usage:		Required
	Value type:	<phandle>
	Definition:	Phandle to this BMan instance's portals

- fsl,liodn
	Usage:		See pamu.txt
	Value type:	<prop-encoded-array>
	Definition:	PAMU property used for static LIODN assignment

- fsl,iommu-parent
	Usage:		See pamu.txt
	Value type:	<phandle>
	Definition:	PAMU property used for dynamic LIODN assignment

	For additional details about the PAMU/LIODN binding(s) see pamu.txt

Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
to the respective BMan instance

- fsl,bman
	Usage:		Required
	Value type:	<prop-encoded-array>
	Description:	List of phandle and DCP index pairs, to the BMan instance
			to which this device is connected via the DCP

BMan Private Memory Node

BMan requires a contiguous range of physical memory used for the backing store
for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
a node under the /reserved-memory node.

The BMan FBPR memory node must be named "bman-fbpr"

PROPERTIES

- compatible
	Usage:		required
	Value type:	<stringlist>
	Definition:	PPC platforms: Must include "fsl,bman-fbpr"
			ARM platforms: Must include "shared-dma-pool"
				       as well as the "no-map" property

The following constraints are relevant to the FBPR private memory:
	- The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to
	  16 GiB
	- The alignment must be a muliptle of the memory size

The size of the FBPR must be chosen by observing the hardware features configured
via the Reset Configuration Word (RCW) and that are relevant to a specific board
(e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports,
etc.). The size configured in the DT must reflect the hardware capabilities and
not the specific needs of an application

For additional details about reserved memory regions see reserved-memory.txt

EXAMPLE

The example below shows a BMan FBPR dynamic allocation memory node

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		bman_fbpr: bman-fbpr {
			compatible = "shared-mem-pool";
			size = <0 0x1000000>;
			alignment = <0 0x1000000>;
			no-map;
		};
	};

The example below shows a (P4080) BMan CCSR-space node

	bportals: bman-portals@ff4000000 {
		...
	};

	crypto@300000 {
		...
		fsl,bman = <&bman, 2>;
		...
	};

	bman: bman@31a000 {
		compatible = "fsl,bman";
		reg = <0x31a000 0x1000>;
		interrupts = <16 2 1 2>;
		fsl,liodn = <0x17>;
		fsl,bman-portals = <&bportals>;
		memory-region = <&bman_fbpr>;
	};

	fman@400000 {
		...
		fsl,bman = <&bman, 0>;
		...
	};
+52 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/fsl/fsl,bman-portal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QorIQ DPAA Queue Manager Portals

maintainers:
  - Frank Li <Frank.Li@nxp.com>

description:
  QorIQ DPAA Buffer Manager Portal

  Portals are memory mapped interfaces to BMan that allow low-latency, lock-less
  interaction by software running on processor cores, accelerators and network
  interfaces with the BMan

properties:
  compatible:
    oneOf:
      - const: fsl,bman-portal
      - items:
          - enum:
              - fsl,bman-portal-1.0.0
              - fsl,ls1043a-bmap-portal
              - fsl,ls1046a-bmap-portal
          - const: fsl,bman-portal
  reg:
    items:
      - description: the cache-enabled region of the portal
      - description: the cache-inhibited region of the portal

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    bman-portal@0 {
        compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
        reg = <0x0 0x4000>, <0x100000 0x1000>;
        interrupts = <105 IRQ_TYPE_EDGE_FALLING 0 0>;
    };
+83 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/fsl/fsl,bman.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QorIQ DPAA Buffer Manager

maintainers:
  - Frank Li <Frank.Li@nxp.com>

description:
  The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
  BMan supports hardware allocation and deallocation of buffers belonging to
  pools originally created by software with configurable depletion thresholds.
  This binding covers the CCSR space programming model

properties:
  compatible:
    oneOf:
      - const: fsl,bman
      - items:
          - enum:
              - fsl,ls1043a-bman
              - fsl,ls1046a-bman
          - const: fsl,bman

  reg:
    items:
      - description: |
          Registers region within the CCSR address space

          The BMan revision information is located in the BMAN_IP_REV_1/2
          registers which are located at offsets 0xbf8 and 0xbfc

  interrupts:
    items:
      - description: The error interrupt

  memory-region:
    minItems: 1
    maxItems: 2
    description:
      List of phandles referencing the BMan private memory
      nodes (described below). The bman-fqd node must be
      first followed by bman-pfdr node. Only used on ARM

      Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
      to the respective BMan instance

  fsl,bman-portals:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: ref fsl,bman-port.yaml

  fsl,liodn:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      See pamu.txt, PAMU property used for static LIODN assignment

  fsl,iommu-parent:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      See pamu.txt, PAMU property used for dynamic LIODN assignment

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    bman@31a000 {
        compatible = "fsl,bman";
        reg = <0x31a000 0x1000>;
        interrupts = <16 IRQ_TYPE_EDGE_FALLING 1 2>;
        fsl,liodn = <0x17>;
        fsl,bman-portals = <&bportals>;
        memory-region = <&bman_fbpr>;
    };
+69 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/fsl/fsl,qman-fqd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QMan Private Memory Nodes

maintainers:
  - Frank Li <Frank.Li@nxp.com>

description: |
  QMan requires two contiguous range of physical memory used for the backing store
  for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
  This memory is reserved/allocated as a node under the /reserved-memory node.

  BMan requires a contiguous range of physical memory used for the backing store
  for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
  a node under the /reserved-memory node.

  The QMan FQD memory node must be named "qman-fqd"
  The QMan PFDR memory node must be named "qman-pfdr"
  The BMan FBPR memory node must be named "bman-fbpr"

  The following constraints are relevant to the FQD and PFDR private memory:
    - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
      1 GiB
    - The alignment must be a muliptle of the memory size

  The size of the FQD and PFDP must be chosen by observing the hardware features
  configured via the Reset Configuration Word (RCW) and that are relevant to a
  specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
  FMan ports, etc.). The size configured in the DT must reflect the hardware
  capabilities and not the specific needs of an application

  For additional details about reserved memory regions see
  reserved-memory/reserved-memory.yaml in dtschema project.

properties:
  $nodename:
    pattern: '^(qman-fqd|qman-pfdr|bman-fbpr)+$'

  compatible:
    enum:
      - fsl,qman-fqd
      - fsl,qman-pfdr
      - fsl,bman-fbpr

required:
  - compatible

allOf:
  - $ref: reserved-memory.yaml

unevaluatedProperties: false

examples:
  - |
    reserved-memory {
        #address-cells = <2>;
        #size-cells = <2>;

        qman-fqd {
            compatible = "shared-dma-pool";
            size = <0 0x400000>;
            alignment = <0 0x400000>;
            no-map;
        };
    };
Loading