Hi Rob, > -----Original Message----- > From: Rob Herring <robh...@kernel.org> > Sent: 2021年4月9日 21:50 > To: Joakim Zhang <qiangqing.zh...@nxp.com> > Cc: David Miller <da...@davemloft.net>; Jakub Kicinski <k...@kernel.org>; > Andrew Lunn <and...@lunn.ch>; Heiner Kallweit <hkallwe...@gmail.com>; > Russell King <li...@armlinux.org.uk>; Frank Rowand > <frowand.l...@gmail.com>; netdev <netdev@vger.kernel.org>; > devicet...@vger.kernel.org; linux-ker...@vger.kernel.org; dl-linux-imx > <linux-...@nxp.com> > Subject: Re: [PATCH net-next 1/3] dt-bindings: net: add new properties for > of_get_mac_address from nvmem > > On Fri, Apr 9, 2021 at 4:07 AM Joakim Zhang <qiangqing.zh...@nxp.com> > wrote: > > > > From: Fugang Duan <fugang.d...@nxp.com> > > > > Currently, of_get_mac_address supports NVMEM, some platforms > > What's of_get_mac_address? This is a binding patch. Don't mix Linux things in > it.
Ok, will improve it. > > MAC address that read from NVMEM efuse requires to swap bytes order, > > so add new property "nvmem_macaddr_swap" to specify the behavior. If > > the MAC address is valid from NVMEM, add new property > > "nvmem-mac-address" in ethernet node. > > > > Update these two properties in the binding documentation. > > > > Signed-off-by: Fugang Duan <fugang.d...@nxp.com> > > Signed-off-by: Joakim Zhang <qiangqing.zh...@nxp.com> > > --- > > .../bindings/net/ethernet-controller.yaml | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git > > a/Documentation/devicetree/bindings/net/ethernet-controller.yaml > > b/Documentation/devicetree/bindings/net/ethernet-controller.yaml > > index e8f04687a3e0..c868c295aabf 100644 > > --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml > > +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml > > @@ -32,6 +32,15 @@ properties: > > - minItems: 6 > > maxItems: 6 > > > > + nvmem-mac-address: > > + allOf: > > + - $ref: /schemas/types.yaml#definitions/uint8-array > > + - minItems: 6 > > + maxItems: 6 > > + description: > > + Specifies the MAC address that was read from nvmem-cells and > dynamically > > + add the property in device node; > > Why can't you use local-mac-address or mac-address? Those too can come > from some other source. I also don't understand what Andy's do for this, per his commit message "If the MAC address is valid from NVMEM, add new property "nvmem-mac-address" in ethernet node.". He said this done _DYNAMICALLY_, but I have not found where ""nvmem-mac-address" property been added, and can't find it from ethernet node. So I send out patch first to see if reviewers can give a hint, or point out this is actually incorrect. > > + > > max-frame-size: > > $ref: /schemas/types.yaml#/definitions/uint32 > > description: > > @@ -52,6 +61,11 @@ properties: > > nvmem-cell-names: > > const: mac-address > > > > + nvmem_macaddr_swap: > > + $ref: /schemas/types.yaml#/definitions/flag > > + description: > > + swap bytes order for the 6 bytes of MAC address > > So 'nvmem-mac-address' needs to be swapped or it's swapped before writing? > In any case, this belongs in the nvmem provider. MAC address read from NVMEM cell needs to be swapped. The order of bytes that NVMEM provider provided is fixed, so I think we should swap at the NVMEM consumer side. It is more reasonable and common add a property in Documentation/devicetree/bindings/nvmem/nvmem-consumer.yaml, and swap the data in nvmem_cell_read() function. Best Regards, Joakim Zhang > Rob