Specifications
QSSC-S4R Technical Product Specification BMC Flash Update
299
26. BMC Flash Update
26.1 Logical Firmware Image Blocks
The BMC firmware is divided into four main functional blocks:
x Boot Block: Small firmware image containing a bootloader and cursory hardware initialization. It allows re-
download of the operational code if it somehow becomes corrupted.
x Operational Code: The main runtime firmware. This includes the embedded Linux kernel, and all applications.
x Platform Information Area (PIA): Contains all the read/write configuration/status data used by the Operational
Code. This includes IPMI configuration, SEL, SDR, etc.
x Intel® Remote Management Module 3 (Intel® RMM3) (optional): Contains executables and read-only data
needed by the advanced features. Resides on the Intel® RMM3 Add- in card flash.
Firmware in any block may be updated individually. A normal update consists of updating the Operational Code and
Intel® RMM3, while preserving the contents of the PIA. In general, the boot block should not be updated on production
systems.
These blocks are mapped onto the following pieces of the Linux architecture:
x Boot Block: Uboot boot loader code. The Uboot environment variables data section is not mapped into any update
block so it is never directly updated.
x Operation Code: Linux kernel and built-in drivers, and the Compressed ROM File system (CRAMFS) Root file
system including all applications and loadable drivers. It includes the separately built CRAMFS for the embedded
web server, mounted as /usr/local/www.
x PIA: The Parameters section, a Journaling Flash Filesystem (JFF2) read/write flash file system that contains
configuration and status files, mounted as /conf.
x Intel® RMM3: An optional CRAMFS residing on the Intel® RMM3 flash and mounted into the Root file system
when the Intel® RMM3 is present as /usr/local/rmm3.
Each block is preceded in the flash image by a Device Information Block (DIB) header identifying the type of block and
what flash addresses it comprises. The update utilities use the DIBs to decide what ranges of flash need to be written
to during an update.
26.2 Firmware Transfer Mode Update
The BMC provides a Firmware Transfer mode that allows the BMC firmware to be updated. Data is sent to the BMC to
be written into flash. Once complete, Firmware Transfer mode is exited and the BMC resets itself to resume normal
operation. This mode is different from force-update mode.
While in this mode only the firmware transfer commands are guaranteed to be supported, as well as a few commands
needed by the update process. Other commands may have unpredictable results and should be avoided.
The additional commands are:
x Get Device ID: Used to determine the current revision of the firmware, get the platform ID, and find out whether the
BMC is in operational or update mode.
x Get Self Test Results: Used to see if the BMC has errors.
x Get Buffer Size: Used to indicate that larger KCS buffers are supported (at least 128 bytes verses the old 32 byte
limit), for better KCS update performance.
x Get Advanced Support Configuration: Used to indicate if the Intel® RMM3 card is present or not. If present, it is
normally updated when the Operational code is.
Firmware Transfer mode is entered when the BMC receives the Enter Firmware Transfer Mode command while in
normal operational mode. While in this mode the BMC continues to function with the caveat that any writes to the PIA
section do not go to flash but to a RAM shadow copy. This means that after the Exit Firmware Transfer Mode
command is received and the BMC returns to normal operation, any SEL, SDR, or IPMI configuration changes made
while in Firmware Transfer mode will be lost.