lkml.org 
[lkml]   [2019]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/4] of_net: Add NVMEM support to of_get_mac_address
    Date
    Hi,

    this patch series is a continuation of my previous attempt[1], where I've
    tried to wire MTD layer into of_get_mac_address, so it would be possible to
    load MAC addresses from various NVMEMs as EEPROMs etc.

    Predecessor of this patch which used directly MTD layer has originated in
    OpenWrt some time ago and supports already about 497 use cases in 357
    device tree files.

    During the review process of my 1st attempt I was told, that I shouldn't be
    using MTD directly, but I should rather use new NVMEM subsystem, so this
    patch series tries to accommodate that.

    First patch is wiring NVMEM support directly into of_get_mac_address as
    it's obvious, that adding support for NVMEM into every other driver would
    mean adding a lot of repetitive code. This patch allows us to configure MAC
    addresses in various devices like ethernet and wireless adapters directly
    from of_get_mac_address, which is used by quite a lot of drivers in the
    tree already.

    Second patch is simply updating documentation with NVMEM bits, also adding
    some missing bits like mac-address and local-mac-address properties, which
    are currently supported by of_get_mac_address.

    Third and fourth patches are simply removing duplicate NVMEM code which is
    no longer needed as the first patch has added NVMEM support directly into
    of_get_mac_address.

    Just for a better picture, this patch series and one simple patch[2] on top
    of it, allows me to configure 8Devices Carambola2 board's MAC addresses
    with following DTS (simplified):

    &spi {
    flash@0 {
    partitions {
    art: partition@ff0000 {
    label = "art";
    reg = <0xff0000 0x010000>;
    read-only;

    nvmem-cells {
    compatible = "nvmem-cells";
    #address-cells = <1>;
    #size-cells = <1>;

    eth0_addr: eth-mac-addr@0 {
    reg = <0x0 0x6>;
    };

    eth1_addr: eth-mac-addr@6 {
    reg = <0x6 0x6>;
    };

    wmac_addr: wifi-mac-addr@1002 {
    reg = <0x1002 0x6>;
    };
    };
    };
    };
    };
    };

    &eth0 {
    nvmem-cells = <&eth0_addr>;
    nvmem-cell-names = "mac-address";
    };

    &eth1 {
    nvmem-cells = <&eth1_addr>;
    nvmem-cell-names = "mac-address";
    };

    &wmac {
    nvmem-cells = <&wmac_addr>;
    nvmem-cell-names = "mac-address";
    };


    1. https://patchwork.ozlabs.org/patch/1086628/
    2. https://patchwork.ozlabs.org/patch/890738/

    -- ynezz

    Petr Štetiar (4):
    of_net: Add NVMEM support to of_get_mac_address
    dt-bindings: doc: Reflect new NVMEM of_get_mac_address behaviour
    net: macb: Drop nvmem_get_mac_address usage
    net: davinci_emac: Drop nvmem_get_mac_address usage

    .../devicetree/bindings/net/altera_tse.txt | 3 ++
    Documentation/devicetree/bindings/net/arc_emac.txt | 4 ++
    .../devicetree/bindings/net/brcm,amac.txt | 3 ++
    .../devicetree/bindings/net/brcm,bcmgenet.txt | 5 +++
    .../devicetree/bindings/net/brcm,systemport.txt | 4 ++
    .../devicetree/bindings/net/cavium-mix.txt | 7 +++-
    .../devicetree/bindings/net/cavium-pip.txt | 5 +++
    Documentation/devicetree/bindings/net/cpsw.txt | 3 ++
    .../devicetree/bindings/net/davicom-dm9000.txt | 4 ++
    .../devicetree/bindings/net/davinci_emac.txt | 2 +
    Documentation/devicetree/bindings/net/dsa/dsa.txt | 7 ++--
    .../devicetree/bindings/net/emac_rockchip.txt | 4 ++
    Documentation/devicetree/bindings/net/ethernet.txt | 2 +
    .../devicetree/bindings/net/ezchip_enet.txt | 6 +++
    Documentation/devicetree/bindings/net/fsl-fec.txt | 4 ++
    .../devicetree/bindings/net/fsl-tsec-phy.txt | 4 ++
    .../devicetree/bindings/net/hisilicon-femac.txt | 3 ++
    .../bindings/net/hisilicon-hix5hd2-gmac.txt | 3 ++
    .../devicetree/bindings/net/keystone-netcp.txt | 9 ++--
    Documentation/devicetree/bindings/net/macb.txt | 8 ++--
    .../devicetree/bindings/net/marvell-orion-net.txt | 3 ++
    .../devicetree/bindings/net/marvell-pxa168.txt | 3 ++
    .../devicetree/bindings/net/microchip,enc28j60.txt | 3 ++
    .../devicetree/bindings/net/microchip,lan78xx.txt | 2 +
    .../devicetree/bindings/net/opencores-ethoc.txt | 4 ++
    .../devicetree/bindings/net/oxnas-dwmac.txt | 6 +++
    .../devicetree/bindings/net/qca,qca7000.txt | 3 ++
    .../devicetree/bindings/net/samsung-sxgbe.txt | 3 ++
    .../bindings/net/snps,dwc-qos-ethernet.txt | 2 +
    .../devicetree/bindings/net/socfpga-dwmac.txt | 4 ++
    .../bindings/net/socionext,uniphier-ave4.txt | 3 ++
    .../devicetree/bindings/net/socionext-netsec.txt | 2 +
    Documentation/devicetree/bindings/net/stmmac.txt | 4 ++
    .../bindings/net/wireless/mediatek,mt76.txt | 2 +
    .../devicetree/bindings/net/wireless/qca,ath9k.txt | 2 +
    .../devicetree/bindings/soc/fsl/cpm_qe/qe/ucc.txt | 3 ++
    drivers/net/ethernet/cadence/macb_main.c | 12 ++----
    drivers/net/ethernet/ti/davinci_emac.c | 14 +++----
    drivers/of/of_net.c | 48 +++++++++++++++++++---
    39 files changed, 179 insertions(+), 34 deletions(-)

    --
    1.9.1

    \
     
     \ /
      Last update: 2019-04-27 01:07    [W:2.824 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site