Documentation/userspace-api/fwctl/pds_fwctl.rst
Source file repositories/reference/linux-study-clean/Documentation/userspace-api/fwctl/pds_fwctl.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/userspace-api/fwctl/pds_fwctl.rst- Extension
.rst- Size
- 1979 bytes
- Lines
- 47
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GPL-2.0
================
fwctl pds driver
================
:Author: Shannon Nelson
Overview
========
The PDS Core device makes a fwctl service available through an
auxiliary_device named pds_core.fwctl.N. The pds_fwctl driver binds to
this device and registers itself with the fwctl subsystem. The resulting
userspace interface is used by an application that is a part of the
AMD Pensando software package for the Distributed Service Card (DSC).
The pds_fwctl driver has little knowledge of the firmware's internals.
It only knows how to send commands through pds_core's message queue to the
firmware for fwctl requests. The set of fwctl operations available
depends on the firmware in the DSC, and the userspace application
version must match the firmware so that they can talk to each other.
When a connection is created the pds_fwctl driver requests from the
firmware a list of firmware object endpoints, and for each endpoint the
driver requests a list of operations for that endpoint.
Each operation description includes a firmware defined command attribute
that maps to the FWCTL scope levels. The driver translates those firmware
values into the FWCTL scope values which can then be used for filtering the
scoped user requests.
pds_fwctl User API
==================
Each RPC request includes the target endpoint and the operation id, and in
and out buffer lengths and pointers. The driver verifies the existence
of the requested endpoint and operations, then checks the request scope
against the required scope of the operation. The request is then put
together with the request data and sent through pds_core's message queue
to the firmware, and the results are returned to the caller.
The RPC endpoints, operations, and buffer contents are defined by the
particular firmware package in the device, which varies across the
available product configurations. The details are available in the
specific product SDK documentation.
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.