From: Rob Herring <robh@kernel.org>
To: Alexey Charkov <alchark@flipper.net>
Cc: Srinivas Kandagatla <srini@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
Michael Walle <michael@walle.cc>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Finley Xiao <finley.xiao@rock-chips.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org
Subject: Re: [PATCH v2 0/4] nvmem: Derive Rockchip MAC addresses from the OTP CPU ID
Date: Thu, 17 Sep 2026 17:18:57 -0500 [thread overview]
Message-ID: <20260917221857.GA4056431-robh@kernel.org> (raw)
In-Reply-To: <CAKTNdwH9QAgreJ-6+t1j_P1di4VyoMBSsFkf_g=mCi_-M8g9Pw@mail.gmail.com>
On Thu, Sep 10, 2026 at 06:48:33PM +0400, Alexey Charkov wrote:
> On Wed, Sep 2, 2026 at 5:08 PM Alexey Charkov <alchark@flipper.net> wrote:
> >
> > Rockchip SoCs are shipped with a unique CPU ID in their internal OTP
> > memory, and Rockchip bootloaders use it to give boards which have no
> > dedicated storage for a MAC address a stable one anyway: they hash the CPU
> > ID and patch the resulting addresses into the device tree they hand over.
> >
> > Kernels started without that fixup, e.g. straight from the SPL in Falcon
> > mode or by any other loader which does not implement Rockchip's derivation,
> > fall back to random MAC addresses which change on every boot.
> >
> > Formalize the derivation in the DT binding and add a Linux kernel driver
> > implementing it, so that a Linux image can use the same stable addresses
> > regardless of the boot flow.
> >
> > Only RK3576 is wired up here, that being the SoC I can test on. Other
> > Rockchip SoCs keep the same CPU ID at a different OTP offset - 0x7 rather
> > than 0xa on RK3588, for instance - which makes supporting them a two-line
> > addition to the driver's match table plus the layout node.
> >
> > Patch 1 is a prerequisite fix. The OTP hardware has its own internal state
> > machine which only works correctly with serial access, but the current
> > driver serializes nothing, which results in timeouts and/or corrupted
> > reads (e.g. returning splicing a TSADC trim value into the buffer of a
> > caller asking for the CPU ID, or mixing up trim values of different TSADC
> > callers). Hence the Fixes: tag and Cc: stable.
> >
> > Cross-checked on an RK3576 board: the addresses fixed up into the FDT by
> > U-Boot match the ones derived by the new driver, and the driver correctly
> > assigns them to the network interfaces when the kernel is booted without
> > U-Boot proper at all (via Falcon mode).
> >
> > Sashiko also rightly pointed out a use-after-free in the nvmem core when
> > a layout driver is unloaded leaving its sysfs nodes and the postprocessor
> > function pointer dangling. This is fixed separately in [1].
> >
> > [1] https://lore.kernel.org/all/20260902-nvmem-layout-unreg-v1-1-2d16bebeb518@flipper.net/
> >
> > Signed-off-by: Alexey Charkov <alchark@flipper.net>
> > ---
> > Changes in v2:
> > - Switched from a scope-based guard to explicit lock/unlock calls in the
> > OTP driver to avoid mixing styles in a function using goto error
> > handling (Sashiko)
> > - Link to v1: https://patch.msgid.link/20260901-rk3576-otp-cpuid-mac-v1-0-ea9135270fc2@flipper.net
> >
> > ---
> > Alexey Charkov (4):
> > nvmem: rockchip-otp: Serialize reads
>
> Incidentally, patch 1 of this series also fixes CPU thermal throttling
> on my RK3576 device: apparently, the mis-read OTP-programmed thermal
> trim values broke the thermal governor logic, which now works
> correctly with properly serialized OTP reads. So it would be great to
> have these merged.
It would be great to have the sashiko comments analyzed and replied to
as well if you would like this to be reviewed.
Rob
next prev parent reply other threads:[~2026-09-17 22:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 13:07 Alexey Charkov
2026-09-02 13:07 ` [PATCH v2 1/4] nvmem: rockchip-otp: Serialize reads Alexey Charkov
2026-09-02 13:07 ` [PATCH v2 2/4] dt-bindings: nvmem: layouts: Add Rockchip OTP CPUID layout Alexey Charkov
2026-09-02 13:07 ` [PATCH v2 3/4] nvmem: layouts: Add Rockchip OTP CPUID layout driver Alexey Charkov
2026-09-14 22:23 ` Srinivas Kandagatla
2026-09-02 13:07 ` [PATCH v2 4/4] arm64: dts: rockchip: Derive GMAC MAC addresses from OTP on RK3576 Alexey Charkov
2026-09-10 14:48 ` [PATCH v2 0/4] nvmem: Derive Rockchip MAC addresses from the OTP CPU ID Alexey Charkov
2026-09-17 22:18 ` Rob Herring [this message]
2026-09-18 7:08 ` Alexey Charkov
2026-09-10 16:49 ` Ricardo Pardini
2026-09-14 22:13 ` (subset) " Srinivas Kandagatla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260917221857.GA4056431-robh@kernel.org \
--to=robh@kernel.org \
--cc=alchark@flipper.net \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=finley.xiao@rock-chips.com \
--cc=gregkh@linuxfoundation.org \
--cc=heiko@sntech.de \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=michael@walle.cc \
--cc=miquel.raynal@bootlin.com \
--cc=srini@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®