Re: [PATCH v2 1/4] of_net: Add NVMEM support to of_get_mac_address
From: Petr Štetiar <hidden>
Date: 2019-05-02 09:05:44
Also in:
linux-devicetree, lkml
Rob Herring [off-list ref] [2019-05-01 15:19:25]: Hi Rob,
quoted
+ struct property *pp;
...
quoted
+ pp = kzalloc(sizeof(*pp), GFP_KERNEL); + if (!pp) + return NULL; + + pp->name = "nvmem-mac-address"; + pp->length = ETH_ALEN; + pp->value = kmemdup(mac, ETH_ALEN, GFP_KERNEL); + if (!pp->value || of_add_property(np, pp)) + goto free;Why add this to the DT?
I've just carried it over from v1 ("of_net: add mtd-mac-address support to
of_get_mac_address()")[1] as nobody objected about this so far.
Honestly I don't know if it's necessary to have it, but so far address,
mac-address and local-mac-address properties provide this DT nodes, so I've
simply thought, that it would be good to have it for MAC address from NVMEM as
well in order to stay consistent.
Just FYI, my testing ar9331_8dev_carambola2.dts[2] currently produces
following runtime DT content:
root@OpenWrt:/# find /sys/firmware/devicetree/ -name *nvmem* -o -name *addr@*
/sys/firmware/devicetree/base/ahb/spi@1f000000/flash@0/partitions/partition@ff0000/nvmem-cells
/sys/firmware/devicetree/base/ahb/spi@1f000000/flash@0/partitions/partition@ff0000/nvmem-cells/eth-mac-addr@0
/sys/firmware/devicetree/base/ahb/spi@1f000000/flash@0/partitions/partition@ff0000/nvmem-cells/eth-mac-addr@6
/sys/firmware/devicetree/base/ahb/spi@1f000000/flash@0/partitions/partition@ff0000/nvmem-cells/wifi-mac-addr@1002
/sys/firmware/devicetree/base/ahb/wmac@18100000/nvmem-cells
/sys/firmware/devicetree/base/ahb/wmac@18100000/nvmem-mac-address
/sys/firmware/devicetree/base/ahb/wmac@18100000/nvmem-cell-names
/sys/firmware/devicetree/base/ahb/eth@1a000000/nvmem-cells
/sys/firmware/devicetree/base/ahb/eth@1a000000/nvmem-mac-address
/sys/firmware/devicetree/base/ahb/eth@1a000000/nvmem-cell-names
/sys/firmware/devicetree/base/ahb/eth@19000000/nvmem-cells
/sys/firmware/devicetree/base/ahb/eth@19000000/nvmem-mac-address
/sys/firmware/devicetree/base/ahb/eth@19000000/nvmem-cell-names
root@OpenWrt:/# hexdump -C /sys/firmware/devicetree/base/ahb/wmac@18100000/nvmem-mac-address
00000000 00 03 7f 11 52 da |....R.|
00000006
root@OpenWrt:/# ip addr show wlan0
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:03:7f:11:52:da brd ff:ff:ff:ff:ff:ff
1. https://patchwork.ozlabs.org/patch/1086628/
2. https://git.openwrt.org/?p=openwrt/staging/ynezz.git;a=blob;f=target/linux/ath79/dts/ar9331_8dev_carambola2.dts;h=349c91e760ca5a56d65c587c949fed5fb6ea980e;hb=349c91e760ca5a56d65c587c949fed5fb6ea980e
You have the struct device ptr, so just use devm_kzalloc() if you need an allocation.
I'll address this in v3, thanks. -- ynezz