| .. 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. |