RE: [PATCH net-next v2 4/5] arm64: dts: s32n79-rdb: enable NETC IEP18
From: Claudiu Manoil
Date: Tue Nov 03 2026 - 11:05:57 EST
From: netdev-bot+sashiko@xxxxxxxxxx <netdev-bot+sashiko@xxxxxxxxxx>
Sent: Friday, October 16, 2026 11:15 AM
> To: Claudiu Manoil <claudiu.manoil@xxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx; dl-S32 <S32@xxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; bhelgaas@xxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
> kuba@xxxxxxxxxx
> Subject: Re: [PATCH net-next v2 4/5] arm64: dts: s32n79-rdb: enable NETC IEP18
>
> Thank you for your contribution! Sashiko AI review found 3 potential
> issue(s) to consider.
>
> Critical: 0 * High: 0 * Medium: 1 * Low: 2
>
> If you believe none of the issues are legitimate, please reply to each
> issue of Medium severity or higher and explain why the AI is wrong.
> If any of them are legitimate and you plan to respin, please let patchwork
> know by including "pw-bot: cr" as a separate line at the end of your reply
> (one such reply per series is enough).
>
> - [Medium] s32n79-rdb.dts enables &netc_iep18 but leaves &smmu disabled,
> even though the bus node says `iommu-map = <0x0 &smmu 0xc0000 0x100>`.
> - [Low] At this commit, enabling &netc_iep18 in s32n79-rdb.dts does not
> get the PPM PF to probe.
> - [Low] The &netc_iep18 override is appended after &usdhc0 in
> s32n79-rdb.dts.
>
> --
>
> arm64: dts: s32n79-rdb: enable NETC IEP18
>
> This patch enables the NETC v4 ECAM bus #18 (netc_iep18) on the S32N79-RDB
> board. The goal is to get the ENETC v4 Pseudo-MAC port (PPM) PF and VF
> instances probed.
>
> > diff --git a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts
> b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts
> > index 1feccd61258ef..897ba24ac03ae 100644
> > --- a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts
> > +++ b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts
> > @@ -68,3 +68,7 @@ &usdhc0 {
> > no-sdio;
> > status = "okay";
> > };
> > +
> > +&netc_iep18 {
> > + status = "okay";
> > +};
>
> [Severity: Medium]
> Should &smmu also be enabled for this board? The netc_iep18 node in
> s32n79.dtsi has:
>
> iommu-map = <0x0 &smmu 0xc0000 0x100>;
>
> The SMMU node is disabled at SoC level, and s32n79-rdb.dts does not
> override it:
>
> smmu: iommu@4fc00000 {
> ...
> #iommu-cells = <1>;
> dma-coherent;
> status = "disabled";
> };
>
> DMA setup for the ENETC PF/VFs on this bus goes through
> of_dma_configure_id()->of_iommu_configure()->of_map_iommu_id()->
> of_iommu_xlate(). of_iommu_xlate() rejects the disabled node:
>
> if (!of_device_is_available(iommu_spec->np))
> return -ENODEV;
>
> of_dma_configure_id() then falls back to direct DMA and only logs a
> dev_dbg() message:
>
> /* Take all other IOMMU errors to mean we'll just carry on without it */
> dev_dbg(dev, "device is%sbehind an iommu\n",
> !ret ? " " : " not ");
>
> arch_setup_dma_ops(dev, coherent);
>
> Does this leave every NETC function, including the SR-IOV VFs, doing
> untranslated DMA with no iommu_group? If so, the VFs cannot be assigned
> through VFIO. Whether DMA works at all would then depend on whether
> firmware left the SMMU in bypass or abort mode.
>
> This also seems to contradict the earlier dtsi commit "arm64: dts: s32n79:
> add NETC IEP18 ECAM node for ENETC PPM ports", which says:
>
> DMA is translated by the SMMUv3 (iommu-map)
>
> The last commit in the series does not change this.
>
There is no contradiction, ENETC sits behind SMMU, however the SMMU node
is not ready to be enabled yet, and this is not in the scope of current patch set.
SMMU on S32N79 needs some support patches (SoC level workarounds) before
enabling it, since SMMU is a system wide config that affects other devices too.
ENETC4 is functional with the SMMU node disabled, and I can confirm it with
traffic tests.