Re: [PATCH v6 6/7] ARM: dts: microchip: sama5d27_wlsom1: read MAC address from QSPI SFDP

<[email protected]> Thu, 30 Jul 2026 07:31:50 +0000
Newsgroups dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree
Message-ID <[email protected]>
Both deferral paths are real, but neither is specific to this patch and
neither is reachable on the hardware this DT targets:

- The layout-driver-missing case (-EPROBE_DEFER from
   nvmem_layout_module_get_optional()) is the standard "DT references a
   provider that isn't built" behaviour. Patch 7/7 enables the layout in
   sama5_defconfig precisely so the provider is present.

- The cell-absent case (nvmem->layout ? -EPROBE_DEFER : -ENOENT in
   of_nvmem_cell_get()), On the sama5d27_wlsom1 SoM the qspi1 flash node
   is only enabled on boards carrying the factory-programmed
   SST26VF064BEUI, where the EUI-48 marker is
   always present and the mac-address cell is always added, so macb0 does
   not defer.

I'll add a note to the commit message clarifying that the SoM ships the
EUI-programmed part

On 7/30/26 10:02, [email protected] wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] Indefinite probe deferral for `macb0` network interface if the EUI-48 marker is unprogrammed or the nvmem layout driver is missing.
> --
> 
> --- Patch [6]: [PATCH v6 6/7] ARM: dts: microchip: sama5d27_wlsom1: read MAC address from QSPI SFDP ---
> commit 8eba2f7e81780da2083cb3da12b2567024175fa6
> Author: Manikandan Muralidharan <[email protected]>
> 
> ARM: dts: microchip: sama5d27_wlsom1: read MAC address from QSPI SFDP
> 
> This commit exposes the factory-programmed EUI-48 as a mac-address cell
> via the QSPI flash SFDP NVMEM provider. It points macb0 at this cell
> to provide a stable MAC address on boards where U-Boot does not set one.
> 
>> diff --git a/arch/arm/boot/dts/microchip/at91-sama5d27_wlsom1_ek.dts b/arch/arm/boot/dts/microchip/at91-sama5d27_wlsom1_ek.dts
>> index 35a933eec5738..5e87bf04bc47c 100644
>> --- a/arch/arm/boot/dts/microchip/at91-sama5d27_wlsom1_ek.dts
>> +++ b/arch/arm/boot/dts/microchip/at91-sama5d27_wlsom1_ek.dts
> [ ... ]
>> @@ -97,6 +97,8 @@ uart6: serial@200 {
>>
>>   &macb0 {
>>        status = "okay";
>> +     nvmem-cells = <&mac_address_eui48>;
>> +     nvmem-cell-names = "mac-address";
> 
> [Severity: High]
> Will this cause an indefinite probe deferral for the macb0 interface if the
> EUI-48 marker is unprogrammed or the nvmem layout driver is missing?
> 
> When the device tree statically links the macb0 interface to the
> mac_address_eui48 nvmem cell, macb_probe() calls of_get_ethdev_address()
> which internally calls of_nvmem_cell_get().
> 
> If the kernel is missing the microchip,sst26vf-sfdp-eui layout driver, the
> nvmem core via nvmem_layout_module_get_optional() returns -EPROBE_DEFER
> indefinitely.
> 
> Alternatively, if the layout driver is loaded but the board's flash chip
> lacks an EUI-48, the layout driver gracefully returns 0 without adding the
> cell. However, of_nvmem_cell_get() unconditionally returns -EPROBE_DEFER if
> a cell is missing but an nvmem-layout node exists in the device tree:
> 
> ret = nvmem->layout ? -EPROBE_DEFER : -ENOENT;
> 
> In both scenarios, macb_probe() receives -EPROBE_DEFER and indefinitely
> defers, breaking the intended fallback to a random MAC address and resulting
> in a complete loss of network connectivity.
> 
>>   };
> 
> --
> Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=6


-- 
Thanks and Regards,
Manikandan M.