From e52033fb9de57167d6bf0952e6c126de930ceaa0 Mon Sep 17 00:00:00 2001 From: Mandy Lavi Date: Sun, 29 Jun 2014 16:15:47 +0300 Subject: fmd: add total-fifo-size attribute to binding doc Change-Id: I1e757f85419d66bfca4bbf6d4097a871c3b68bc8 Signed-off-by: Mandy Lavi Reviewed-on: http://git.am.freescale.net:8181/16878 Reviewed-by: Mandy Lavi Tested-by: Mandy Lavi 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: + 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: 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) -- cgit v0.10.2