Skip to content

Commit 8fc4dea

Browse files
sredavem330
authored andcommitted
dt-bindings: net: snps,dwmac: Document queue config subnodes
The queue configuration is referenced by snps,mtl-rx-config and snps,mtl-tx-config. Some in-tree DTs and the example put the referenced config nodes directly beneath the root node, but most in-tree DTs put it as child node of the dwmac node. This adds proper description for this setup, which has the advantage of validating the queue configuration node content. The example is also updated to use the sub-node style, incl. the axi bus configuration node, which got the same treatment as the queues config in 5361660 ("dt-bindings: net: snps,dwmac: Document stmmac-axi-config subnode"). Signed-off-by: Sebastian Reichel <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent f3fb589 commit 8fc4dea

File tree

1 file changed

+264
-81
lines changed

1 file changed

+264
-81
lines changed

Documentation/devicetree/bindings/net/snps,dwmac.yaml

Lines changed: 264 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -167,56 +167,238 @@ properties:
167167
snps,mtl-rx-config:
168168
$ref: /schemas/types.yaml#/definitions/phandle
169169
description:
170-
Multiple RX Queues parameters. Phandle to a node that can
171-
contain the following properties
172-
* snps,rx-queues-to-use, number of RX queues to be used in the
173-
driver
174-
* Choose one of these RX scheduling algorithms
175-
* snps,rx-sched-sp, Strict priority
176-
* snps,rx-sched-wsp, Weighted Strict priority
177-
* For each RX queue
178-
* Choose one of these modes
179-
* snps,dcb-algorithm, Queue to be enabled as DCB
180-
* snps,avb-algorithm, Queue to be enabled as AVB
181-
* snps,map-to-dma-channel, Channel to map
182-
* Specifiy specific packet routing
183-
* snps,route-avcp, AV Untagged Control packets
184-
* snps,route-ptp, PTP Packets
185-
* snps,route-dcbcp, DCB Control Packets
186-
* snps,route-up, Untagged Packets
187-
* snps,route-multi-broad, Multicast & Broadcast Packets
188-
* snps,priority, bitmask of the tagged frames priorities assigned to
189-
the queue
170+
Multiple RX Queues parameters. Phandle to a node that
171+
implements the 'rx-queues-config' object described in
172+
this binding.
173+
174+
rx-queues-config:
175+
type: object
176+
properties:
177+
snps,rx-queues-to-use:
178+
$ref: /schemas/types.yaml#/definitions/uint32
179+
description: number of RX queues to be used in the driver
180+
snps,rx-sched-sp:
181+
type: boolean
182+
description: Strict priority
183+
snps,rx-sched-wsp:
184+
type: boolean
185+
description: Weighted Strict priority
186+
allOf:
187+
- if:
188+
required:
189+
- snps,rx-sched-sp
190+
then:
191+
properties:
192+
snps,rx-sched-wsp: false
193+
- if:
194+
required:
195+
- snps,rx-sched-wsp
196+
then:
197+
properties:
198+
snps,rx-sched-sp: false
199+
patternProperties:
200+
"^queue[0-9]$":
201+
description: Each subnode represents a queue.
202+
type: object
203+
properties:
204+
snps,dcb-algorithm:
205+
type: boolean
206+
description: Queue to be enabled as DCB
207+
snps,avb-algorithm:
208+
type: boolean
209+
description: Queue to be enabled as AVB
210+
snps,map-to-dma-channel:
211+
$ref: /schemas/types.yaml#/definitions/uint32
212+
description: DMA channel id to map
213+
snps,route-avcp:
214+
type: boolean
215+
description: AV Untagged Control packets
216+
snps,route-ptp:
217+
type: boolean
218+
description: PTP Packets
219+
snps,route-dcbcp:
220+
type: boolean
221+
description: DCB Control Packets
222+
snps,route-up:
223+
type: boolean
224+
description: Untagged Packets
225+
snps,route-multi-broad:
226+
type: boolean
227+
description: Multicast & Broadcast Packets
228+
snps,priority:
229+
$ref: /schemas/types.yaml#/definitions/uint32
230+
description: Bitmask of the tagged frames priorities assigned to the queue
231+
allOf:
232+
- if:
233+
required:
234+
- snps,dcb-algorithm
235+
then:
236+
properties:
237+
snps,avb-algorithm: false
238+
- if:
239+
required:
240+
- snps,avb-algorithm
241+
then:
242+
properties:
243+
snps,dcb-algorithm: false
244+
- if:
245+
required:
246+
- snps,route-avcp
247+
then:
248+
properties:
249+
snps,route-ptp: false
250+
snps,route-dcbcp: false
251+
snps,route-up: false
252+
snps,route-multi-broad: false
253+
- if:
254+
required:
255+
- snps,route-ptp
256+
then:
257+
properties:
258+
snps,route-avcp: false
259+
snps,route-dcbcp: false
260+
snps,route-up: false
261+
snps,route-multi-broad: false
262+
- if:
263+
required:
264+
- snps,route-dcbcp
265+
then:
266+
properties:
267+
snps,route-avcp: false
268+
snps,route-ptp: false
269+
snps,route-up: false
270+
snps,route-multi-broad: false
271+
- if:
272+
required:
273+
- snps,route-up
274+
then:
275+
properties:
276+
snps,route-avcp: false
277+
snps,route-ptp: false
278+
snps,route-dcbcp: false
279+
snps,route-multi-broad: false
280+
- if:
281+
required:
282+
- snps,route-multi-broad
283+
then:
284+
properties:
285+
snps,route-avcp: false
286+
snps,route-ptp: false
287+
snps,route-dcbcp: false
288+
snps,route-up: false
289+
additionalProperties: false
290+
additionalProperties: false
190291

