[PATCH v2] pci: Do not enable PCIe GEN3 link retrain workaround by default

Simon Glass sjg at chromium.org
Tue Aug 30 04:30:02 CEST 2022


On Sat, 27 Aug 2022 at 06:30, Pali Rohár <pali at kernel.org> wrote:
>
> PCIe GEN3 link retrain workaround, specially designed for system with PCIe
> ASMedia ASM2824 Switch and other Endpoint devices, unconditionally increase
> size of all SPL binaries with PCIe support, even those which do not require it.
>
> Moreover this workaround is enabled for all existing hardware and also all
> future PCIe hardware, which opens a hole that other PCIe vendors may
> introduce same HW issue as on systems where this workaround is required and
> nobody would notice it because U-Boot automatically apply workaround for it.
>
> So do not unconditionally enable this workaround on all hardware. Instead
> introduce a new config option which is disabled by default. This decrease
> SPL size and also ensure that workaround is not blindly or inexactly
> enabled.
>
> To make workaround code local, move it into separate file, so pci_auto.c
> contains only generic auto configuration code.
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
> ---
> Changes in v2:
> * Rename config option to CONFIG_PCIE_GEN3_RETRAIN_WORKAROUND as it is
>   generic workaround and does not have to be needed only for ASMedia switch
>   (moreover it looks like issue is triggered by combination of ASMedia
>    switch with other endpoint PCIe device)
> * Rephrase Kconfig help text as suggected by Stefan
> ---
>  drivers/pci/Kconfig                        |   9 +
>  drivers/pci/Makefile                       |   1 +
>  drivers/pci/pci_auto.c                     | 171 +------------------
>  drivers/pci/pcie_gen3_retrain_workaround.c | 183 +++++++++++++++++++++
>  4 files changed, 197 insertions(+), 167 deletions(-)
>  create mode 100644 drivers/pci/pcie_gen3_retrain_workaround.c

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list