| From: |
| Sean Anderson <sean.anderson-AT-linux.dev> |
| To: |
| Laurent Pinchart <laurent.pinchart-AT-ideasonboard.com>, Vinod Koul <vkoul-AT-kernel.org>, linux-phy-AT-lists.infradead.org |
| Subject: |
| [PATCH 0/8] phy: zynqmp: Perform complete initialization, including ILL calibration |
| Date: |
| Mon, 02 Feb 2026 19:21:20 -0500 |
| Message-ID: |
| <20260203002128.935842-1-sean.anderson@linux.dev> |
| Cc: |
| Krzysztof WilczyĆski <kwilczynski-AT-kernel.org>, Lorenzo Pieralisi <lpieralisi-AT-kernel.org>, Radhey Shyam Pandey <radhey.shyam.pandey-AT-amd.com>, linux-kernel-AT-vger.kernel.org, Michal Simek <michal.simek-AT-amd.com>, linux-arm-kernel-AT-lists.infradead.org, linux-pci-AT-vger.kernel.org, Neil Armstrong <neil.armstrong-AT-linaro.org>, Rob Herring <robh-AT-kernel.org>, Thippeswamy Havalige <thippeswamy.havalige-AT-amd.com>, Manivannan Sadhasivam <mani-AT-kernel.org>, Bjorn Helgaas <bhelgaas-AT-google.com>, Sean Anderson <sean.anderson-AT-linux.dev>, Conor Dooley <conor+dt-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, devicetree-AT-vger.kernel.org |
| Archive-link: |
| Article |
This series completely initializes the GTRs in Linux, making all
bootloader initialization (as performed by init_serdes() in
psu_init_gpl.c) optional. This gives the following advantages:
- On some boards (mine) the reference clocks may not be configured in
SPL/FSBL. So ILL calibration will fail (and take a long time to do so)
unless we defer initialization to U-Boot/Linux where the phy driver
can request the clocks.
- If PCIe/SATA are not used in U-Boot, ILL calibration can be deferred
until Linux when it can be done it parallel with other initialization.
- We will have flexibility to switch between different configurations at
runtime. For example, this could allow supporting both SATA and PCIe M.2
cards with [1].
I have tested this series with DP, PCIe, SGMII, and SATA. USB3 is broken
on my dev board at the moment (independent of this series; need to
investigate) so I have not tested that. I have an equivalent set of
patches for U-Boot that I will try to post soon.
[1] https://lore.kernel.org/linux-pci/20260107-pci-m2-v5-0-81...
Sean Anderson (8):
dt-bindings: pci: xilinx-nwl: Add resets
phy: zynqmp: Refactor bus width configuration into helper
phy: zynqmp: Refactor common phy initialization into a helper
phy: zynqmp: Calibrate ILL if necessary
phy: zynqmp: Initialize chicken bits
PCI: xilinx-nwl: Split phy_init from phy_power_on
PCI: xilinx-nwl: Reset the core during probe
arm64: zynqmp: Add PCIe resets
.../bindings/pci/xlnx,nwl-pcie.yaml | 17 +
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +
drivers/pci/controller/pcie-xilinx-nwl.c | 255 +++++++--
drivers/phy/xilinx/phy-zynqmp.c | 487 +++++++++++++++++-
4 files changed, 713 insertions(+), 50 deletions(-)
--
2.35.1.1320.gc452695387.dirty