1 .. SPDX-License-Identifier: GPL-2.0-only 2 3 ================================== 4 PLDM Firmware Flash Update Library 5 ================================== 6 7 ``pldmfw`` implements functionality for updati 8 the PLDM for Firmware Update standard 9 <https://www.dmtf.org/documents/pmci/pldm-firm 10 11 .. toctree:: 12 :maxdepth: 1 13 14 file-format 15 driver-ops 16 17 ================================== 18 Overview of the ``pldmfw`` library 19 ================================== 20 21 The ``pldmfw`` library is intended to be used 22 implementing device flash update based on firm 23 firmware file format. 24 25 It is implemented using an ops table that allo 26 the underlying device specific functionality. 27 28 ``pldmfw`` implements logic to parse the packe 29 firmware file into data structures, and then u 30 operations to determine if the firmware file i 31 so, it sends the record and component data to 32 specific implementations provided by device dr 33 firmware indicates that the update may be perf 34 sent to the device for programming. 35 36 Parsing the PLDM file 37 ===================== 38 39 The PLDM file format uses packed binary data, 40 stored in the Little Endian format. Several pi 41 length, including version strings and the numb 42 Due to this, it is not straight forward to ind 43 descriptors, or components. 44 45 To avoid proliferating access to the packed bi 46 library parses and extracts this data into sim 47 access. 48 49 In order to safely process the firmware file, 50 unaligned access of multi-byte fields, and to 51 Endian to CPU host format. Additionally the re 52 components are stored in linked lists. 53 54 Performing a flash update 55 ========================= 56 57 To perform a flash update, the ``pldmfw`` modu 58 steps 59 60 1. Parse the firmware file for record and comp 61 2. Scan through the records and determine if t 62 in the file. The first matched record will 63 3. If the matching record provides package dat 64 the device. 65 4. For each component that the record indicate 66 the device. For each component, the firmwar 67 indication of whether the update is suitabl 68 not suitable, the update is canceled. 69 5. For each component, send the binary data to 70 updating. 71 6. After all components are programmed, perfor 72 actions to finalize the update.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.