summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2014-06-29 13:15:47 (GMT)
committerMadalin Bucur <madalin.bucur@freescale.com>2014-10-08 13:20:01 (GMT)
commite52033fb9de57167d6bf0952e6c126de930ceaa0 (patch)
tree112799aa41eabbd73023028877e47fdeaeeeaadf /Documentation
parent88199143a99c2205d4dfdb6e143bc00557b4e0aa (diff)
downloadlinux-fsl-qoriq-e52033fb9de57167d6bf0952e6c126de930ceaa0.tar.xz
fmd: add total-fifo-size attribute to binding doc
Change-Id: I1e757f85419d66bfca4bbf6d4097a871c3b68bc8 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/16878 Reviewed-by: Mandy Lavi <Mandy.Lavi@freescale.com> Tested-by: Mandy Lavi <Mandy.Lavi@freescale.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt85
1 files changed, 83 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt
index 7d160fb..86f6dac 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt
+++ b/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt
@@ -7,6 +7,7 @@ CONTENTS
- FMan Extended Args Node
- FMan-Port Extended Args Node
- Example
+ - General note on FMan internal resources
NOTE: The bindings described in this document are preliminary and subject to change.
@@ -40,12 +41,26 @@ PROPERTIES
Definition: Sets the AID mode.
The optional values are "port" and "tnum".
+ - total-fifo-size
+ Usage: optional
+ Value type: <u32>
+ Definition: Specifies the total space allocated for data FIFOs.
+ This attribute could be used when tuning the fman block.
+ It might be needed when expecting heavy traffic load and
+ then an increased value is required.
+ The extra-space will be taken from the PCD space portion
+ which means less space for classification patterns.
+ More information can be found in the note below -
+ "FMan Internal Resources".
+
+
Example
fman1-extd-args {
cell-index = <1>;
compatible = "fsl,fman-extended-args";
dma-aid-mode = "port";
+ total-fifo-size = <0x27000>;
};
=================================================================================
@@ -103,7 +118,7 @@ PROPERTIES
Usage: optional
Value type: <prop-encoded-array>
Definition: Specifies the fifo size required (first value)
- as well as the extra size required (second value).
+ as well as the required excessive buffer size (second value).
In the fman-port case "fifo-size" represent the size of memory (in bytes)
that the Fman controller allocates to handle the appropriate port
RX or TX activities.
@@ -175,7 +190,7 @@ fman1_rx4-extd-args {
errors-to-discard = <0x00020000>;
};
-=================================================================================
+===============================================================================
Example
chosen {
@@ -209,3 +224,69 @@ chosen {
};
};
};
+
+===============================================================================
+FMan Internal Resources
+
+The FMan internal resources are: FIFO buffers, number of open DMA lines,
+number of tasks (TNUMs), excessive buffer size, shared extra TNUMs and
+shared extra DMAs.
+
+FIFO allocation size ("total-fifo-size"):
+The P2/P3/P4/P5 devices have 160KB total size of MURAM.
+The MURAM resource has two consumers: the FIFOs and the microcode.
+In the FMan driver we reserve by default 32KB for the coarse-classification
+microcode and the rest of the 128KB are reserved for the ports FIFOs data.
+
+There are 4 types of ports ("fifo-size"): 10G, 1G, host command and
+Offline Parsing (O/H). Each one requires reservation of FIFOs space
+on the RX and on the TX sides. In addition there is a general space reservation
+called Excessive Buffer Size (Excessive Buffer Size: When Rx port FIFO size
+exceeds its max value BMI may allocate additional internal buffers to avoid
+frames discard) Default initialization values for committed FIFO sizes are:
+
+10G Tx Ports: 16KB for all ports
+10G Rx Ports: 16KB for regular ports
+ (if largest buffer pool is larger than 14K, fifo size should be
+ ((largest buffer pool size rounded up to 256) +1792)).
+1G Tx Ports: 4KB for regular frames (assuming 'dequeue pipeline depth' <= 2)
+ 11008B for regular ports using jumbo frames.
+1G Rx Ports: 4KB for regular ports (unless largest buffer pool is larger than
+ 2304B, in which case FIFO should be:
+ ((largest buffer pool size rounded up to 256) +1792)).
+O/H Ports: 1536B (assuming 'dequeue pipeline depth' <= 2)
+
+Default initialization value for Rx ports excessive FIFO size is:
+16KB of excessive buffer size.
+
+Tasks allocation ("num-tnums"):
+Committed number of tnums is defined per port and specifies the maximum number
+of concurrent tasks that the port can create. The total number of committed
+tnums for all ports should not exceed the total number of tnums defined for
+the whole FMan block. There's a max number of 128 tnums per FM. By default,
+the total number is configured to be 96. When a port reached its max number
+of committed tasks, the BMI, if configured accordingly, may allocate
+extra tnums to the port in order to ease its stress.
+The committed number of tnums (and excessive tnums) are initialized by default:
+with the following values:
+10G Rx/Tx Ports: 16 (8)
+1G Rx/Tx Ports: 3 (2)
+Offline parsing ports: 3 (2)
+Host command ports: 1 (0)
+
+Number of open DMAs allocation ("num-dmas")
+The number of open DMAs is defined per port and specifies the number of maximum
+outstanding DMA requests allowed. The total number of committed open DMAs
+for all ports should not exceed the total number of open DMAs defined for
+the whole FM. There's a max number of 32 open DMA's per FM. By default,
+the total number is configured to be 24. When a port reached its max DMA
+transactions, the BMI may allocate extra DMA to the port (if configured to
+do so) in order to ease its stress.
+
+The committed number of DMAs (and excessive dmas) is initialized by default
+with the following values:
+10G Rx Port: 4 (8)
+10G Tx Port: 10 (8)
+1G Rx/Tx Ports: 1 (1)
+Offline parsing ports: 1 (1)
+Host command ports: 1 (0)