[PATCH v5 4/4] ARM: dts: stm32: add initial support for stm32mp157-ultra-fly-sbc board

Goran Radenovic goran.radni at gmail.com
Thu May 8 06:10:09 PDT 2025


Hi Andrew,

thank You once again for helpful hint.

Andrew Lunn wrote:
>>>> +	phy-handle = <&phy1>;
>>>> +
>>>> +	mdio {
>>>> +		#address-cells = <1>;
>>>> +		#size-cells = <0>;
>>>> +		compatible = "snps,dwmac-mdio";
>>>> +		phy1: ethernet-phy at 1 {
>>>> +			reg = <1>;
>>>> +			interrupt-parent = <&gpiod>;
>>>> +			interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
>>> PHY interrupts are 99% time level, not edge.
>> That is correct, but I am facing strange behavior, when I set
>> IRQ_TYPE_LEVEL_LOW.
>> My board stops booting at:
>>
>> [    2.343233] Waiting for root device /dev/mmcblk0p4...
>> [   12.638818] platform 5a006000.usbphyc: deferred probe pending
>> [   12.643192] platform 49000000.usb-otg: deferred probe pending
>> [   12.649029] platform 48003000.adc: deferred probe pending
>> [   12.654277] platform 5800d000.usb: deferred probe pending
>> [   12.659744] platform 5800c000.usb: deferred probe pending
>> [   12.665089] amba 58005000.mmc: deferred probe pending
>> [   12.670239] amba 58007000.mmc: deferred probe pending
>> [   12.675185] platform 50025000.vrefbuf: deferred probe pending
>>
>> I must investigate this. If You have any idea, You are welcome to share it.
> Could be an interrupt storm. The interrupt is not getting cleared
> because of something missing in the PHY driver, so it just fires again
> and again.

After a brief investigation, I tend to agree with your assessment that 
the issue lies in the driver—likely the stmmac driver — which is outside 
the scope of my changes.

Therefore, I would suggest keeping IRQ_TYPE_EDGE_FALLING for now, or 
alternatively not using a hardware IRQ at all and falling back to 
polling, as done in stm32mp15xx-dkx.dtsi.

Best regards,
Goran



More information about the linux-arm-kernel mailing list