@@ -280,6 +280,40 @@ used for accelerator-specific control registers.
280280User-space applications can acquire exclusive access to an AFU attached to a
281281port by using open() on the port device node and release it using close().
282282
283+ AFU MMIO space must begin with a feature list, either version 0 or 1. The GUID
284+ at the head of an AFU feature list defines the GUID with which the AFU is
285+ discovered. Within the first DFH:
286+
287+ - The feature type is 1 (AFU)
288+ - Revision may be an AFU-private version number
289+ - ID is normally 0
290+
291+ AFUs that require connections through multiple PCIe functions define a
292+ parent/child relationship. A parent AFU must use a version 1 feature at
293+ the head of its feature list. Children are enumerated by their GUIDs as
294+ parameters in the parent's version 1 header:
295+
296+ - The parameter ID is 2, version 0 (see
297+ https://github.com/OFS/dfl-feature-id/blob/main/dfl-param-ids.rst)
298+ - The parameter's payload is a list of child GUID_L and GUID_H pairs
299+ - The parameter's next field (payload size in 8 byte words) indicates
300+ the number of children: two 8 byte words for each child
301+
302+ Child AFUs may have either version 0 or version 1 headers:
303+
304+ - The feature type is 1 (AFU)
305+ - ID is normally 1
306+ - The GUID must match a GUID from the parent's child list parameter
307+
308+ Unlike normal AFUs, which may be replicated in hardware and expose the
309+ same GUID multiple times, child GUIDs must typically be unique. A given
310+ parent AFU normally depends on a specific instance of an associated child.
311+ While an AFU's children are often located on the same FPGA, it is not
312+ a requirement. With multiple FPGAs in a system, children will be
313+ discovered with normal AFU GUID searches and may be found anywhere.
314+ Attempting to open a parent AFU will fail if the children can not be
315+ found.
316+
283317The following functions are exposed through ioctls:
284318
285319- Get driver API version (DFL_FPGA_GET_API_VERSION)
@@ -641,7 +675,7 @@ could be a reference.
641675
642676Please refer to below link to existing feature id table and guide for new feature
643677ids application.
644- https://github.com/OPAE /dfl-feature-id
678+ https://github.com/OFS /dfl-feature-id
645679
646680
647681Location of DFLs on a PCI Device
0 commit comments