Re: PCI IO ECS access is no longer possible for AMD family 17h

From: Rostyslav Khudolii
Date: Fri Dec 27 2024 - 06:07:42 EST


Hi Yazen, Borislav

Thank you for the elaborate reply.

> Things to try:
>
> * use the latest upstream kernel
>
> * add some debug printks to the paths you mention to see where they fail
>
> Looking at the relevant chapter in the PPR - 2.1.7 or 2.1.8 - that
> should still work.

As far as I can see the behavior should be the same with the latest upstream
kernel and the same configuration (see below).

> I expect you would want CONFIG_ACPI_MCFG and the "MCFG" table should be
> provided through ACPI.
>
> Can you please confirm if this config option is enabled, and that the
> system provides MCFG?
>

Neither CONFIG_ACPI_MCFG nor CONFIG_PCI_MMCONFIG were originally enabled
in my kernel, when I discovered this issue.

> My understanding, based on the above info, is that ACPI should be used.
> The direct register enablement is still possible for backwards
> compatibility, if needed.
>
> I think your observation proves a good point. The registers were moved
> starting in Zen. But this is not an issue on modern OSes since ACPI is
> used by default.

This is my understanding too. However, what is the desired behavior on
Zen if the CONFIG_ACPI_MCFG
and CONFIG_PCI_MMCONFIG are both disabled? ECS should not be possible
since the registers were
moved, right?
If that's the case then, at the very least, it would be great to have
a warning message.

> For your specific issue, I think we should determine if there is a
> configuration or a firmware problem.

To give a bit more context: I am porting the kernel which works on the
AMD Ryzen™ Embedded V1000-based
device. On that system, it seems like the firmware doesn't disable IO
access to ECS (which is wrong), hence we
have never experienced this issue before. Now, the R2000-based
device's firmware disables IO access to ECS
(correctly) and that's when the issue starts to happen.

Thanks,
Ros