cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qman.txt (4996B)


      1QorIQ DPAA Queue Manager Device Tree Binding
      2
      3Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
      4
      5CONTENTS
      6
      7	- QMan Node
      8	- QMan Private Memory Nodes
      9	- Example
     10
     11QMan Node
     12
     13The Queue Manager is part of the Data-Path Acceleration Architecture (DPAA). QMan
     14supports queuing and QoS scheduling of frames to CPUs, network interfaces and
     15DPAA logic modules, maintains packet ordering within flows. Besides providing
     16flow-level queuing, is also responsible for congestion management functions such
     17as RED/WRED, congestion notifications and tail discards. This binding covers the
     18CCSR space programming model
     19
     20PROPERTIES
     21
     22- compatible
     23	Usage:		Required
     24	Value type:	<stringlist>
     25	Definition:	Must include "fsl,qman"
     26			May include "fsl,<SoC>-qman"
     27
     28- reg
     29	Usage:		Required
     30	Value type:	<prop-encoded-array>
     31	Definition:	Registers region within the CCSR address space
     32
     33The QMan revision information is located in the QMAN_IP_REV_1/2 registers which
     34are located at offsets 0xbf8 and 0xbfc
     35
     36- interrupts
     37	Usage:		Required
     38	Value type:	<prop-encoded-array>
     39	Definition:	Standard property. The error interrupt
     40
     41- fsl,qman-portals
     42	Usage:		Required
     43	Value type:	<phandle>
     44	Definition:	Phandle to this QMan instance's portals
     45
     46- fsl,liodn
     47	Usage:		See pamu.txt
     48	Value type:	<prop-encoded-array>
     49	Definition:	PAMU property used for static LIODN assignment
     50
     51- fsl,iommu-parent
     52	Usage:		See pamu.txt
     53	Value type:	<phandle>
     54	Definition:	PAMU property used for dynamic LIODN assignment
     55
     56	For additional details about the PAMU/LIODN binding(s) see pamu.txt
     57
     58- clocks
     59	Usage:		See clock-bindings.txt and qoriq-clock.txt
     60	Value type:	<prop-encoded-array>
     61	Definition:	Reference input clock. Its frequency is half of the
     62			platform clock
     63- memory-regions
     64	Usage:		Required for ARM
     65	Value type:	<phandle array>
     66	Definition:	List of phandles referencing the QMan private memory
     67			nodes (described below). The qman-fqd node must be
     68			first followed by qman-pfdr node. Only used on ARM
     69
     70Devices connected to a QMan instance via Direct Connect Portals (DCP) must link
     71to the respective QMan instance
     72
     73- fsl,qman
     74	Usage:		Required
     75	Value type:	<prop-encoded-array>
     76	Description:	List of phandle and DCP index pairs, to the QMan instance
     77			to which this device is connected via the DCP
     78
     79QMan Private Memory Nodes
     80
     81QMan requires two contiguous range of physical memory used for the backing store
     82for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
     83This memory is reserved/allocated as a node under the /reserved-memory node.
     84
     85For additional details about reserved memory regions see reserved-memory.txt
     86
     87The QMan FQD memory node must be named "qman-fqd"
     88
     89PROPERTIES
     90
     91- compatible
     92	Usage:		required
     93	Value type:	<stringlist>
     94	Definition:	PPC platforms: Must include "fsl,qman-fqd"
     95			ARM platforms: Must include "shared-dma-pool"
     96				       as well as the "no-map" property
     97
     98The QMan PFDR memory node must be named "qman-pfdr"
     99
    100PROPERTIES
    101
    102- compatible
    103	Usage:		required
    104	Value type:	<stringlist>
    105	Definition:	PPC platforms: Must include "fsl,qman-pfdr"
    106			ARM platforms: Must include "shared-dma-pool"
    107				       as well as the "no-map" property
    108
    109The following constraints are relevant to the FQD and PFDR private memory:
    110	- The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
    111	  1 GiB
    112	- The alignment must be a muliptle of the memory size
    113
    114The size of the FQD and PFDP must be chosen by observing the hardware features
    115configured via the Reset Configuration Word (RCW) and that are relevant to a
    116specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
    117FMan ports, etc.). The size configured in the DT must reflect the hardware
    118capabilities and not the specific needs of an application
    119
    120For additional details about reserved memory regions see reserved-memory.txt
    121
    122EXAMPLE
    123
    124The example below shows a QMan FQD and a PFDR dynamic allocation memory nodes
    125
    126	reserved-memory {
    127		#address-cells = <2>;
    128		#size-cells = <2>;
    129		ranges;
    130
    131		qman_fqd: qman-fqd {
    132			compatible = "shared-dma-pool";
    133			size = <0 0x400000>;
    134			alignment = <0 0x400000>;
    135			no-map;
    136		};
    137		qman_pfdr: qman-pfdr {
    138			compatible = "shared-dma-pool";
    139			size = <0 0x2000000>;
    140			alignment = <0 0x2000000>;
    141			no-map;
    142		};
    143	};
    144
    145The example below shows a (P4080) QMan CCSR-space node
    146
    147	qportals: qman-portals@ff4200000 {
    148		...
    149	};
    150
    151	clockgen: global-utilities@e1000 {
    152		...
    153		sysclk: sysclk {
    154			...
    155		};
    156		...
    157		platform_pll: platform-pll@c00 {
    158			#clock-cells = <1>;
    159			reg = <0xc00 0x4>;
    160			compatible = "fsl,qoriq-platform-pll-1.0";
    161			clocks = <&sysclk>;
    162			clock-output-names = "platform-pll", "platform-pll-div2";
    163		};
    164		...
    165	};
    166
    167	crypto@300000 {
    168		...
    169		fsl,qman = <&qman, 2>;
    170		...
    171	};
    172
    173	qman: qman@318000 {
    174		compatible = "fsl,qman";
    175		reg = <0x318000 0x1000>;
    176		interrupts = <16 2 1 3>
    177		fsl,liodn = <0x16>;
    178		fsl,qman-portals = <&qportals>;
    179		memory-region = <&qman_fqd &qman_pfdr>;
    180		clocks = <&platform_pll 1>;
    181	};
    182
    183	fman@400000 {
    184		...
    185		fsl,qman = <&qman, 0>;
    186		...
    187	};