[26.04_linux-nvidia-bos] PCI: mirror PI7C9X3G606GPC Port 4 BAR0#443
Open
nirmoy wants to merge 10 commits into
Open
[26.04_linux-nvidia-bos] PCI: mirror PI7C9X3G606GPC Port 4 BAR0#443nirmoy wants to merge 10 commits into
nirmoy wants to merge 10 commits into
Conversation
Ignore: yes Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2153497 Properties: no-test-build Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Some options were not ordered as the annotations tool expected them to be. Ignore: yes Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
This is necessary to bypass dependencies declared by the nvidia-fs dkms.conf that are present on the system, detected by the nvidia-fs build, but not in the source directory used by dkms and so not detected by dkms. Ignore: yes Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
…rnel-versions (adhoc/d2026.05.20) BugLink: https://bugs.launchpad.net/bugs/1786013 Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2147212 Refactor the BPMP driver by moving channel initialization and Device Tree resource parsing into separate helper functions. This prepares the driver for ACPI support, where these helpers will be skipped because channel initialization is handled by ACPI AML methods on ACPI-based systems. Signed-off-by: Aniruddha Rao <anrao@nvidia.com> (backported from V4 internal mail <20260423140823.2848045-2-anrao@nvidia.com>) [kobak: Preserve threaded channel count/semaphore initialization after the helper split and align rx_channel allocation continuation.] Signed-off-by: Koba Ko <kobak@nvidia.com> Acked-by: Carol L Soto <csoto@nvidia.com> Acked-by: Matthew R. Ochs <mochs@nvidia.com> Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2147212 This patch adds required changes in the Tegra BPMP driver to make it compatible with ACPI based platforms. On ACPI systems, IPC is handled through the AML method instead of the core kernel framework using Mailboxes and IVC. Bypass clock, reset and powergate init calls as these are not controlled by the Linux drivers on ACPI based systems. Signed-off-by: Aniruddha Rao <anrao@nvidia.com> (backported from V4 internal mail <20260423140823.2848045-3-anrao@nvidia.com>) [kobak: Add !ACPI_HANDLE(bpmp->dev) NULL guard around bpmp->soc->ops->init because ACPI match driver_data=0 makes bpmp->soc NULL; make BPMP debugfs directory per-device on ACPI systems to avoid duplicate /sys/kernel/debug/bpmp collision on dual NVDA3001 instances; remove unused i; heap allocate the ACPI BMRQ package to avoid the frame-size warning; reject short BMRQ replies before copying response data; add CONFIG_ACPI stub for the ACPI helper; restore the public irqs_disabled() guard before ACPI/DT transport selection.] Signed-off-by: Koba Ko <kobak@nvidia.com> Acked-by: Carol L Soto <csoto@nvidia.com> Acked-by: Matthew R. Ochs <mochs@nvidia.com> Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2147212 Tegra410 exposes memory bandwidth QoS for PCIe and GPU UPHY traffic on the path to DRAM. Each bandwidth group can cap PCIe read, PCIe write, or combined GPU UPHY read and write traffic, with target limits. The memory bandwidth QoS is not exposed as ordinary host MMIO and cannot be controlled from the kernel. The bandwidth limits can be programmed by sending the corresponding requests (MBWT MRQ) to the BPMP. On Tegra410, an ACPI-based platform, Linux BPMP driver does not use the device-tree mailbox path for communicating with the BPMP firmware. As a result, there is no existing client driver or interface that can be used to send the memory bandwidth requests to the BPMP. This patch exposes a sysfs directory mbwt_control on the tegra-bpmp platform device with pcie_instance_id, vc_type, and bandwidth. Writing bandwidth issues an MBWT_SET for the selected group (pcie_instance_id) and traffic class (vc_type). A read issues MBWT_GET and returns the bandwidth value reported by firmware. These attributes are exposed only if MBWT QUERY probe reports both MBWT_SET and MBWT_GET commands as supported. ABI documented in Documentation/ABI/testing/sys-platform-tegra-bpmp Signed-off-by: Aniruddha Rao <anrao@nvidia.com> (backported from V4 internal mail <20260423140823.2848045-4-anrao@nvidia.com>) [kobak: Keep functional MRQ_SOCHUB_MBWT ABI definitions and sysfs interface from V4; condense verbose per-field ABI comments while preserving enum/struct layout and Documentation/ABI coverage; use refcounted kobject allocation for mbwt_control; validate pcie_instance_id/vc_type before staging; return only the bandwidth value from bandwidth reads; report BPMP SET rejections to userspace; fail BPMP probe on mbwt_control sysfs registration failure so 7.0-bos does not silently boot without the requested MBWT interface.] Signed-off-by: Koba Ko <kobak@nvidia.com> Acked-by: Carol L Soto <csoto@nvidia.com> Acked-by: Matthew R. Ochs <mochs@nvidia.com> Signed-off-by: Brad Figg <bfigg@nvidia.com>
Contributor
PR Validation ReportPatchscan ✅ No Missing FixesAll cherry-picked commits checked — no missing upstream fixes found. PR Lint ✅ All checks passedDetailsChecking 1 commits... Cherry-pick digest: ┌──────────────┬──────────────────────────────────────────────────────────────────┬────────────┬─────────┬───────────────────────────┐ │ Local │ Referenced upstream / Patch subject │ Patch-ID │ Subject │ SoB chain │ ├──────────────┼──────────────────────────────────────────────────────────────────┼────────────┼─────────┼───────────────────────────┤ │ a69e886f8bec │ [SAUCE] pci: quirks: mirror pi7c9x3g606gpc port 4 bar0 │ N/A │ N/A │ nirmoyd │ └──────────────┴──────────────────────────────────────────────────────────────────┴────────────┴─────────┴───────────────────────────┘ Lint: all checks passed. |
Collaborator
Author
Boro reviewSummaryNo issues found across the reviewed commits. Findings: no problems found Latest watcher review: open review Kernel deb build: successful (download debs, 4 files) Head: This comment is maintained by nv-pr-bot. It is updated when the GitHub watcher publishes a newer review. |
ed7f4ba to
5f3ea04
Compare
b836068 to
f171d75
Compare
0b64a56 to
24d68b9
Compare
Some Pericom/Diodes PI7C9X3G606GPC switches require downstream Port 4 BAR0 to mirror BAR0 of the immediate upstream port. Firmware may apply this during boot, but Linux PCI resource assignment can move the upstream BAR0 and leave Port 4 without the required mirror. Diodes confirmed that Tile0/P4 is OS-visible as device 04, function 0 on the bus below the upstream port. Add a final and early resume quirk for that downstream function. The quirk verifies that the immediate upstream bridge is the same switch, then writes Port 4 BAR0 from the upstream BAR0 after resource assignment and during early resume. Port 4 BAR0 may read back as zero even after a successful write, so the write must be validated by platform-specific means. Change-Id: I25f2390bf686109487b60d85d1573f8883e7ad28 Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
24d68b9 to
a69e886
Compare
4a0dd52 to
b35ada9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
a69e886f8becb7608a3ca2e26315d384383c82ab.scripts/checkpatch.pl --strict --ignore GERRIT_CHANGE_ID --git HEADgit diff --check HEAD~1..HEADmake O=/tmp/nv-kernels-pr443-quirks-build -j$(nproc) drivers/pci/quirks.o7.0.0-2007-nvidia-bos-64kon the Quark DUT: OS172.17.33.143via jumper10.22.18.250; BMC172.17.33.144.6.18.33-pr447-pericom-no64and showed the quirk still firing:journalctl -b -kscan forBTRFS error,I/O error,nvme.*timeout,device inaccessible,read-only,blk_update_request, andBuffer I/O errorreturned no matches.Notes:
run-partscompatibility wrapper to run the 26.04 BOS kernel maintscripts, which pass multiple hook directories. The wrapper was removed after package configuration.References
Launchpad: https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.17/+bug/2154457
6.17 PR: #442
NVBug: https://nvbugspro.nvidia.com/bug/6205517
NVBug: https://nvbugspro.nvidia.com/bug/6134331