Skip to content

Commit 500f788

Browse files
authored
Merge pull request #1997 from hpe-dev-incubator/cms/blog/hpe-firmware-updates-part-1-file-types-and-smart-components
Update Blog “hpe-firmware-updates-part-1-file-types-and-smart-components” Changed doc link to new Redocly URL and associated screenshot.
2 parents e0dc59b + e5f013c commit 500f788

File tree

2 files changed

+12
-30
lines changed

2 files changed

+12
-30
lines changed

content/blog/hpe-firmware-updates-part-1-file-types-and-smart-components.md

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,91 +12,74 @@ tags:
1212
- uefi
1313
- redfish
1414
---
15-
### Updated: June 10, 2022
15+
### Updated: July 25, 2023
1616

1717
## Introduction
1818

1919
Computer firmware updates are extremely important as they offer new features, fix bugs, and deliver security improvements. The diversity of devices within a computer that contain firmware is high and, unfortunately, due to their nature and origin, there is not a single path to update them. As an example, HPE ProLiant or Synergy BIOS/ROM firmware may not be updated with the same tools as a partner add-on network card.
20-
20+
2121
An efficient firmware update strategy requires the knowledge of several key components like update agents and firmware package types, as well as an awareness of all the associated tools involved. This multipart blog series describes the main objects related to firmware updates in HPE iLO 5 based servers and the relationships between them, important information to know when addressing firmware updates.
22-
22+
2323
In this first part, I will cover firmware file types and Smart Components (SC), including SC security and partner-specific considerations. It should be noted that I will not be covering the potential dependencies found with high-level management software like HPE OneView or the HPE iLO Amplifier Pack. For information on those topics, please refer to the specific product [documentation](http://www.hpe.com/support/hpesc).
24-
24+
2525
The [second part](/blog/hpe-firmware-updates-part-2-interaction-in-operating-modes) concerns firmware operating modes on different network topologies. Finally, once the firmware concepts are well understood, you will be ready to read part three, which deals with the automation of firmware updates using the [Redfish®](https://redfish.dmtf.org/) standard.
26-
2726

2827
## Firmware binaries
2928

3029
Depending on the device being updated (aka flashed), the type of file containing the firmware is different. As an example, the Power Management Controller firmware is embedded in a `.hex` file while the System Programmable Logic Device firmware file uses the extension `.vme`. The exhaustive list of HPE firmware binary types is presented in a Help pop-up window of the iLO Graphical User Interface: `Firmware & OS Software --> Update Firmware` (right pane) `--> ?
3130
--> Server firmware file type details`.
3231

33-
3432
![d1](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d1-1598025868664.png)
3533

3634
## Smart Components
3735

3836
HPE and partner vendor (Intel, Mellanox, Marvell, etc.) firmware binaries are packaged in Smart Components. They are distributed individually via the online [HPE Support Center](https://support.hpe.com/hpesc/public/home/) or grouped in support packs like the [Service Support Pack for ProLiant](http://www.hpe.com/servers/spp) (SPP).
39-
37+
4038
Smart Components are self-executable modules that contain firmware binaries, drivers, and JSON/XML metadata, as well as the code used to install or flash the embedded firmware or driver. They are packaged in different files types: `.fwpkg, .zip, .rpm` and `.exe`. In older SPPs, you may also find`.scexe` extensions.
41-
42-
You can browse and extract the content from Smart Components using tools like `7-Zip` on Windows or `unzip, rpm` or `rpm2cpio` combined with `cpio` on Linux (see below picture). The following screenshots show content from the different SC types.
4339

40+
You can browse and extract the content from Smart Components using tools like `7-Zip` on Windows or `unzip, rpm` or `rpm2cpio` combined with `cpio` on Linux (see below picture). The following screenshots show content from the different SC types.
4441

4542
![d2](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d2-1598025876858.png)
4643

47-
48-
4944
![d3](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d3-1598025882328.png)
5045

51-
52-
5346
![d4](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d4-1598025888854.png)
5447

5548
## Security concerns
5649

5750
Smart Components are digitally signed by Hewlett Packard Enterprise (HPE) to avoid any injection of malware following the creation of the SC. The digital signature is either embedded in the SC (i.e. `.fwpkg`) or in an external companion file (`.compsig`). During the upload of Smart Components into the iLO Repository of a server, iLO verifies and validates the signature. If the signature does not validate correctly, iLO discards the SC and returns and error similar to “The file signature is invalid”.
5851

59-
6052
![d5](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d5-1598025894853.png)
6153

62-
63-
6454
![d6](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d6-1598025903184.png)
6555

6656
HPE binaries contained in the SC also include an HPE signature. The following screenshot shows the beginning and the end of the fingerprint section found in an iLO. It also shows the ROM/BIOS firmware extracted from the respective Smart Components.
6757

6858
![d7](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d7-1598025910403.png)
6959

7060
Smart Components larger than 32 MiB have several associated `.compsig` files, because iLO, like all of the Baseboard Management Cards (BMC) compliant to the Redfish® standard, has a limited transfer size of 32 MiB. The following picture shows a component in SPP 2020.03 with four `.compsig` files. To upload this SC into an iLO repository, you will need to first split it into chunks of 33554432 bytes (32 \* 1024 \* 1024) to match the `.compsig` files. You can automatically and seamlessly perform this split operation using tools like [iSUT](https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-6947ENW.pdf), [SUM](https://support.hpe.com/hpesc/public/docDisplay?docId=a00097903en_us) or [iLOrest](http://hpe.com/info/resttool).
71-
7261

7362
![d8](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d8-1598025918145.png)
7463

7564
## Update agents
7665

77-
HPE iLO can flash its own firmware as well as the firmware of other devices. However, it is not able to flash all types of firmware to their target locations. Other update agents exist that can help with this and are listed in the `UpdatableBy` JSON array mentioned in the [HPE Redfish API reference document](https://hewlettpackard.github.io/ilo-rest-api-docs/ilo5/#updatableby-array). The description of each element (`Uefi, RuntimeAgent` and `Bmc`) is shown in the following screenshot.
78-
66+
HPE iLO can flash its own firmware as well as the firmware of other devices. However, it is not able to flash all types of firmware to their target locations. Other update agents exist that can help with this and are listed in the `UpdatableBy` JSON array mentioned in the [HPE Redfish API reference document](https://servermanagementportal.ext.hpe.com/docs/redfishservices/ilos/ilo6/ilo6_145/ilo6_hpe_resourcedefns145/#updatableby-array). The description of each element (`Uefi, RuntimeAgent` and `Bmc`) is shown in the following screenshot.
7967

80-
![d9](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d9-1598025925410.png)
68+
![UpdatableBy (array)](/img/8-updatablebyarray.png)
8169

82-
83-
8470
## Smart Component metadata
8571

8672
Smart Components contain metadata stored in one or more files with different suffixes (`.xml`, `.json`, etc). The `payload.json` file lists the update agents able to process the component. This list can be viewed from the iLO Graphical User Interface in the `Firmware & OS Software – iLO Repository` screen.
87-
88-
8973

9074
![d10](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d10-1598025933118.png)
9175

9276
Note that, if you modify the SC metadata file and its list of supported update agents, iLO will refuse to upload the SC since the signature has changed.
93-
77+
9478
## Partner Smart Components
9579

9680
HPE partner (Intel, Marvell, Mellanox, etc.) firmware and drivers are packaged in signed Smart Components by HPE. Very often, they also contain executables, scripts, and dynamically linked libraries (`.dll`) that are proprietary to the partner. It is crucial to understand that the list of update agents that are able to flash a partner’s firmware is dictated by the partner. Neither HPE nor end customers have the possibility to alter this list.
97-
98-
For example, Smart Component `cp040152.exe` contains firmware updates for Intel Fortville based adapters. As shown below, the embedded `payload.json` only lists `RuntimeAgent` in the `UpdatableBy` array. Moreover, the `FirmwareImages` section explicitly mentions that UEFI is not able to flash the binary file `.//FW/BootIMG.FLB`. In other words, only OS-based applications, like [iSUT](https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-6947ENW.pdf) or [SUM](https://support.hpe.com/hpesc/public/docDisplay?docId=a00097903en_us), are able to perform the firmware updates of these converged network adapters by launching the tools provided by the partner. The consequences of using this type of SC is discussed in Part 2 of this series.
9981

82+
For example, Smart Component `cp040152.exe` contains firmware updates for Intel Fortville based adapters. As shown below, the embedded `payload.json` only lists `RuntimeAgent` in the `UpdatableBy` array. Moreover, the `FirmwareImages` section explicitly mentions that UEFI is not able to flash the binary file `.//FW/BootIMG.FLB`. In other words, only OS-based applications, like [iSUT](https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-6947ENW.pdf) or [SUM](https://support.hpe.com/hpesc/public/docDisplay?docId=a00097903en_us), are able to perform the firmware updates of these converged network adapters by launching the tools provided by the partner. The consequences of using this type of SC is discussed in Part 2 of this series.
10083

10184
![d11](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2020/7/d11-1598025939128.png)
10285

@@ -107,9 +90,8 @@ For example, Smart Component `cp040152.exe` contains firmware updates for Intel
10790
In this article, I covered the following objects and concepts involved in HPE firmware updates, as well as their relationships:
10891

10992
* HPE Firmware binary types
110-
11193
* HPE and partner Smart Components
112-
11394
* Update agents
11495

115-
This is important information you need to plan your firmware update strategy, but it is not sufficient. In my second article on this subject, I will describe different update operating modes as well as the interactions between different objects. Make sure you check the [HPE DEV blog](/blog) site often to view my next post as well as other interesting tutorials and articles.
96+
97+
This is important information you need to plan your firmware update strategy, but it is not sufficient. In my second article on this subject, I will describe different update operating modes as well as the interactions between different objects. Make sure you check the [HPE DEV blog](/blog) site often to view my next post as well as other interesting tutorials and articles.

static/img/8-updatablebyarray.png

64.8 KB
Loading

0 commit comments

Comments
 (0)