[PATCH v5 0/5] firmware: tegra: bpmp: Add ACPI and MBWT support

From: Aniruddha Rao

Date: Tue Sep 29 2026 - 06:05:24 EST


This series adds ACPI support to the Tegra BPMP driver and support for
Memory Bandwidth Throttler (MBWT) controls exposed by BPMP firmware of
some Tegra platforms.

The current BPMP driver depends on device tree bindings. This series
keeps the existing DT path unchanged while adding an ACPI transport path
for BPMP firmware requests.

MBWT controls are accessed through BPMP firmware requests. This series
defines the MBWT BPMP ABI, adds MBWT helper functions, and exposes a
narrow sysfs interface when firmware reports support for the required
MBWT requests.

Aniruddha Rao (5):
firmware: tegra: bpmp: Move channel initialization to helper
firmware: tegra: bpmp: Add ACPI support
firmware: tegra: bpmp: Add the Memory Bandwidth Throttler ABI
definitions
firmware: tegra: bpmp: Add MBWT BPMP helpers
firmware: tegra: bpmp: Add MBWT sysfs interface

.../ABI/testing/sysfs-platform-tegra-bpmp | 48 ++
drivers/firmware/tegra/Makefile | 1 +
drivers/firmware/tegra/bpmp-private.h | 39 ++
drivers/firmware/tegra/bpmp-sysfs.c | 207 +++++++++
drivers/firmware/tegra/bpmp-tegra186.c | 14 +
drivers/firmware/tegra/bpmp-tegra210.c | 13 +-
drivers/firmware/tegra/bpmp.c | 415 +++++++++++++++---
include/soc/tegra/bpmp-abi.h | 161 ++++++-
include/soc/tegra/bpmp.h | 2 +
9 files changed, 849 insertions(+), 51 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-platform-tegra-bpmp
create mode 100644 drivers/firmware/tegra/bpmp-sysfs.c

Changes since v4:
- Move BPMP channel allocation and ping setup/teardown into the
SoC-specific init/deinit operations.
- Add an optional init_providers operation for DT child and provider
registration after BPMP communication is established and the firmware
tag is read.
- Add an ACPI BPMP init operation for the BMRQ ping path.
- Remove ACPI-specific setup and teardown conditionals from the common
probe path.
- Drop the redundant NULL check after device_get_match_data().
- Explain the transport and provider initialization phases in the ACPI
support commit message.
- Explain why DT registers an incoming MRQ_PING handler while ACPI only
sends an outgoing ping request.
- Describe MBWT bandwidth groups and traffic types with platform data so
firmware instance and VC type values can vary between platforms.
- Document the sysfs hierarchy using platform-defined bandwidth-group and
traffic-type names.

Changes since v3:
- Update the sysfs ABI Documentation date to September 2026 and target
release to 7.4.

Changes since v2:
- Rename the non-ACPI transfer helper to tegra_bpmp_transfer_channel().
- Keep the common BPMP message validation in tegra_bpmp_transfer().
- Remove duplicate message validation from the ACPI transfer helper.
- Move the MBWT helpers near probe and document why they are needed.
- Rename bpmp-tegra-sysfs.c to bpmp-sysfs.c.

Changes since v1:
- Dropped the SoC Kconfig patch.
- Kept the existing DT path unchanged while adding ACPI support.
- Reworked ACPI matching to avoid a dummy ops table.
- Added explicit error handling for short ACPI BMRQ responses.
- Folded MBWT helpers into bpmp.c.
- Reworked MBWT sysfs into per-traffic bandwidth attributes.
- Removed software bandwidth range checks.
- Use NVCLINK consistently in commit messages and documentation.
- Avoid platform-specific or transport-specific MBWT wording.

--
2.43.0