[PATCH v2 3/4] arm64: dts: marvell: cn9132-clearfog: fix multi-lane pci x2 and x4 ports
Josua Mayer
josua at solid-run.com
Thu Sep 18 10:40:28 PDT 2025
Am 18.09.25 um 17:41 schrieb Andrew Lunn:
>>>> The mvebu-comphy driver does not currently know how to pass correct
>>>> lane-count to ATF while configuring the serdes lanes.
>>> Why not just teach mvebu-comphy to pass the correct line-count? That
>>> sounds like the proper fix, and that makes the kernel independent of
>>> the bootloader.
>> That would be a feature on the comphy driver, not a bug-fix backported
>> to stable. The core goal was to fix bugs found in Debian 13.
> It is not so simple.
>
> https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
>
> It must either fix a real bug that bothers people or just add a device ID
>
> Crashing at boot would be a real bug that bothers people, not just a
> new feature.
>
> Lets see how big the patch is. If its 1000 lines of hard to understand
> code, it will probably be rejected for stable. If its 100 lines or
> less, it will likely be accepted.
I see.
> It is also hard to argue the DT is wrong. It just describes the
> hardware. I assume the description is actually correct?
The x4 port linked comphy as below:
phys = <&cp0_comphy0 0>, <&cp0_comphy1 0>, <&cp0_comphy2 0>, <&cp0_comphy3 0>;
At the time of submitting my patch I was not convinced the above was right, or wrong.
I labeled it wrong for causing a fault which I should have noticed much earlier.
The numeric argument after the comphy-lane handle is the port number,
for those functions that can have multiple ports (e.g. ethernet #2).
This means above dts linked pci port 0 on lanes 0-4, which appears correct.
Further lanes 1-3 have no other pci ports, there is no other configuration to confuse it with.
> The issue is
> the driver, not the description. Also, i assume this affects all
> boards using this SoC? Removing the nodes in one board 'fixes' one
> board. Fixing the driver fixes all boards...
I missed to check whether other boards share similar description.
Today I found two other dts that reference multiple lanes:
arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
Both cases the function is PCI - first one x2, secondx4.
I will try to look into a more correct solution soon.
More information about the linux-arm-kernel
mailing list