Public bug reported:

Backport five OOT patches to 24.04_linux-nvidia-6.17-next adding ACPI-
based BPMP IPC support and a sysfs interface for configuring PCIe/GPU-
UPHY memory bandwidth throttling (SoC Hub MBWT) on T410/NVL72 systems.
These are needed for VR.

#       Commit  Subject
1       8065c4353f6ad   tegra: bpmp: Move channel, resource init to helper
2       18afbd87c6cd7   tegra: bpmp: Add ACPI support
3       3abb3e53efe04   tegra: bpmp: Add BPMP client driver for T410
4       9fa2b9e2a3ea3   firmware: tegra: bpmp-tegra410: fix duplicate sysfs 
name on multi-instance BPMP
5       86a5b0bf7cd59   firmware: tegra: bpmp-tegra410: reject duplicate mbwt 
export

Patch 1 refactors tegra_bpmp_probe() by extracting
tegra_bpmp_init_channels() and tegra_bpmp_init_resources() helpers,
preparing the driver for ACPI where channel init is handled by AML.

Patch 2 adds ACPI transport via tegra_bpmp_transfer_acpi() calling ACPI
BMRQ AML method, bypasses channel init/MRQ/DT resources on ACPI systems,
and adds ACPI match table for NVDA3001.

Patch 3 adds bpmp-tegra410.c — a new BPMP client driver exposing sysfs
export/unexport to create per-SoC-Hub-instance mbwtN/ devices with
vc_type (WO) and bandwidth (RW) attributes. Adds MRQ_SOCHUB_MBWT (96)
ABI with GET_BW/SET_BW sub-commands.

Patch 4 fixes -EEXIST crash on NVL72 dual-BPMP systems by making sysfs
device names unique per instance (mbwt_control_NVDA3001:00, :01).

Patch 5 adds device_find_child() guard to reject duplicate export of the
same instance, preventing kobject registration errors.

How to verify & result

1. BPMP sysfs unit test (bpmp_mbwt_sysfs_unit_test.sh):

Result: 17/17 PASS, 0 FAIL, 0 SKIP (both systems)

[Test 0]  BPMP driver probe                    PASS
[Test 1]  sysfs class exists                   PASS
[Test 2]  Found 2 control devices              PASS
[Test 3]  Multi-instance unique names           PASS
[Test 4]  export/unexport writable             PASS
[Test 5]  Export instance 0                    PASS
[Test 6]  vc_type + bandwidth attrs present    PASS
[Test 7]  Read without vc_type → rejected      PASS
[Test 8]  Set vc_type=0, read bandwidth        PASS
[Test 9]  Write BW=50, readback=50             PASS
[Test 10] vc_type auto-clear enforced          PASS
[Test 11] Export second instance               PASS
[Test 12] Duplicate export rejected            PASS
[Test 13] Unexport removes device              PASS
[Test 14] Unexport non-existent → rejected     PASS
[Test 15] ACPI NVDA3001 in dmesg               PASS
2. BPMP PCIe bandwidth throttle test (bpmp_throttle_fio_test.sh on comp016):

Sets all 6 SoC Hub instances (both vc_type 0 and 1) then measures NVMe
fio throughput:

BPMP BW NVMe Read       NVMe Write      Effect
100 GB/s (baseline)     14.9 GB/s       5.5 GB/s        —
50 GB/s 14.9 GB/s       5.5 GB/s        Below NVMe cap
10 GB/s 10.1 GB/s       5.5 GB/s        Throttled (-32%)
1 GB/s  1.0 GB/s        1.0 GB/s        Throttled (-93%)
100 GB/s (recovery)     14.9 GB/s       3.6 GB/s        Recovers
BPMP MBWT throttle confirmed working end-to-end on NVL72 hardware, effective 
down to 1 GB/s.

** Affects: linux-nvidia-6.17 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2147212

Title:
  Backport BPMP ACPI + SoC Hub MBWT sysfs driver for T410/NVL72

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.17/+bug/2147212/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to