[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200920095724.8251-1-ansuelsmth@gmail.com>
Date: Sun, 20 Sep 2020 11:57:18 +0200
From: Ansuel Smith <ansuelsmth@...il.com>
To: Miquel Raynal <miquel.raynal@...tlin.com>
Cc: Ansuel Smith <ansuelsmth@...il.com>,
Richard Weinberger <richard@....at>,
Vignesh Raghavendra <vigneshr@...com>,
Rob Herring <robh+dt@...nel.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>,
Frank Rowand <frowand.list@...il.com>,
Boris Brezillon <bbrezillon@...nel.org>,
linux-mtd@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: [PATCH v3 0/4] Actually implement nvmem support for mtd
The mtd support for the nvmem api has been stalled from 2018 with a patch
half pushed hoping that a scheme is found for the mtd name later. This
pathset try to address this and add a very needed feature for the
mac-address.
My solution to the already discussed problem here [1] is to keep it simple.
A mtd subpartition can be set as a nvmem-provider with a specific tag and
each direct subnode is treat by the nvmem api as a nvmem-cell and gets
correctly registred. The mtd driver will treat a direct subnode of the
subpartition as a legacy subpartition of the subpartition using the
'fixed-partition' parser. To fix this every nvmem-cell has to have the
'nvmem-cell' tag and the fixed-partition parser will skip these node if
this tag is detected. Simple as that. The subpartition with the tag
'nvmem-provider' will then be set by the config to not skip the of
registration in the config and the nvmem-cells are correctly registred
and can be used to set mac-address of the devices on the system.
The last 2 patch try to address a problem in the embedded devices (mostly
routers) that have the mac-address saved in a dedicated partition and is
a ""master"" mac-address. Each device increment or decrement the extracted
mac-address based on the device number. The increment function is
implemented in the of_net function to get the mac-address that every net
driver should allready use if they don't have a trusty mac-address source.
(One example of this implementation are many ath10k device that gets the
mac-address from the art mtd partition assigned to the network driver and
increments it 1 for the wifi 2.4ghz and 2 for the wifi 5ghz).
I really hope my mtd nvmem implementation doesn't conflicts with others
and can be used, since this would remove many patch used to get mac-address
and other nvmem data.
[1] https://lore.kernel.org/patchwork/patch/765435/
Changes:
v3:
* Fix const discard warning in of_net.c
* Add some info about overflow/underflow of mac-increment
* Limit mac-increment-bytes to the last 3 bytes
v2:
* Fix compile error (missing mtd_node in mtdcore)
Ansuel Smith (4):
mtd: Add nvmem support for mtd nvmem-providers
dt-bindings: mtd: partition: Document use of nvmem-provider
of_net: add mac-address-increment support
dt-bindings: net: Document use of mac-address-increment
.../devicetree/bindings/mtd/partition.txt | 59 +++++++++++++++++++
.../bindings/net/ethernet-controller.yaml | 21 +++++++
drivers/mtd/mtdcore.c | 3 +-
drivers/mtd/parsers/ofpart.c | 8 +++
drivers/of/of_net.c | 57 ++++++++++++++----
5 files changed, 134 insertions(+), 14 deletions(-)
--
2.27.0
Powered by blists - more mailing lists