Re: [PATCH v3 06/13] nvmem: microchip-otpc: add tag-based packet lookup
From: Andy Shevchenko
Date: Tue Jun 30 2026 - 08:30:28 EST
On Tue, Jun 30, 2026 at 03:23:42PM +0300, Andy Shevchenko wrote:
> On Tue, Jun 30, 2026 at 03:05:56PM +0530, Varshini Rajendran wrote:
> > Add support for accessing OTP packets by their 4-byte ASCII tag while
Forgot to mention that widely the term is FourCC (that may or may not be
represented in ASCII) is used. But I don't know if documentation on these
chips uses "4-byte ASCII tag" everywhere. So, just for you to know.
And it's up to you if you want to use the common term instead.
https://en.wikipedia.org/wiki/FourCC
> > preserving backward compatibility with the existing ID-based lookup.
> >
> > The OTP memory layout can vary across devices and may change over time,
> > making the packet ID approach unreliable when the memory map is not
> > known in advance. The packet tag provides a reliable way to identify
> > and access packets without prior knowledge of the OTP memory layout.
> >
> > Two offset encoding are now supported:
> > 1. Legacy ID-based: offset = OTP_PKT(id) = id * 4
> > Used in DT as: reg = <OTP_PKT(1) 76>;
> > 2. TAG-based: offset = 4-byte ASCII packet tag
> > Used in DT as: reg = <0x41435354 0x4c>; (tag "ACST")
> >
> > The driver resolves offsets matching valid legacy selectors (multiples
> > of 4 within the packet count) through ID lookup, falling back to tag
> > lookup for other values. This ensures existing device trees continue
> > to work while enabling new tag-based access.
> >
> > During probe, packet meta data including the tag is read and cached.
> > The driver also validates OTP memory accessibility and emulation mode
> > status. When the boot packet is not configured, emulation mode allows
> > access to the other packets. When both are not available an
> > informational message is logged.
> >
> > The stride of the nvmem memory is set to 1 in order to support tag based
> > offsets, comment in the header file is updated accordingly.
--
With Best Regards,
Andy Shevchenko