[PATCH] riscv: dts: spacemit: k3-pico-itx: Fix non-functional ethernet TX timing
Yixun Lan
dlan at kernel.org
Thu Jul 9 19:25:51 PDT 2026
Hi E Shattow,
On 00:29 Thu 11 Jun , E Shattow wrote:
> Hi Andrew,
>
> On 6/10/26 02:05, Andrew Rembrandt wrote:
> > On Wed, Jun 10, 2026 at 07:14:56 am Inochi Amaoto wrote:
> >> Do not do this, just leave the rx-internal-delay-ps untouched.
> >
> > Sounds good, I'll leave v1 as-is. Many thanks for the review.
> >
> > Regards,
> >
> > Andrew
> >
> > _______________________________________________
> > linux-riscv mailing list
> > linux-riscv at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-riscv
>
> I do not notice any difference with or without this property present,
> tested Linux -next with U-Boot modification to devicetree:
>
> load usb 0:1 $fdt_addr_r /dtb/spacemit/k3-pico-itx.dtb
> fdt addr $fdt_addr_r
> fdt resize
> fdt header get filesize totalsize
> fdt set /soc/ethernet at cac80000 tx-internal-delay-ps <400>
> load usb 0:1 $kernel_addr_r /EFI/BOOT/BOOTRISCV64.EFI
> # throwaway use of ping is workaround for broken vendor U-Boot
> ping 127.0.0.1; bootefi $kernel_addr_r $fdt_addr_r
>
> Aside, there is still some problem with the driver which does cause it
> to fail. This can be reproduced by unloading the module and then loading
> the module; built from -next with 'olddefconfig' of debian Kconfig for
> kernel 7.1, no patches.
>
> # modprobe -r dwmac_spacemit
> # modprobe dwmac_spacemit
> [ 61.469745] spacemit-dwmac cac80000.ethernet end0: cannot attach to
> PHY (error: -ENODEV)
>
> [ 91.544646] spacemit-dwmac cac80000.ethernet end0: cannot attach to
> PHY (error: -ENODEV)
>
The problem is unrelated to this patch itself, but I can actually confirm here
> If not reloading the module then I don't see any difference, traffic
> passes (ping 1.1.1.1) with or without your suggested
> tx-internal-delay-ps property. Is there a specific test to run to
> observe expected difference?
>
Although I haven't narrowed down to the root cause, but it's kind of
something wrong with the reset procedure, remove it from phy node will fix
this issue..
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -232,9 +232,6 @@ mdio {
phy0: phy at 1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
- reset-gpios = <&gpio 0 15 GPIO_ACTIVE_LOW>;
- reset-assert-us = <10000>;
- reset-deassert-us = <10000>;
--
Yixun Lan (dlan)
More information about the linux-riscv
mailing list