~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt (Architecture i386) and /Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt (Architecture mips)


  1 * Texas Instruments Keystone Navigator Queue M      1 * Texas Instruments Keystone Navigator Queue Management SubSystem driver
  2                                                     2 
  3 The QMSS (Queue Manager Sub System) found on K      3 The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
  4 the main hardware sub system which forms the b      4 the main hardware sub system which forms the backbone of the Keystone
  5 multi-core Navigator. QMSS consist of queue ma      5 multi-core Navigator. QMSS consist of queue managers, packed-data structure
  6 processors(PDSP), linking RAM, descriptor pool      6 processors(PDSP), linking RAM, descriptor pools and infrastructure
  7 Packet DMA.                                         7 Packet DMA.
  8 The Queue Manager is a hardware module that is      8 The Queue Manager is a hardware module that is responsible for accelerating
  9 management of the packet queues. Packets are q      9 management of the packet queues. Packets are queued/de-queued by writing or
 10 reading descriptor address to a particular mem     10 reading descriptor address to a particular memory mapped location. The PDSPs
 11 perform QMSS related functions like accumulati     11 perform QMSS related functions like accumulation, QoS, or event management.
 12 Linking RAM registers are used to link the des     12 Linking RAM registers are used to link the descriptors which are stored in
 13 descriptor RAM. Descriptor RAM is configurable     13 descriptor RAM. Descriptor RAM is configurable as internal or external memory.
 14 The QMSS driver manages the PDSP setups, linki     14 The QMSS driver manages the PDSP setups, linking RAM regions,
 15 queue pool management (allocation, push, pop a     15 queue pool management (allocation, push, pop and notify) and descriptor
 16 pool management.                                   16 pool management.
 17                                                    17 
 18                                                    18 
 19 Required properties:                               19 Required properties:
 20 - compatible    : Must be "ti,keystone-navigat     20 - compatible    : Must be "ti,keystone-navigator-qmss".
 21                 : Must be "ti,66ak2g-navss-qm"     21                 : Must be "ti,66ak2g-navss-qm" for QMSS on K2G SoC.
 22 - clocks        : phandle to the reference clo     22 - clocks        : phandle to the reference clock for this device.
 23 - queue-range   : <start number> total range o     23 - queue-range   : <start number> total range of queue numbers for the device.
 24 - linkram0      : <address size> for internal      24 - linkram0      : <address size> for internal link ram, where size is the total
 25                   link ram entries.                25                   link ram entries.
 26 - linkram1      : <address size> for external      26 - linkram1      : <address size> for external link ram, where size is the total
 27                   external link ram entries. I     27                   external link ram entries. If the address is specified as "0"
 28                   driver will allocate memory.     28                   driver will allocate memory.
 29 - qmgrs         : child node describing the in     29 - qmgrs         : child node describing the individual queue managers on the
 30                   SoC. On keystone 1 devices t     30                   SoC. On keystone 1 devices there should be only one node.
 31                   On keystone 2 devices there      31                   On keystone 2 devices there can be more than 1 node.
 32   -- managed-queues     : the actual queues ma     32   -- managed-queues     : the actual queues managed by each queue manager
 33                           instance, specified      33                           instance, specified as <"base queue #" "# of queues">.
 34   -- reg                : Address and size of      34   -- reg                : Address and size of the register set for the device.
 35                           Register regions sho     35                           Register regions should be specified in the following
 36                           order                    36                           order
 37                           - Queue Peek region.     37                           - Queue Peek region.
 38                           - Queue status RAM.      38                           - Queue status RAM.
 39                           - Queue configuratio     39                           - Queue configuration region.
 40                           - Descriptor memory      40                           - Descriptor memory setup region.
 41                           - Queue Management/Q     41                           - Queue Management/Queue Proxy region for queue Push.
 42                           - Queue Management/Q     42                           - Queue Management/Queue Proxy region for queue Pop.
 43                                                    43 
 44 For QMSS on K2G SoC, following QM reg indexes      44 For QMSS on K2G SoC, following QM reg indexes are used in that order
 45                           - Queue Peek region.     45                           - Queue Peek region.
 46                           - Queue configuratio     46                           - Queue configuration region.
 47                           - Queue Management/Q     47                           - Queue Management/Queue Proxy region for queue Push/Pop.
 48                                                    48 
 49 - queue-pools   : child node classifying the q     49 - queue-pools   : child node classifying the queue ranges into pools.
 50                   Queue ranges are grouped int     50                   Queue ranges are grouped into 3 type of pools:
 51                   - qpend           : pool of      51                   - qpend           : pool of qpend(interruptible) queues
 52                   - general-purpose : pool of      52                   - general-purpose : pool of general queues, primarily used
 53                                       as free      53                                       as free descriptor queues or the
 54                                       transmit     54                                       transmit DMA queues.
 55                   - accumulator     : pool of      55                   - accumulator     : pool of queues on PDSP accumulator channel
 56                   Each range can have the foll     56                   Each range can have the following properties:
 57   -- qrange             : number of queues to      57   -- qrange             : number of queues to use per queue range, specified as
 58                           <"base queue #" "# o     58                           <"base queue #" "# of queues">.
 59   -- interrupts         : Optional property to     59   -- interrupts         : Optional property to specify the interrupt mapping
 60                           for interruptible qu     60                           for interruptible queues. The driver additionally sets
 61                           the interrupt affini     61                           the interrupt affinity hint based on the cpu mask.
 62   -- qalloc-by-id       : Optional property to     62   -- qalloc-by-id       : Optional property to specify that the queues in this
 63                           range can only be al     63                           range can only be allocated by queue id.
 64   -- accumulator        : Accumulator channel      64   -- accumulator        : Accumulator channel specification. Any of the PDSPs in
 65                           QMSS can be loaded w     65                           QMSS can be loaded with the accumulator firmware. The
 66                           accumulator firmware     66                           accumulator firmware’s job is to poll a select number of
 67                           queues looking for d     67                           queues looking for descriptors that have been pushed
 68                           into them. Descripto     68                           into them. Descriptors are popped from the queue and
 69                           placed in a buffer p     69                           placed in a buffer provided by the host. When the list
 70                           becomes full or a pr     70                           becomes full or a programmed time period expires, the
 71                           accumulator triggers     71                           accumulator triggers an interrupt to the host to read
 72                           the buffer for descr     72                           the buffer for descriptor information. This firmware
 73                           comes in 16, 32, and     73                           comes in 16, 32, and 48 channel builds. Each of these
 74                           channels can be conf     74                           channels can be configured to monitor 32 contiguous
 75                           queues.  Accumulator     75                           queues.  Accumulator channel property is specified as:
 76                           <pdsp-id, channel, e     76                           <pdsp-id, channel, entries, pacing mode, latency>
 77                           pdsp-id     : QMSS P     77                           pdsp-id     : QMSS PDSP running accumulator firmware
 78                                         on whi     78                                         on which the channel has to be
 79                                         config     79                                         configured
 80                           channel     : Accumu     80                           channel     : Accumulator channel number
 81                           entries     : Size o     81                           entries     : Size of the accumulator descriptor list
 82                           pacing mode : Interr     82                           pacing mode : Interrupt pacing mode
 83                                         0 : No     83                                         0 : None, i.e interrupt on list full only
 84                                         1 : Ti     84                                         1 : Time delay since last interrupt
 85                                         2 : Ti     85                                         2 : Time delay since first new packet
 86                                         3 : Ti     86                                         3 : Time delay since last new packet
 87                           latency     : time t     87                           latency     : time to delay the interrupt, specified
 88                                         in mic     88                                         in microseconds.
 89   -- multi-queue        : Optional property to     89   -- multi-queue        : Optional property to specify that the channel has to
 90                           monitor up to 32 que     90                           monitor up to 32 queues starting at the base queue #.
 91 - descriptor-regions    : child node describin     91 - descriptor-regions    : child node describing the memory regions for keystone
 92                           navigator packet DMA     92                           navigator packet DMA descriptors. The memory for
 93                           descriptors will be      93                           descriptors will be allocated by the driver.
 94   -- id                         : region numbe     94   -- id                         : region number in QMSS.
 95   -- region-spec                : specifies th     95   -- region-spec                : specifies the number of descriptors in the
 96                                   region, spec     96                                   region, specified as
 97                                   <"# of descr     97                                   <"# of descriptors" "descriptor size">.
 98   -- link-index                 : start index,     98   -- link-index                 : start index, i.e. index of the first
 99                                   descriptor i     99                                   descriptor in the region.
100                                                   100 
101 Optional properties:                              101 Optional properties:
102 - dma-coherent  : Present if DMA operations ar    102 - dma-coherent  : Present if DMA operations are coherent.
103 - pdsps         : child node describing the PD    103 - pdsps         : child node describing the PDSP configuration.
104   -- firmware           : firmware to be loade    104   -- firmware           : firmware to be loaded on the PDSP.
105   -- id                 : the qmss pdsp that w    105   -- id                 : the qmss pdsp that will run the firmware.
106   -- reg                : Address and size of     106   -- reg                : Address and size of the register set for the PDSP.
107                           Register regions sho    107                           Register regions should be specified in the following
108                           order                   108                           order
109                           - PDSP internal RAM     109                           - PDSP internal RAM region.
110                           - PDSP control/statu    110                           - PDSP control/status region registers.
111                           - QMSS interrupt dis    111                           - QMSS interrupt distributor registers.
112                           - PDSP command inter    112                           - PDSP command interface region.
113                                                   113 
114 Example:                                          114 Example:
115                                                   115 
116 qmss: qmss@2a40000 {                              116 qmss: qmss@2a40000 {
117         compatible = "ti,keystone-qmss";          117         compatible = "ti,keystone-qmss";
118         dma-coherent;                             118         dma-coherent;
119         #address-cells = <1>;                     119         #address-cells = <1>;
120         #size-cells = <1>;                        120         #size-cells = <1>;
121         clocks = <&chipclk13>;                    121         clocks = <&chipclk13>;
122         ranges;                                   122         ranges;
123         queue-range     = <0 0x4000>;             123         queue-range     = <0 0x4000>;
124         linkram0        = <0x100000 0x8000>;      124         linkram0        = <0x100000 0x8000>;
125         linkram1        = <0x0 0x10000>;          125         linkram1        = <0x0 0x10000>;
126                                                   126 
127         qmgrs {                                   127         qmgrs {
128                 #address-cells = <1>;             128                 #address-cells = <1>;
129                 #size-cells = <1>;                129                 #size-cells = <1>;
130                 ranges;                           130                 ranges;
131                 qmgr0 {                           131                 qmgr0 {
132                         managed-queues = <0 0x    132                         managed-queues = <0 0x2000>;
133                         reg = <0x2a40000 0x200    133                         reg = <0x2a40000 0x20000>,
134                               <0x2a06000 0x400    134                               <0x2a06000 0x400>,
135                               <0x2a02000 0x100    135                               <0x2a02000 0x1000>,
136                               <0x2a03000 0x100    136                               <0x2a03000 0x1000>,
137                               <0x23a80000 0x20    137                               <0x23a80000 0x20000>,
138                               <0x2a80000 0x200    138                               <0x2a80000 0x20000>;
139                 };                                139                 };
140                                                   140 
141                 qmgr1 {                           141                 qmgr1 {
142                         managed-queues = <0x20    142                         managed-queues = <0x2000 0x2000>;
143                         reg = <0x2a60000 0x200    143                         reg = <0x2a60000 0x20000>,
144                               <0x2a06400 0x400    144                               <0x2a06400 0x400>,
145                               <0x2a04000 0x100    145                               <0x2a04000 0x1000>,
146                               <0x2a05000 0x100    146                               <0x2a05000 0x1000>,
147                               <0x23aa0000 0x20    147                               <0x23aa0000 0x20000>,
148                               <0x2aa0000 0x200    148                               <0x2aa0000 0x20000>;
149                 };                                149                 };
150         };                                        150         };
151         queue-pools {                             151         queue-pools {
152                 qpend {                           152                 qpend {
153                         qpend-0 {                 153                         qpend-0 {
154                                 qrange = <658     154                                 qrange = <658 8>;
155                                 interrupts =<0    155                                 interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
156                                              0    156                                              0 43 0xf04 0 44 0xf04 0 45 0xf04
157                                              0    157                                              0 46 0xf04 0 47 0xf04>;
158                         };                        158                         };
159                         qpend-1 {                 159                         qpend-1 {
160                                 qrange = <8704    160                                 qrange = <8704 16>;
161                                 interrupts = <    161                                 interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
162                                                   162                                               0 51 0xf04 0 52 0xf04 0 53 0xf04
163                                                   163                                               0 54 0xf04 0 55 0xf04 0 56 0xf04
164                                                   164                                               0 57 0xf04 0 58 0xf04 0 59 0xf04
165                                                   165                                               0 60 0xf04 0 61 0xf04 0 62 0xf04
166                                                   166                                               0 63 0xf04>;
167                                 qalloc-by-id;     167                                 qalloc-by-id;
168                         };                        168                         };
169                         qpend-2 {                 169                         qpend-2 {
170                                 qrange = <8720    170                                 qrange = <8720 16>;
171                                 interrupts = <    171                                 interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
172                                                   172                                               0 59 0xf04 0 68 0xf04 0 69 0xf04
173                                                   173                                               0 70 0xf04 0 71 0xf04 0 72 0xf04
174                                                   174                                               0 73 0xf04 0 74 0xf04 0 75 0xf04
175                                                   175                                               0 76 0xf04 0 77 0xf04 0 78 0xf04
176                                                   176                                               0 79 0xf04>;
177                         };                        177                         };
178                 };                                178                 };
179                 general-purpose {                 179                 general-purpose {
180                         gp-0 {                    180                         gp-0 {
181                                 qrange = <4000    181                                 qrange = <4000 64>;
182                         };                        182                         };
183                         netcp-tx {                183                         netcp-tx {
184                                 qrange = <640     184                                 qrange = <640 9>;
185                                 qalloc-by-id;     185                                 qalloc-by-id;
186                         };                        186                         };
187                 };                                187                 };
188                 accumulator {                     188                 accumulator {
189                         acc-0 {                   189                         acc-0 {
190                                 qrange = <128     190                                 qrange = <128 32>;
191                                 accumulator =     191                                 accumulator = <0 36 16 2 50>;
192                                 interrupts = <    192                                 interrupts = <0 215 0xf01>;
193                                 multi-queue;      193                                 multi-queue;
194                                 qalloc-by-id;     194                                 qalloc-by-id;
195                         };                        195                         };
196                         acc-1 {                   196                         acc-1 {
197                                 qrange = <160     197                                 qrange = <160 32>;
198                                 accumulator =     198                                 accumulator = <0 37 16 2 50>;
199                                 interrupts = <    199                                 interrupts = <0 216 0xf01>;
200                                 multi-queue;      200                                 multi-queue;
201                         };                        201                         };
202                         acc-2 {                   202                         acc-2 {
203                                 qrange = <192     203                                 qrange = <192 32>;
204                                 accumulator =     204                                 accumulator = <0 38 16 2 50>;
205                                 interrupts = <    205                                 interrupts = <0 217 0xf01>;
206                                 multi-queue;      206                                 multi-queue;
207                         };                        207                         };
208                         acc-3 {                   208                         acc-3 {
209                                 qrange = <224     209                                 qrange = <224 32>;
210                                 accumulator =     210                                 accumulator = <0 39 16 2 50>;
211                                 interrupts = <    211                                 interrupts = <0 218 0xf01>;
212                                 multi-queue;      212                                 multi-queue;
213                         };                        213                         };
214                 };                                214                 };
215         };                                        215         };
216         descriptor-regions {                      216         descriptor-regions {
217                 #address-cells = <1>;             217                 #address-cells = <1>;
218                 #size-cells = <1>;                218                 #size-cells = <1>;
219                 ranges;                           219                 ranges;
220                 region-12 {                       220                 region-12 {
221                         id = <12>;                221                         id = <12>;
222                         region-spec = <8192 12    222                         region-spec = <8192 128>; /* num_desc desc_size */
223                         link-index = <0x4000>;    223                         link-index = <0x4000>;
224                 };                                224                 };
225         };                                        225         };
226         pdsps {                                   226         pdsps {
227                 #address-cells = <1>;             227                 #address-cells = <1>;
228                 #size-cells = <1>;                228                 #size-cells = <1>;
229                 ranges;                           229                 ranges;
230                 pdsp0@2a10000 {                   230                 pdsp0@2a10000 {
231                         reg = <0x2a10000 0x100    231                         reg = <0x2a10000 0x1000>,
232                               <0x2a0f000 0x100    232                               <0x2a0f000 0x100>,
233                               <0x2a0c000 0x3c8    233                               <0x2a0c000 0x3c8>,
234                               <0x2a20000 0x400    234                               <0x2a20000 0x4000>;
235                         id = <0>;                 235                         id = <0>;
236                 };                                236                 };
237         };                                        237         };
238 }; /* qmss */                                     238 }; /* qmss */
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php