US 12,073,204 B2
Systems and methods for firmware update using multiple remote access controllers
Mahesh Babu Ramaiah, Bangalore (IN); and Rama Rao Bisa, Bangalore (IN)
Assigned to Dell Products, L.P., Round Rock, TX (US)
Filed by Dell Products, L.P., Round Rock, TX (US)
Filed on Sep. 23, 2022, as Appl. No. 17/934,949.
Prior Publication US 2024/0103829 A1, Mar. 28, 2024
Int. Cl. G06F 8/65 (2018.01); G06F 8/61 (2018.01); G06F 11/07 (2006.01)
CPC G06F 8/65 (2013.01) [G06F 8/63 (2013.01); G06F 11/076 (2013.01)] 16 Claims
OG exemplary drawing
 
1. An Information Handling System (IHS) comprising:
a firmware device;
first and second Remote Access Controllers (RACs) coupled to a device configured in the IHS, the first and second RACs each comprising a processor and a memory coupled to the at least one processor, the memory having program instructions stored thereon that, upon execution by the processor, cause the first and second RAC to:
receive, by the first RAC, a firmware update image associated with the firmware device, the firmware update image conforming to a Platform Level Data Model (PLDM) specification;
issue, by the first RAC, a command to the firmware device indicating that the firmware device is to request a firmware update from the first RAC, wherein the command includes information about the second RAC, the information comprising the ability of the second RAC to complete a transfer of the firmware update image when the first RAC partially completes the transfer of the firmware update image, wherein the firmware device is configured to issue a firmware update request in response to receipt of the command;
split, by the first RAC, the firmware update image into multiple data chunks;
replicate, by the first RAC, the data chunks in the second RAC;
commence transfer, by the first RAC, of the data chunks sequentially to the device;
with each data chunk successfully transferred to the device, update a status of the successfully transferred data chunk to the second RAC;
receive, by the second RAC, a retry request from the firmware device to transfer the remaining data chunks when the device does not successfully receive one of the data chunks from the first RAC; and
transfer, by the second RAC, the remaining data chunks that have not yet been successfully transferred to the device.