答复: [PATCH v2] lib: Export the parsing functions and related data structures of the PLDM library

From: shawn . shao
Date: Mon Sep 09 2024 - 22:09:16 EST


> > On 9/9/2024 12:17 AM, Shawn.Shao wrote:
> > From: Shawn Shao <shawn.shao@xxxxxxxxxxxxxxx>
> >
> > v1 -> v2: Updated the commit message, added a description
> > of the changes related to `DeviceUpdateOptionFlags`, etc.
> >
> > The PLDM library is used to implement firmware upgrades,
> > but the current library functions only support the
> > `pldmfw_flash_image` function to complete a fixed
> > process of parsing, sending data to the backend,
> > and flashing (allowing users to implement custom
> > logic using `pldmfw_ops`). However, this poses
> > significant challenges for device vendors using
> > PLDM for firmware upgrades.
> > The following scenarios are not supported:
> > 1. Only using the PLDM parsing functions, as the
> > current library does not support this operation.
> > 2. The firmware upgrade process differs from this
> > fixed flow (the firmware upgrade process may
> > vary across different vendors).
> > |-> pldmfw_flash_image
> > |-> pldm_parse_image
> > |-> pldm_parse_header
> > |-> pldm_parse_records
> > |-> pldm_parse_components
> > -> pldm_verify_header_crc
> > |-> pldm_find_matching_record (xxx_match_record)
> > |-> pldm_send_package_data (xxx_send_package_data)
> > |-> pldm_send_component_tables
> (xxx_send_package_data)
> > |-> pldm_flash_components (xxx_flash_component)
> > |-> pldm_finalize_update (xxx_finalize_update)
> > 3. The current PLDM library does not support parsing the
> > DeviceUpdateOptionFlags parameter, which is defined in the PLDM
> > specification to facilitate the transfer of control information
> > between the UA (Update Agent) and the firmware.Please refer to:
> > https://www.dmtf.org/sites/default/files/standards/documents
> > /DSP0267_1.3.0.pdf P37.
> >
>
> Thanks! I'd prefer the DeviceUpdateOptionFlags to be separate, but I
> think the changes are good.
>
> Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>

Firstly, thanks for your reply and guidance so quickly.

1. I will separate the device_update_flags into another patch for submission, as you suggested.
2. I have another question I’d like to ask you. For support of higher versions of the PLDM library, version 2.0/Version 3.0 supports ComponentOpaqueData/ComponentOpaqueDataLength`, and requires adjustments to the `__pldmfw_component_info` structure. I would like to continue supplementing this adjustment(submit other patches). I’m not sure if you agree with this, thank you.

Please refer to:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0267_1.2.0.pdf P42

Thank you very much!