Re: [PATCH v2 0/2] mtd: devices: Qualcomm SCM storage support
From: Val Packett
Date: Fri Mar 13 2026 - 06:19:37 EST
On 2/3/26 11:20 AM, Miquel Raynal wrote:
Not anymore, there are nvmem layouts now that are much moreQualcomm's SPI-NOR boot firmware uses a GPT partition table. The "DPP"For something like the "DPP" partition, I think it's better to access itIf it's a MAC address that you are accessing, direct userspace does not
from userspace than from kernel.
sound like a good fit. If I may, NVMEM cells are there exactly for this
purpose: identifying the content of a subpart of a storage device in a
storage agnostic way. The NVMEM cells are made available to in-kernel
drivers (ie. network devices have all the infrastructure to get the MAC
address from there) and their content is also exposed to userspace
through sysfs now.
partition contains a FAT file system, and the MAC address is stored in
one of these files.
Because the data is stored inside a filesystem rather than at a fixed
offset, it does not fit well with the NVMEM model, which assumes simple
offset-based access.
flexible, so if a network driver shall get this MAC address, it is still
doable.
Otherwise there is no such need, and in the case of a file in a FAT
filesystem, I guess it is preferable to use mtdblock/ubiblock in order
to expose a block device and mount it from userspace.
Please note that exposing a FAT filesystem on top of a SPI NOR is very
inappropriate. FAT is a block filesystem, not aware of all the MTD
specificities (like bad blocks).
FWIW there is an existing widely used solution (workaround?) for the MAC address: dtbloader reads the DPP partition in UEFI and applies the MAC address as a DT fixup.
https://github.com/TravMurav/dtbloader/blob/493e7e82025edddab29fe99c2b6ec566f6e01ac1/src/qcom.c#L260
(But this means that any dtbloader alternative such as the systemd UKI stub must also implement the same thing, which is not great.)
Reading that code, it does not seem to be a FAT filesystem exactly? It's something called "RWFS" where files have 49-char long names and a 49-char "vendor" string field that's either "QCOM" or "OEM".
Also on the rare older devices that have SNOC WiFi/modem but NVMe storage —basically the Surface Pro X— the modem partitions need to be accessed from userspace (rmtfs) and they're stored on the NOR flash. Well, at least in the WiFi-only case even blank files are enough to replace them :) but for cellular I think the IMEI and stuff is there..
So this all sounds supremely annoying, we have a GPT partitioned flash where some specific partitions should be given to the WiFi&BT drivers (as nvmem cells?) but others should be accessible as mtdblock devices in userspace >_<
~val