mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.2 KiB
56 lines
2.2 KiB
.. SPDX-License-Identifier: GPL-2.0-only |
|
|
|
========================= |
|
Driver-specific callbacks |
|
========================= |
|
|
|
The ``pldmfw`` module relies on the device driver for implementing device |
|
specific behavior using the following operations. |
|
|
|
``.match_record`` |
|
----------------- |
|
|
|
The ``.match_record`` operation is used to determine whether a given PLDM |
|
record matches the device being updated. This requires comparing the record |
|
descriptors in the record with information from the device. Many record |
|
descriptors are defined by the PLDM standard, but it is also allowed for |
|
devices to implement their own descriptors. |
|
|
|
The ``.match_record`` operation should return true if a given record matches |
|
the device. |
|
|
|
``.send_package_data`` |
|
---------------------- |
|
|
|
The ``.send_package_data`` operation is used to send the device-specific |
|
package data in a record to the device firmware. If the matching record |
|
provides package data, ``pldmfw`` will call the ``.send_package_data`` |
|
function with a pointer to the package data and with the package data |
|
length. The device driver should send this data to firmware. |
|
|
|
``.send_component_table`` |
|
------------------------- |
|
|
|
The ``.send_component_table`` operation is used to forward component |
|
information to the device. It is called once for each applicable component, |
|
that is, for each component indicated by the matching record. The |
|
device driver should send the component information to the device firmware, |
|
and wait for a response. The provided transfer flag indicates whether this |
|
is the first, last, or a middle component, and is expected to be forwarded |
|
to firmware as part of the component table information. The driver should an |
|
error in the case when the firmware indicates that the component cannot be |
|
updated, or return zero if the component can be updated. |
|
|
|
``.flash_component`` |
|
-------------------- |
|
|
|
The ``.flash_component`` operation is used to inform the device driver to |
|
flash a given component. The driver must perform any steps necessary to send |
|
the component data to the device. |
|
|
|
``.finalize_update`` |
|
-------------------- |
|
|
|
The ``.finalize_update`` operation is used by the ``pldmfw`` library in |
|
order to allow the device driver to perform any remaining device specific |
|
logic needed to finish the update.
|
|
|