-
Notifications
You must be signed in to change notification settings - Fork 2.9k
MdeModulePkg/PciHostBridgeDxe: Ignore unsupported I/O BARs. #11776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MdeModulePkg/PciHostBridgeDxe: Ignore unsupported I/O BARs. #11776
Conversation
ardbiesheuvel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a reasonable workaround to me - it is a bit of a hack, but it gets rid of the system-wide PCD, and takes the properties of the individual root bridges into account.
The only thing missing here is a DEBUG() that explains that I/O resources are being disregarded because the I/O aperture is missing entirely.
4f069fa to
15d6526
Compare
|
Looks good to me. |
|
@ardbiesheuvel, @mdkinney,
I've added the debug print statement as requested.
I agree with this and have made the necessary change. |
ddacf52 to
4cf7b3c
Compare
|
Corrected spelling errors and capitalization. |
Bootup fails when an endpoint requests I/O space BARs and the Root Bridge does not support I/O space causing a resource conflict during bus enumeration. While I/O space is traditionally supported in x86_64, platforms using an Arm architecture may or may not support I/O space. This change adds logic allowing the platform to detect I/O space support for each Root Bridge and prevent submission of the required I/O resources for allocation when unsupported. Endpoints will not receive I/O resources, but they will continue to receive Memory BAR resources. Signed-off-by: Michael Escue <[email protected]> Reviewed-by: Joseph Oresko <[email protected]>
4cf7b3c to
0162968
Compare
|
This pull request has been removed from the queue for the following reason: The pull request can't be updated
You should update or rebase your pull request manually. If you do, this pull request will automatically be requeued once the queue conditions match again. |
Description
Bootup fails when an endpoint requests I/O space BARs and the Root Bridge does not support I/O space causing a resource conflict during bus enumeration. While I/O space is traditionally supported in x86_64, platforms using an Arm architecture may or may not support I/O space.
This change adds logic allowing the platform to detect I/O space support for each Root Bridge and prevent submission of the required I/O resources for allocation when unsupported. Endpoints will not receive I/O resources, but they will continue to receive Memory BAR resources.
How This Was Tested
Integration Instructions