* [PATCH v2 1/4] dt-bindings: net: Add network-class schema for mac-address properties
2023-02-12 12:16 [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Janne Grunau
@ 2023-02-12 12:16 ` Janne Grunau
2023-02-12 15:39 ` Andrew Lunn
2023-02-12 12:16 ` [PATCH v2 2/4] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema Janne Grunau
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Janne Grunau @ 2023-02-12 12:16 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon
Cc: netdev, devicetree, linux-kernel, linux-wireless, Janne Grunau
The ethernet-controller schema specifies "mac-address" and
"local-mac-address" but other network devices such as wireless network
adapters use mac addresses as well.
The Devicetree Specification, Release v0.3 specifies in section 4.3.1
a generic "Network Class Binding" with "address-bits", "mac-address",
"local-mac-address" and "max-frame-size". This schema specifies the
"address-bits" property and moves the remaining properties over from
the ethernet-controller.yaml schema.
The "max-frame-size" property is used to describe the maximal payload
size despite its name. Keep the description from ethernet-controller
specifying this property as MTU. The contradictory description in the
Devicetree Specification is ignored.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Changed in v2:
- restrict address-size to 48 bits for strict mac address size
validation
- move max-frame-size as well
---
.../bindings/net/ethernet-controller.yaml | 25 +-----------
.../devicetree/bindings/net/network-class.yaml | 44 ++++++++++++++++++++++
2 files changed, 45 insertions(+), 24 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
index 00be387984ac..1ad66af55d77 100644
--- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -17,30 +17,6 @@ properties:
$ref: /schemas/types.yaml#/definitions/string
description: Human readable label on a port of a box.
- local-mac-address:
- description:
- Specifies the MAC address that was assigned to the network device.
- $ref: /schemas/types.yaml#/definitions/uint8-array
- minItems: 6
- maxItems: 6
-
- mac-address:
- description:
- Specifies the MAC address that was last used by the boot
- program; should be used in cases where the MAC address assigned
- to the device by the boot program is different from the
- local-mac-address property.
- $ref: /schemas/types.yaml#/definitions/uint8-array
- minItems: 6
- maxItems: 6
-
- max-frame-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Maximum transfer unit (IEEE defined MTU), rather than the
- maximum frame size (there\'s contradiction in the Devicetree
- Specification).
-
max-speed:
$ref: /schemas/types.yaml#/definitions/uint32
description:
@@ -226,6 +202,7 @@ dependencies:
pcs-handle-names: [pcs-handle]
allOf:
+ - $ref: /schemas/net/network-class.yaml#
- if:
properties:
phy-mode:
diff --git a/Documentation/devicetree/bindings/net/network-class.yaml b/Documentation/devicetree/bindings/net/network-class.yaml
new file mode 100644
index 000000000000..6c42c783cb03
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/network-class.yaml
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/network-class.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Network Class Common Properties
+
+maintainers:
+ - Devicetree Specification Mailing List <devicetree-spec@vger.kernel.org>
+
+properties:
+ address-bits:
+ description:
+ Specifies number of address bits required to address the device described
+ by this node. This property specifies number of bits in MAC address.
+ default: 48
+ const: 48
+
+ local-mac-address:
+ description:
+ Specifies MAC address that was assigned to the network device described by
+ the node containing this property.
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ minItems: 6
+ maxItems: 6
+
+ mac-address:
+ description:
+ Specifies the MAC address that was last used by the boot program. This
+ property should be used in cases where the MAC address assigned to the
+ device by the boot program is different from the
+ local-mac-address property. This property shall be used only if the value
+ differs from local-mac-address property value.
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ minItems: 6
+ maxItems: 6
+
+ max-frame-size:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Maximum transfer unit (IEEE defined MTU).
+
+additionalProperties: true
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: net: Add network-class schema for mac-address properties
2023-02-12 12:16 ` [PATCH v2 1/4] dt-bindings: net: Add network-class schema for mac-address properties Janne Grunau
@ 2023-02-12 15:39 ` Andrew Lunn
0 siblings, 0 replies; 11+ messages in thread
From: Andrew Lunn @ 2023-02-12 15:39 UTC (permalink / raw)
To: Janne Grunau
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon, netdev, devicetree, linux-kernel, linux-wireless
> + max-frame-size:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Maximum transfer unit (IEEE defined MTU).
Do you have a reference you can include here to a clause in an IEEE
802 document? We need this unambiguously defined otherwise more DT
blobs are going to use the wrong value.
Andrew
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema
2023-02-12 12:16 [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Janne Grunau
2023-02-12 12:16 ` [PATCH v2 1/4] dt-bindings: net: Add network-class schema for mac-address properties Janne Grunau
@ 2023-02-12 12:16 ` Janne Grunau
2023-02-12 15:49 ` Andrew Lunn
2023-02-12 12:16 ` [PATCH v2 3/4] dt-bindings: wireless: silabs,wfx: Use network-class.yaml Janne Grunau
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Janne Grunau @ 2023-02-12 12:16 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon
Cc: netdev, devicetree, linux-kernel, linux-wireless, Janne Grunau
The network-class schema specifies local-mac-address as used in the
bcm4329-fmac device nodes of Apple silicon devices
(arch/arm64/boot/dts/apple).
Fixes `make dtbs_check` for those devices.
Signed-off-by: Janne Grunau <j@jannau.net>
---
.../devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
index fec1cc9b9a08..55b0a21acb96 100644
--- a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
@@ -116,11 +116,14 @@ properties:
NVRAM. This would normally be filled in by the bootloader from platform
configuration data.
+allOf:
+ - $ref: /schemas/net/network-class.yaml#
+
required:
- compatible
- reg
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/4] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema
2023-02-12 12:16 ` [PATCH v2 2/4] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema Janne Grunau
@ 2023-02-12 15:49 ` Andrew Lunn
0 siblings, 0 replies; 11+ messages in thread
From: Andrew Lunn @ 2023-02-12 15:49 UTC (permalink / raw)
To: Janne Grunau
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon, netdev, devicetree, linux-kernel, linux-wireless
On Sun, Feb 12, 2023 at 01:16:30PM +0100, Janne Grunau wrote:
> The network-class schema specifies local-mac-address as used in the
> bcm4329-fmac device nodes of Apple silicon devices
> (arch/arm64/boot/dts/apple).
> Fixes `make dtbs_check` for those devices.
Maybe a more hierarchical approach would be better? Add a
wireless-controller.yaml which includes ieee80211.yaml and
network-class.yaml? It would then follow the structure of Ethernet
controllers, bluetooth controllers, and can controllers.
Andrew
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] dt-bindings: wireless: silabs,wfx: Use network-class.yaml
2023-02-12 12:16 [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Janne Grunau
2023-02-12 12:16 ` [PATCH v2 1/4] dt-bindings: net: Add network-class schema for mac-address properties Janne Grunau
2023-02-12 12:16 ` [PATCH v2 2/4] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema Janne Grunau
@ 2023-02-12 12:16 ` Janne Grunau
2023-02-12 12:16 ` [PATCH v2 4/4] nios2: dts: Fix tse_mac "max-frame-size" property Janne Grunau
2023-02-20 19:40 ` [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Jakub Kicinski
4 siblings, 0 replies; 11+ messages in thread
From: Janne Grunau @ 2023-02-12 12:16 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon
Cc: netdev, devicetree, linux-kernel, linux-wireless, Janne Grunau
Instead listing local-mac-address and mac-address properties, reference
network-class.yaml schema. The schema brings in constraints for the
property checked during `make dtbs_check`.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml b/Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
index 583db5d42226..2ce50b57c096 100644
--- a/Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
@@ -72,15 +72,12 @@ properties:
"Platform Data Set" in Silabs jargon). Default depends of "compatible"
string. For "silabs,wf200", the default is 'wf200.pds'.
- local-mac-address: true
-
- mac-address: true
-
required:
- compatible
- reg
allOf:
+ - $ref: /schemas/net/network-class.yaml#
- $ref: /schemas/spi/spi-peripheral-props.yaml#
unevaluatedProperties: false
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] nios2: dts: Fix tse_mac "max-frame-size" property
2023-02-12 12:16 [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Janne Grunau
` (2 preceding siblings ...)
2023-02-12 12:16 ` [PATCH v2 3/4] dt-bindings: wireless: silabs,wfx: Use network-class.yaml Janne Grunau
@ 2023-02-12 12:16 ` Janne Grunau
2023-02-16 15:54 ` Dinh Nguyen
2023-02-20 19:40 ` [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Jakub Kicinski
4 siblings, 1 reply; 11+ messages in thread
From: Janne Grunau @ 2023-02-12 12:16 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Mailing List, Kalle Valo,
van Spriel, Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon
Cc: netdev, devicetree, linux-kernel, linux-wireless, Janne Grunau
The given value of 1518 seems to refer to the layer 2 ethernet frame
size without 802.1Q tag. Actual use of the "max-frame-size" including in
the consumer of the "altr,tse-1.0" compatible is the MTU.
Fixes: 95acd4c7b69c ("nios2: Device tree support")
Fixes: 61c610ec61bb ("nios2: Add Max10 device tree")
Signed-off-by: Janne Grunau <j@jannau.net>
---
arch/nios2/boot/dts/10m50_devboard.dts | 2 +-
arch/nios2/boot/dts/3c120_devboard.dts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/nios2/boot/dts/10m50_devboard.dts b/arch/nios2/boot/dts/10m50_devboard.dts
index 56339bef3247..0e7e5b0dd685 100644
--- a/arch/nios2/boot/dts/10m50_devboard.dts
+++ b/arch/nios2/boot/dts/10m50_devboard.dts
@@ -97,7 +97,7 @@ rgmii_0_eth_tse_0: ethernet@400 {
rx-fifo-depth = <8192>;
tx-fifo-depth = <8192>;
address-bits = <48>;
- max-frame-size = <1518>;
+ max-frame-size = <1500>;
local-mac-address = [00 00 00 00 00 00];
altr,has-supplementary-unicast;
altr,enable-sup-addr = <1>;
diff --git a/arch/nios2/boot/dts/3c120_devboard.dts b/arch/nios2/boot/dts/3c120_devboard.dts
index d10fb81686c7..3ee316906379 100644
--- a/arch/nios2/boot/dts/3c120_devboard.dts
+++ b/arch/nios2/boot/dts/3c120_devboard.dts
@@ -106,7 +106,7 @@ tse_mac: ethernet@4000 {
interrupt-names = "rx_irq", "tx_irq";
rx-fifo-depth = <8192>;
tx-fifo-depth = <8192>;
- max-frame-size = <1518>;
+ max-frame-size = <1500>;
local-mac-address = [ 00 00 00 00 00 00 ];
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] nios2: dts: Fix tse_mac "max-frame-size" property
2023-02-12 12:16 ` [PATCH v2 4/4] nios2: dts: Fix tse_mac "max-frame-size" property Janne Grunau
@ 2023-02-16 15:54 ` Dinh Nguyen
0 siblings, 0 replies; 11+ messages in thread
From: Dinh Nguyen @ 2023-02-16 15:54 UTC (permalink / raw)
To: Janne Grunau, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Mailing List,
Kalle Valo, van Spriel, Jérôme Pouiller, Ley Foon Tan,
Chee Nouk Phoon
Cc: netdev, devicetree, linux-kernel, linux-wireless
On 2/12/23 06:16, Janne Grunau wrote:
> The given value of 1518 seems to refer to the layer 2 ethernet frame
> size without 802.1Q tag. Actual use of the "max-frame-size" including in
> the consumer of the "altr,tse-1.0" compatible is the MTU.
>
> Fixes: 95acd4c7b69c ("nios2: Device tree support")
> Fixes: 61c610ec61bb ("nios2: Add Max10 device tree")
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
> arch/nios2/boot/dts/10m50_devboard.dts | 2 +-
> arch/nios2/boot/dts/3c120_devboard.dts | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/nios2/boot/dts/10m50_devboard.dts b/arch/nios2/boot/dts/10m50_devboard.dts
> index 56339bef3247..0e7e5b0dd685 100644
> --- a/arch/nios2/boot/dts/10m50_devboard.dts
> +++ b/arch/nios2/boot/dts/10m50_devboard.dts
> @@ -97,7 +97,7 @@ rgmii_0_eth_tse_0: ethernet@400 {
> rx-fifo-depth = <8192>;
> tx-fifo-depth = <8192>;
> address-bits = <48>;
> - max-frame-size = <1518>;
> + max-frame-size = <1500>;
> local-mac-address = [00 00 00 00 00 00];
> altr,has-supplementary-unicast;
> altr,enable-sup-addr = <1>;
> diff --git a/arch/nios2/boot/dts/3c120_devboard.dts b/arch/nios2/boot/dts/3c120_devboard.dts
> index d10fb81686c7..3ee316906379 100644
> --- a/arch/nios2/boot/dts/3c120_devboard.dts
> +++ b/arch/nios2/boot/dts/3c120_devboard.dts
> @@ -106,7 +106,7 @@ tse_mac: ethernet@4000 {
> interrupt-names = "rx_irq", "tx_irq";
> rx-fifo-depth = <8192>;
> tx-fifo-depth = <8192>;
> - max-frame-size = <1518>;
> + max-frame-size = <1500>;
> local-mac-address = [ 00 00 00 00 00 00 ];
> phy-mode = "rgmii-id";
> phy-handle = <&phy0>;
>
Applied!
Thanks,
Dinh
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema
2023-02-12 12:16 [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Janne Grunau
` (3 preceding siblings ...)
2023-02-12 12:16 ` [PATCH v2 4/4] nios2: dts: Fix tse_mac "max-frame-size" property Janne Grunau
@ 2023-02-20 19:40 ` Jakub Kicinski
2023-02-20 21:49 ` Rob Herring
4 siblings, 1 reply; 11+ messages in thread
From: Jakub Kicinski @ 2023-02-20 19:40 UTC (permalink / raw)
To: Janne Grunau
Cc: David S. Miller, Eric Dumazet, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Mailing List, Kalle Valo, van Spriel,
Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon, netdev, devicetree, linux-kernel, linux-wireless
On Sun, 12 Feb 2023 13:16:28 +0100 Janne Grunau wrote:
> The Devicetree Specification, Release v0.3 specifies in section 4.3.1
> a "Network Class Binding". This covers MAC address and maximal frame
> size properties. "local-mac-address" and "mac-address" with a fixed
> "address-size" of 48 bits are already in the ethernet-controller.yaml
> schema so move those over.
>
> Keep "address-size" fixed to 48 bits as it's unclear if network protocols
> using 64-bit mac addresses like ZigBee, 6LoWPAN and others are relevant for
> this binding. This allows mac address array size validation for ethernet
> and wireless lan devices.
>
> "max-frame-size" in the Devicetree Specification is written to cover the
> whole layer 2 ethernet frame but actual use for this property is the
> payload size. Keep the description from ethernet-controller.yaml which
> specifies the property as MTU.
Rob, Krzysztof - is this one on your todo list? It's been hanging
around in my queue, I'm worried I missed some related conversation.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema
2023-02-20 19:40 ` [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema Jakub Kicinski
@ 2023-02-20 21:49 ` Rob Herring
2023-02-20 22:02 ` Jakub Kicinski
0 siblings, 1 reply; 11+ messages in thread
From: Rob Herring @ 2023-02-20 21:49 UTC (permalink / raw)
To: Jakub Kicinski
Cc: Janne Grunau, David S. Miller, Eric Dumazet, Paolo Abeni,
Krzysztof Kozlowski, Mailing List, Kalle Valo, van Spriel,
Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon, netdev, devicetree, linux-kernel, linux-wireless
On Mon, Feb 20, 2023 at 1:40 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Sun, 12 Feb 2023 13:16:28 +0100 Janne Grunau wrote:
> > The Devicetree Specification, Release v0.3 specifies in section 4.3.1
> > a "Network Class Binding". This covers MAC address and maximal frame
> > size properties. "local-mac-address" and "mac-address" with a fixed
> > "address-size" of 48 bits are already in the ethernet-controller.yaml
> > schema so move those over.
> >
> > Keep "address-size" fixed to 48 bits as it's unclear if network protocols
> > using 64-bit mac addresses like ZigBee, 6LoWPAN and others are relevant for
> > this binding. This allows mac address array size validation for ethernet
> > and wireless lan devices.
> >
> > "max-frame-size" in the Devicetree Specification is written to cover the
> > whole layer 2 ethernet frame but actual use for this property is the
> > payload size. Keep the description from ethernet-controller.yaml which
> > specifies the property as MTU.
>
> Rob, Krzysztof - is this one on your todo list? It's been hanging
> around in my queue, I'm worried I missed some related conversation.
Andrew suggested changes on 1 and 2 which seem reasonable to me.
Rob
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 0/4] dt-bindings: net: Add network-class.yaml schema
2023-02-20 21:49 ` Rob Herring
@ 2023-02-20 22:02 ` Jakub Kicinski
0 siblings, 0 replies; 11+ messages in thread
From: Jakub Kicinski @ 2023-02-20 22:02 UTC (permalink / raw)
To: Rob Herring
Cc: Janne Grunau, David S. Miller, Eric Dumazet, Paolo Abeni,
Krzysztof Kozlowski, Mailing List, Kalle Valo, van Spriel,
Jérôme Pouiller, Dinh Nguyen, Ley Foon Tan,
Chee Nouk Phoon, netdev, devicetree, linux-kernel, linux-wireless
On Mon, 20 Feb 2023 15:49:44 -0600 Rob Herring wrote:
> > Rob, Krzysztof - is this one on your todo list? It's been hanging
> > around in my queue, I'm worried I missed some related conversation.
>
> Andrew suggested changes on 1 and 2 which seem reasonable to me.
Ah, thank you! I see them in lore but not in my MUA.
^ permalink raw reply [flat|nested] 11+ messages in thread