Skip to content

Conversation

@vbpandya
Copy link
Contributor

Platform/Arm/VExpressPkg: Reserve the ECAM area in ACPI with RES0 device

Add a RES0 device to the SSDT to reserve the PCI ECAM area.This fixes the firmware bug reported by Linux:

acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x40000000-0x4fffffff]not reserved in ACPI namespace

With this change, the above message is replaced with:

acpi PNP0A08:00: ECAM area [mem 0x40000000-0x4fffffff] reserved by PNP0C02:00

This patch is based on commit 1e5be97 ("Platform/ARM/JunoPkg:Reserve the ECAM area in ACPI with RES0 device")

REF:https://developer.arm.com/documentation/100964/1127/Base-Platform/Base-Platform-memory/Base-Platform-memory-map?lang=en

Also use same PCD for Juno and VExpress.

Add a RES0 device to the SSDT to reserve the PCI ECAM area.
This fixes the firmware bug reported by Linux:

acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x40000000-0x4fffffff]
not reserved in ACPI namespace

With this change, the above message is replaced with:

acpi PNP0A08:00: ECAM area [mem 0x40000000-0x4fffffff] reserved by
PNP0C02:00

This patch is based on commit 1e5be97 ("Platform/ARM/JunoPkg:
Reserve the ECAM area in ACPI with RES0 device")

REF:https://developer.arm.com/documentation/100964/1127/Base-Platform/
Base-Platform-memory/Base-Platform-memory-map?lang=en

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
Since Juno and VExpress are using the same PCDs using a common name for
both the platforms.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
@vbpandya
Copy link
Contributor Author

vbpandya commented Mar 3, 2025

@samimujawar can you please take a look at this PR ?

QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x0000000000000000, // Granularity
FixedPcdGet64 (PcdPciExpressBaseAddress), // Range Minimum
FixedPcdGet64 (PcdPciConfigurationSpaceLimit), // Range Maximum
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you check if the Size be used from https://github.com/tianocore/edk2-platforms/blob/master/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc#L212-L213, please?
If so believe the Limit can be computed, right?

gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId|0|UINT32|0x00000005
gArmVExpressTokenSpaceGuid.PcdArmMaliDpMaxMode|0|UINT32|0x00000008

gArmTokenSpaceGuid.PcdPciConfigurationSpaceSize|0x10000000|UINT64|0x00000011
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is the gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseSize different from gArmTokenSpaceGuid.PcdPciConfigurationSpaceSize, can you check, please?

See https://github.com/tianocore/edk2/blob/master/MdePkg/MdePkg.dec#L2538

@samimujawar
Copy link
Contributor

@vbpandya any update on the status of this PR?

@vbpandya
Copy link
Contributor Author

@vbpandya any update on the status of this PR?

This one slipped through the cracks, in the mean time FVP has moved to Dynamic table (makes implementing your feedback easy) which Juno is still on static tables, will close this PR for now, since it will be good to move Juno to Dynamic Table and then use common PCD for both platforms.

@vbpandya vbpandya marked this pull request as draft August 18, 2025 10:20
@samimujawar
Copy link
Contributor

I think we should drop the static tables support and keep Dynamic Tables Framework based support only for Juno. Can you send a separate PR for that, please?

Also, I think the SSDT PCIe generator may be taking care of the Firmware bug issue which the Linux kernel reports. Can you check and report back, please? In that case this PR can be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants