[PPC] Boot problems after the pci-v6.18-changes
Christian Zigotzky
chzigotzky at xenosoft.de
Mon Oct 13 16:23:00 AEDT 2025
> On 13. October 2025 at 07:03 am, Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
>
>
>
>> On 13 October 2025 at 06:47 am, Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
>>
>>
>>>> On 11 October 2025 at 07:36 pm, Manivannan Sadhasivam <mani at kernel.org> wrote:
>>>
>>> Hi Lukas,
>>>
>>> Thanks for looping me in. The referenced commit forcefully enables ASPM on all
>>> DT platforms as we decided to bite the bullet finally.
>>>
>>> Looks like the device (0000:01:00.0) doesn't play nice with ASPM even though it
>>> advertises ASPM capability.
>>>
>>> Christian, could you please test the below change and see if it fixes the issue?
>>>
>>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>>> index 214ed060ca1b..e006b0560b39 100644
>>> --- a/drivers/pci/quirks.c
>>> +++ b/drivers/pci/quirks.c
>>> @@ -2525,6 +2525,15 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
>>> */
>>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
>>>
>>> +
>>> +static void quirk_disable_aspm_all(struct pci_dev *dev)
>>> +{
>>> + pci_info(dev, "Disabling ASPM\n");
>>> + pci_disable_link_state(dev, PCIE_LINK_STATE_ALL);
>>> +}
>>> +
>>> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);
>>> +
>>> /*
>>> * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
>>> * Link bit cleared after starting the link retrain process to allow this
>>>
>>>
>>> Going forward, we should be quirking the devices if they behave erratically.
>>>
>>> - Mani
>>>
>>> --
>>> மணிவண்ணன் சதாசிவம்
>>
>> Hello Mani,
>>
>>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);
>>
>> Is this only for my AMD Radeon HD6870?
>>
>> My AMD Radeon HD5870 is also affected.
>>
>> And I tested it with my AMD Radeon HD5870.
>>
>> What would the line be for all AMD graphics cards?
>>
>> Thanks,
>> Christian
>
> I see. 0x6738 is for the AMD Radeon HD 6800 series.
>
> It could be, that your patch works because I tested it with an AMD Radeon HD5870 instead of an AMD Radeon HD6870. Sorry
>
> This could be the correct line for the HD5870:
>
>>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6898, quirk_disable_aspm_all);
>
> There are some more id numbers for the HD5870.
>
> Correct:
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 214ed060ca1b..e006b0560b39 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2525,6 +2525,15 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
> */
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
>
> +
> +static void quirk_disable_aspm_all(struct pci_dev *dev)
> +{
> + pci_info(dev, "Disabling ASPM\n");
> + pci_disable_link_state(dev, PCIE_LINK_STATE_ALL);
> +}
> +
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6898, quirk_disable_aspm_all);
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6899, quirk_disable_aspm_all);
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x689E, quirk_disable_aspm_all);
> +
> /*
> * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
> * Link bit cleared after starting the link retrain process to allow this
Better for testing (All AMD graphics cards):
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 214ed060ca1b..e006b0560b39 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2525,6 +2525,15 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
*/
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
+
+static void quirk_disable_aspm_all(struct pci_dev *dev)
+{
+ pci_info(dev, "Disabling ASPM\n");
+ pci_disable_link_state(dev, PCIE_LINK_STATE_ALL);
+}
+
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_ANY_ID, quirk_disable_aspm_all);
+
/*
* Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
* Link bit cleared after starting the link retrain process to allow this
More information about the Linuxppc-dev
mailing list