tree 6be4c2a6aadff376a8880c90d8dedf60a2ca37f1
parent 5a582d3c7a6865eaa0d80f0dc6aeb85b2f72c2a8
author Faisal Awada <faisal@us.ibm.com> 1732370858 -0600
committer Faisal Awada <faisal@us.ibm.com> 1733176554 -0600

psutils: Add new functions to  AEI Updater class

The following functions handle the critical stages of firmware update,
including validation, reading, preparation, and reboot verification.
Error handling and logging are incorporated to isolate issues during the
update.

getFirmwarePath()
Retrieves the firmware file path from the image directory. Uses
getFWFilenamePath to fetch the path. Logs an error if the firmware path
is not found and returns an empty string otherwise returns firmware
path.

isFirmwareFileValid()
Validates the firmware file at the given path using validateFWFile.
Ensure the firmware file exists and meets requirements before proceeding
with the update. Logs an error if validation fails.

openFirmwareFile()
Opens the firmware file at the specified path for reading in binary
mode. Logs an error if the file cannot be opened.

readFirmwareBlock()
Reads a block of data from the firmware file.Uses readFirmwareBytes to
read the specified number of bytes.

prepareCommandBlock()
Prepares a command block for writing firmware data to the PSU. Adds
metadata, data, and a CRC8 checksum. Packages firmware data in a format
suitable for I2C transmission.

ispReboot()
Sends a reboot command to the status register to apply new firmware.

ispReadRebootStatus()
Reads the reboot status from ISP, returns true for success otherwise
false.

Tested:
- Validated that the firmware path retrieves the correct file.
- A validation error is logged when the file is empty or path is
  incorrect.
- Removed read permission on the firmware file and verified that an
  error was logged.
- Verify the block of data read as specified in the specification.
- Printed the command block and verified that the command and data are
  ready to be sent to the PSU via I2C.
- Downloaded the firmware and verified that the command block, ISP
  reboot and reboot status are working as expected.

Change-Id: I097b4aeefc0967d5591b8fb6aefb3c600c9f77f8
Signed-off-by: Faisal Awada <faisal@us.ibm.com>
