* [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema
@ 2023-02-03 13:56 Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Janne Grunau @ 2023-02-03 13:56 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
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-wireless-u79uwXL29TY76Z2rM5mHXA, Janne Grunau
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 is already in the ethernet-controller.yaml
schema so move those over.
I think the only commonly used values for address-size are 48 and 64
bits (EUI-48 and EUI-64). Unfortunately I was not able to restrict the
mac-address size based on the address-size. This seems to be an side
effect of the array definition and I was not able to restrict "minItems"
or "maxItems" based on the address-size value in an "if"-"then"-"else"
block.
An easy way out would be to restrict address-size to 48-bits for now.
I've ignored "max-frame-size" since the description in
ethernet-controller.yaml claims there is a contradiction in the
Devicetree specification. I suppose it is describing the property
"max-frame-size" with "Specifies maximum packet length ...".
My understanding from the dt-schema README is that network-class.yaml
should live in the dt-schema repository since it describes properties
from the Devicetree specification. How is the synchronization handled in
this case? The motivation for this series is to fix dtbs_check failures
for Apple silicon devices both in the tree and upcoming ones.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Janne Grunau (3):
dt-bindings: net: Add network-class schema for mac-address properties
dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema
dt-bindings: wireless: silabs,wfx: Use network-class.yaml
.../bindings/net/ethernet-controller.yaml | 18 +---------
.../devicetree/bindings/net/network-class.yaml | 40 ++++++++++++++++++++++
.../bindings/net/wireless/brcm,bcm4329-fmac.yaml | 5 ++-
.../bindings/net/wireless/silabs,wfx.yaml | 5 +--
4 files changed, 46 insertions(+), 22 deletions(-)
---
base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
change-id: 20230203-dt-bindings-network-class-8367edd679d2
Best regards,
--
Janne Grunau <j@jannau.net>
^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>]
* [PATCH RFC 1/3] dt-bindings: net: Add network-class schema for mac-address properties
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
@ 2023-02-03 13:56 ` Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-1-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-03 14:41 ` [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema Rob Herring
1 sibling, 1 reply; 10+ messages in thread
From: Janne Grunau @ 2023-02-03 13:56 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
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-wireless-u79uwXL29TY76Z2rM5mHXA, 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 "local-mac-address" and "mac-address"
over from ethernet-controller.yaml.
The schema currently does not restrict MAC address size based on
address-bits.
Signed-off-by: Janne Grunau <j@jannau.net>
---
.../bindings/net/ethernet-controller.yaml | 18 +---------
.../devicetree/bindings/net/network-class.yaml | 40 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
index 00be387984ac..a5f6a09dfdea 100644
--- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -17,23 +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:
@@ -226,6 +209,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..676aec1c458e
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/network-class.yaml
@@ -0,0 +1,40 @@
+# 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 Bindings
+
+maintainers:
+ - Devicetree Specification Mailing List <devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.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.
+ If unspecified, the default value is 48.
+ default: 48
+ enum: [48, 64]
+
+ 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: 8
+
+ 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: 8
+
+additionalProperties: true
--
2.39.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-03 13:56 ` [PATCH RFC 1/3] dt-bindings: net: Add network-class schema for mac-address properties Janne Grunau
@ 2023-02-03 14:41 ` Rob Herring
[not found] ` <CAL_JsqKD7gD86_B93M19rBCWn+rmSw24vOGEhqi9Nvne1Xixwg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
1 sibling, 1 reply; 10+ messages in thread
From: Rob Herring @ 2023-02-03 14:41 UTC (permalink / raw)
To: Janne Grunau
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Krzysztof Kozlowski, Mailing List, Kalle Valo, van Spriel,
Jérôme Pouiller, netdev-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-wireless-u79uwXL29TY76Z2rM5mHXA
On Fri, Feb 3, 2023 at 7:56 AM Janne Grunau <j@jannau.net> 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 is already in the ethernet-controller.yaml
> schema so move those over.
> I think the only commonly used values for address-size are 48 and 64
> bits (EUI-48 and EUI-64). Unfortunately I was not able to restrict the
> mac-address size based on the address-size. This seems to be an side
> effect of the array definition and I was not able to restrict "minItems"
> or "maxItems" based on the address-size value in an "if"-"then"-"else"
> block.
> An easy way out would be to restrict address-size to 48-bits for now.
I've never seen 64-bits used...
> I've ignored "max-frame-size" since the description in
> ethernet-controller.yaml claims there is a contradiction in the
> Devicetree specification. I suppose it is describing the property
> "max-frame-size" with "Specifies maximum packet length ...".
Please include it and we'll fix the spec. It is clearly wrong. 2 nios
boards use 1518 and the consumer for them says it is MTU. Everything
else clearly uses mtu with 1500 or 9000.
> My understanding from the dt-schema README is that network-class.yaml
> should live in the dt-schema repository since it describes properties
> from the Devicetree specification. How is the synchronization handled in
> this case? The motivation for this series is to fix dtbs_check failures
> for Apple silicon devices both in the tree and upcoming ones.
Let's add it to the kernel, then later we can copy it to dtschema,
bump the minimum version the kernel requires, and delete the kernel
copy.
Rob
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH RFC 2/3] dt-bindings: wireless: bcm4329-fmac: Use network-class.yaml schema
2023-02-03 13:56 [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
@ 2023-02-03 13:56 ` Janne Grunau
2023-02-03 13:56 ` [PATCH RFC 3/3] dt-bindings: wireless: silabs,wfx: Use network-class.yaml Janne Grunau
2 siblings, 0 replies; 10+ messages in thread
From: Janne Grunau @ 2023-02-03 13:56 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
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] 10+ messages in thread
* [PATCH RFC 3/3] dt-bindings: wireless: silabs,wfx: Use network-class.yaml
2023-02-03 13:56 [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-03 13:56 ` [PATCH RFC 2/3] dt-bindings: wireless: bcm4329-fmac: Use " Janne Grunau
@ 2023-02-03 13:56 ` Janne Grunau
2 siblings, 0 replies; 10+ messages in thread
From: Janne Grunau @ 2023-02-03 13:56 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
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] 10+ messages in thread
end of thread, other threads:[~2023-02-07 7:10 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-03 13:56 [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-0-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-03 13:56 ` [PATCH RFC 1/3] dt-bindings: net: Add network-class schema for mac-address properties Janne Grunau
[not found] ` <20230203-dt-bindings-network-class-v1-1-452e0375200d-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-03 14:25 ` Rob Herring
2023-02-03 21:08 ` Krzysztof Kozlowski
2023-02-03 14:41 ` [PATCH RFC 0/3] dt-bindings: net: Add network-class.yaml schema Rob Herring
[not found] ` <CAL_JsqKD7gD86_B93M19rBCWn+rmSw24vOGEhqi9Nvne1Xixwg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2023-02-06 16:31 ` Janne Grunau
[not found] ` <20230206163154.GA9004-w2YMFpIX6D+sTnJN9+BGXg@public.gmane.org>
2023-02-07 1:34 ` Andrew Lunn
[not found] ` <Y+GqsTLXRKyg0BdV-g2DYL2Zd6BY@public.gmane.org>
2023-02-07 7:10 ` Janne Grunau
2023-02-03 13:56 ` [PATCH RFC 2/3] dt-bindings: wireless: bcm4329-fmac: Use " Janne Grunau
2023-02-03 13:56 ` [PATCH RFC 3/3] dt-bindings: wireless: silabs,wfx: Use network-class.yaml Janne Grunau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).