Skip to content

Conversation

@tvidyasagar
Copy link

This patch series enhances the PCIe Test Rule PCI_IN_19 to disable the DPC (if enabled already). Disabling the DPC makes sure that the link will not go down because of the Unsupported Request generation and ensures that the tests that get executed after PCI_IN_19 continue to have access to the downstream devices. If the DPC is enabled, UR generation can potentially trigger DPC and the link goes down and any further accesses to the downstream hierarchy will not take place.

Vidya Sagar added 2 commits December 18, 2025 02:23
Include segment number as well while checking for the root port's bdf in the
API val_pcie_parent_is_rootport().

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Add support to disable & re-enable DPC during the execution of
rule PCI_IN_19. This avoids unwanted DPC trigger and hence
avoids link down event.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
@ashishsingha
Copy link

@chetan-rathore Can you please check this?

@chetan-rathore
Copy link
Contributor

Hi @ashishsingha,

I am on holidays and will return on 4th Jan, adding @gowthamsiddarthd who will help in reviewing the changes.

@gowthamsiddarthd
Copy link
Collaborator

Hi @tvidyasagar / @ashishsingha

Thanks for catching this and for suggesting the change.

Based on your suggestion, it looks like this behavior could be applicable to other tests as well, especially those that intentionally generate Unsupported Requests (URs). Disabling DPC centrally would help ensure that UR generation does not inadvertently bring the link down, allowing subsequent tests to continue accessing downstream devices.

Given that, my suggestion would be to disable DPC during BDF table creation itself (around
https://github.com/ARM-software/sysarch-acs/blob/main/val/src/acs_pcie.c#L607). This way, DPC is disabled by default for all tests, and any test that explicitly requires DPC functionality can enable it when needed.

Let me know if you’re okay making this change, or if you’d prefer that I take care of it from my side.

Regards,
Gowtham Siddarth
ACS Team

@tvidyasagar
Copy link
Author

@gowthamsiddarthd Thanks for taking the time to review.
I'm fine with you making the change.

@tvidyasagar
Copy link
Author

Hi @gowthamsiddarthd
Would you be working on the changes?

Sujana-M added a commit to Sujana-M/sysarch-acs that referenced this pull request Jan 16, 2026
- Introduce `val_pcie_enable_dpc()` and `val_pcie_disable_dpc()` helper
  functions to manage DPC trigger enable bits in the DPC capability structure.
- Use these APIs to disable DPC for all Root Ports and Downstream Ports
  during PCIe device table creation to avoid unintended error signaling.
- Update Exerciser test e024 to call the new API for disabling DPC instead
  of manually clearing control register bits.
- Update relevant headers and extend copyright year to 2026.
- Fixes ARM-software#192

Change-Id: I8450efdc15d582bdbbddc90a8c885991613039e5
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.

4 participants