191292
snps,mtl-tx-config:
192293
$ref: /schemas/types.yaml#/definitions/phandle
193294
description:
194-
Multiple TX Queues parameters. Phandle to a node that can
195-
contain the following properties
196-
* snps,tx-queues-to-use, number of TX queues to be used in the
197-
driver
198-
* Choose one of these TX scheduling algorithms
199-
* snps,tx-sched-wrr, Weighted Round Robin
200-
* snps,tx-sched-wfq, Weighted Fair Queuing
201-
* snps,tx-sched-dwrr, Deficit Weighted Round Robin
202-
* snps,tx-sched-sp, Strict priority
203-
* For each TX queue
204-
* snps,weight, TX queue weight (if using a DCB weight
205-
algorithm)
206-
* Choose one of these modes
207-
* snps,dcb-algorithm, TX queue will be working in DCB
208-
* snps,avb-algorithm, TX queue will be working in AVB
209-
[Attention] Queue 0 is reserved for legacy traffic
210-
and so no AVB is available in this queue.
211-
* Configure Credit Base Shaper (if AVB Mode selected)
212-
* snps,send_slope, enable Low Power Interface
213-
* snps,idle_slope, unlock on WoL
214-
* snps,high_credit, max write outstanding req. limit
215-
* snps,low_credit, max read outstanding req. limit
216-
* snps,priority, bitmask of the priorities assigned to the queue.
217-
When a PFC frame is received with priorities matching the bitmask,
218-
the queue is blocked from transmitting for the pause time specified
219-
in the PFC frame.
295+
Multiple TX Queues parameters. Phandle to a node that
296+
implements the 'tx-queues-config' object described in
297+
this binding.
298+
299+
tx-queues-config:
300+
type: object
301+
properties:
302+
snps,tx-queues-to-use:
303+
$ref: /schemas/types.yaml#/definitions/uint32
304+
description: number of TX queues to be used in the driver
305+
snps,tx-sched-wrr:
306+
type: boolean
307+
description: Weighted Round Robin
308+
snps,tx-sched-wfq:
309+
type: boolean
310+
description: Weighted Fair Queuing
311+
snps,tx-sched-dwrr:
312+
type: boolean
313+
description: Deficit Weighted Round Robin
314+
snps,tx-sched-sp:
315+
type: boolean
316+
description: Strict priority
317+
allOf:
318+
- if:
319+
required:
320+
- snps,tx-sched-wrr
321+
then:
322+
properties:
323+
snps,tx-sched-wfq: false
324+
snps,tx-sched-dwrr: false
325+
snps,tx-sched-sp: false
326+
- if:
327+
required:
328+
- snps,tx-sched-wfq
329+
then:
330+
properties:
331+
snps,tx-sched-wrr: false
332+
snps,tx-sched-dwrr: false
333+
snps,tx-sched-sp: false
334+
- if:
335+
required:
336+
- snps,tx-sched-dwrr
337+
then:
338+
properties:
339+
snps,tx-sched-wrr: false
340+
snps,tx-sched-wfq: false
341+
snps,tx-sched-sp: false
342+
- if:
343+
required:
344+
- snps,tx-sched-sp
345+
then:
346+
properties:
347+
snps,tx-sched-wrr: false
348+
snps,tx-sched-wfq: false
349+
snps,tx-sched-dwrr: false
350+
patternProperties:
351+
"^queue[0-9]$":
352+
description: Each subnode represents a queue.
353+
type: object
354+
properties:
355+
snps,weight:
356+
$ref: /schemas/types.yaml#/definitions/uint32
357+
description: TX queue weight (if using a DCB weight algorithm)
358+
snps,dcb-algorithm:
359+
type: boolean
360+
description: TX queue will be working in DCB
361+
snps,avb-algorithm:
362+
type: boolean
363+
description:
364+
TX queue will be working in AVB.
365+
Queue 0 is reserved for legacy traffic and so no AVB is
366+
available in this queue.
367+
snps,send_slope:
368+
$ref: /schemas/types.yaml#/definitions/uint32
369+
description: enable Low Power Interface
370+
snps,idle_slope:
371+
$ref: /schemas/types.yaml#/definitions/uint32
372+
description: unlock on WoL
373+
snps,high_credit:
374+
$ref: /schemas/types.yaml#/definitions/uint32
375+
description: max write outstanding req. limit
376+
snps,low_credit:
377+
$ref: /schemas/types.yaml#/definitions/uint32
378+
description: max read outstanding req. limit
379+
snps,priority:
380+
$ref: /schemas/types.yaml#/definitions/uint32
381+
description:
382+
Bitmask of the tagged frames priorities assigned to the queue.
383+
When a PFC frame is received with priorities matching the bitmask,
384+
the queue is blocked from transmitting for the pause time specified
385+
in the PFC frame.
386+
allOf:
387+
- if:
388+
required:
389+
- snps,dcb-algorithm
390+
then:
391+
properties:
392+
snps,avb-algorithm: false
393+
- if:
394+
required:
395+
- snps,avb-algorithm
396+
then:
397+
properties:
398+
snps,dcb-algorithm: false
399+
snps,weight: false
400+
additionalProperties: false
401+
additionalProperties: false
220402

