diff options
| author | Ronak Jain <ronak.jain@amd.com> | 2026-05-20 02:36:54 -0700 |
|---|---|---|
| committer | Michal Simek <michal.simek@amd.com> | 2026-05-25 16:09:15 +0200 |
| commit | 47d7bca76dd4f36ba0525d761f247c76ec9e4b17 (patch) | |
| tree | 8cad349244edc1ab5b77cb22ef52fcc36a27523f /MAINTAINERS | |
| parent | 8ebebccf1579f6ce92bde3ddbb13df12c080f647 (diff) | |
| download | linux-next-history-47d7bca76dd4f36ba0525d761f247c76ec9e4b17.tar.gz | |
firmware: zynqmp: Add dynamic CSU register discovery and sysfs interface
Add support for dynamically discovering and exposing Configuration
Security Unit (CSU) registers through sysfs. Leverage the existing
PM_QUERY_DATA API to discover available registers at runtime, making
the interface flexible and maintainable.
Key features:
- Dynamic register discovery using PM_QUERY_DATA API
* PM_QID_GET_NODE_COUNT: Query number of available registers
* PM_QID_GET_NODE_NAME: Query register names by index
- Automatic sysfs attribute creation under csu_registers/ group
- Read operations via existing IOCTL_READ_REG API
- Write operations via existing IOCTL_MASK_WRITE_REG API
The sysfs interface is created at:
/sys/devices/platform/firmware:zynqmp-firmware/csu_registers/
Currently supported registers include:
- multiboot (CSU_MULTI_BOOT)
- idcode (CSU_IDCODE, read-only)
- pcap-status (CSU_PCAP_STATUS, read-only)
The dynamic discovery approach allows firmware to control which
registers are exposed without requiring kernel changes, improving
maintainability and security.
The firmware does not currently expose per-register access mode
information, so the kernel cannot distinguish read-only registers
from read-write ones at discovery time. All discovered registers are
therefore created with sysfs mode 0644, and the firmware is
responsible for rejecting writes to registers it treats as read-only
(for example idcode and pcap-status); that error is propagated back
to userspace from the store callback. If a per-register access-mode
query is added to the firmware in the future, sysfs permissions can
be tightened to match.
CSU register discovery is an optional feature: on firmware that lacks
support for PM_QID_GET_NODE_COUNT or PM_QID_GET_NODE_NAME, the probe
returns gracefully without exposing any sysfs entries. To keep the
memory footprint minimal on that path, partial devm allocations made
during discovery are explicitly released on failure so that no memory
lingers until device unbind when the feature is unavailable.
Signed-off-by: Ronak Jain <ronak.jain@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260520093654.3303917-3-ronak.jain@amd.com
Diffstat (limited to 'MAINTAINERS')
| -rw-r--r-- | MAINTAINERS | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 2fb1c75afd163..d46789a093d96 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -29237,6 +29237,16 @@ F: drivers/dma/xilinx/xdma.c F: include/linux/dma/amd_xdma.h F: include/linux/platform_data/amd_xdma.h +XILINX ZYNQMP CSU REGISTER DRIVER +M: Senthil Nathan Thangaraj <senthilnathan.thangaraj@amd.com> +R: Michal Simek <michal.simek@amd.com> +R: Ronak Jain <ronak.jain@amd.com> +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: Documentation/ABI/stable/sysfs-driver-firmware-zynqmp +F: drivers/firmware/xilinx/zynqmp-csu-reg.c +F: drivers/firmware/xilinx/zynqmp-csu-reg.h + XILINX ZYNQMP DPDMA DRIVER M: Laurent Pinchart <laurent.pinchart@ideasonboard.com> L: dmaengine@vger.kernel.org |
