[PATCH v12 13/13] arm64: dts: ls1088ardb: Add serdes descriptions

Sean Anderson sean.anderson at seco.com
Tue Mar 28 06:56:31 AEDT 2023


On 3/27/23 14:15, Sean Anderson wrote:
> On 3/24/23 09:17, Ioana Ciornei wrote:
>> On Tue, Mar 21, 2023 at 04:13:12PM -0400, Sean Anderson wrote:
>>> This adds serdes support to the LS1088ARDB. I have tested the QSGMII
>>> ports as well as the two 10G ports. The SFP slot is now fully supported,
>>> instead of being modeled as a fixed-link.
>>> 
>>> Linux hangs around when the serdes is initialized if the si5341 is
>>> enabled with the in-tree driver, so I have modeled it as a two fixed
>>> clocks instead. There are a few registers in the QIXIS FPGA which
>>> control the SFP GPIOs; I have modeled them as discrete GPIO controllers
>>> for now. I never saw the AQR105 interrupt fire; not sure what was going
>>> on, but I have removed it to force polling.
>> 
>> So you didn't see the interrupt fire even without these patches?
> 
> Not sure. I went to check this, and discovered I could no longer get the
> link to come up in Linux, even on v6.0 (before the rate adaptation
> tuff). I see the LEDs blinking in U-Boot, so presumably it's some
> configuration problem. I'm going to look into this further when I have
> more time.

I figured it out. I forgot the dpmac2 was 10G only (no rate adaptation
for the AQR105).

And the interrupt does not fire on net/main:

# cat /proc/interrupts | grep extirq
 22:          0          0          0          0          0          0          0          0  ls-extirq   2 Level     0x0000000008b97000:00

Inspecting the phy manually shows the link coming up. By removing the
interrupt, the link comes up as usual. I wanted to look into this
further, but the IRQ goes through the QIXIS and the firmware source
isn't available so I wasn't able to do so.

If you'd like, I can try probing the signal (to see where the problem
is), but I won't have time for a bit.

>> I just tested this on a LS1088ARDB and it works.
>> 
>> 	root at localhost:~# cat /proc/interrupts | grep extirq
>> 	 99:          5  ls-extirq   2 Level     0x0000000008b97000:00
>> 	root at localhost:~# ip link set dev endpmac2 up
>> 	root at localhost:~# cat /proc/interrupts | grep extirq
>> 	 99:          6  ls-extirq   2 Level     0x0000000008b97000:00
>> 	root at localhost:~# ip link set dev endpmac2 down
>> 	root at localhost:~# cat /proc/interrupts | grep extirq
>> 	 99:          7  ls-extirq   2 Level     0x0000000008b97000:00
>> 
>> Please don't just remove things.
> 
> Well, polling isn't the worst thing for a single interface... I do
> remember having a problem with the interrupt. If this series works
> with interrupts enabled, I can leave it in.

Anyway, given that interrupts seem to be broken for some boards? some
configurations? I would like to keep polling.

> Did you have a chance to look at the core (patches 7 and 8) of this
> series? Does it make sense to you? Am I missing something which would
> allow switching from 1G->10G?

--Sean


More information about the Linuxppc-dev mailing list