221403
snps,reset-gpio:
222404
deprecated: true
@@ -463,41 +645,6 @@ additionalProperties: true
463645

464646
examples:
465647
- |
466-
stmmac_axi_setup: stmmac-axi-config {
467-
snps,wr_osr_lmt = <0xf>;
468-
snps,rd_osr_lmt = <0xf>;
469-
snps,blen = <256 128 64 32 0 0 0>;
470-
};
471-
472-
mtl_rx_setup: rx-queues-config {
473-
snps,rx-queues-to-use = <1>;
474-
snps,rx-sched-sp;
475-
queue0 {
476-
snps,dcb-algorithm;
477-
snps,map-to-dma-channel = <0x0>;
478-
snps,priority = <0x0>;
479-
};
480-
};
481-
482-
mtl_tx_setup: tx-queues-config {
483-
snps,tx-queues-to-use = <2>;
484-
snps,tx-sched-wrr;
485-
queue0 {
486-
snps,weight = <0x10>;
487-
snps,dcb-algorithm;
488-
snps,priority = <0x0>;
489-
};
490-
491-
queue1 {
492-
snps,avb-algorithm;
493-
snps,send_slope = <0x1000>;
494-
snps,idle_slope = <0x1000>;
495-
snps,high_credit = <0x3E800>;
496-
snps,low_credit = <0xFFC18000>;
497-
snps,priority = <0x1>;
498-
};
499-
};
500-
501648
gmac0: ethernet@e0800000 {
502649
compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
503650
reg = <0xe0800000 0x8000>;
@@ -516,6 +663,42 @@ examples:
516663
snps,axi-config = <&stmmac_axi_setup>;
517664
snps,mtl-rx-config = <&mtl_rx_setup>;
518665
snps,mtl-tx-config = <&mtl_tx_setup>;
666+
667+
stmmac_axi_setup: stmmac-axi-config {
668+
snps,wr_osr_lmt = <0xf>;
669+
snps,rd_osr_lmt = <0xf>;
670+
snps,blen = <256 128 64 32 0 0 0>;
671+
};
672+
673+
mtl_rx_setup: rx-queues-config {
674+
snps,rx-queues-to-use = <1>;
675+
snps,rx-sched-sp;
676+
queue0 {
677+
snps,dcb-algorithm;
678+
snps,map-to-dma-channel = <0x0>;
679+
snps,priority = <0x0>;
680+
};
681+
};
682+
683+
mtl_tx_setup: tx-queues-config {
684+
snps,tx-queues-to-use = <2>;
685+
snps,tx-sched-wrr;
686+
queue0 {
687+
snps,weight = <0x10>;
688+
snps,dcb-algorithm;
689+
snps,priority = <0x0>;
690+
};
691+
692+
queue1 {
693+
snps,avb-algorithm;
694+
snps,send_slope = <0x1000>;
695+
snps,idle_slope = <0x1000>;
696+
snps,high_credit = <0x3E800>;
697+
snps,low_credit = <0xFFC18000>;
698+
snps,priority = <0x1>;
699+
};
700+
};
701+
519702
mdio0 {
520703
#address-cells = <1>;
521704
#size-cells = <0>;

0 commit comments

Comments
 (0)