Firmware code, Structure and functionality, Firmware upgrade – Kontron AM4010 User Manual
Page 27: Firmware configuration, Ipmi firmware user guide: am4010
IPMI Firmware User Guide: AM4010
6.4 Firmware
Code
6.4.1 Structure and functionality
MMC firmware code is organized into boot code and operational code, both of which are
stored in a flash module. Upon an MMC reset, the MMC executes the boot code and performs
the following:
1- Self test to verify the status of its hardware and memory.
2- Performs a checksum of the operational code.
3- Communicates with the Firmware Upgrade Manager (FWUM) in order to inform the MC
watchdog that the actual MMC firmware is suitable for execution. Upon successful
verification of the operational code checksum, the firmware will jump to the operational code.
Operational code is upgradeable in-the-field.
6.4.2 Firmware
Upgrade
The standard way to upgrade the MMC’s operational code is to use the open tool ‘ipmitool’
[1] together with an image file. Ipmitool allows the downloading (‘ipmitool download …’)
and activation (‘ipmitool upgrade’) of the new operational code and saves an existing one.
The rollback to the formerly running operational code is possible as well (‘ipmitool
rollback’)..
All IPMI interfaces which are offered by ipmitool are usable (KCS interface, IPMB bus,
LAN). This allows local upgrade or remote upgrade.
Files which contain an image of operational code have the module type (AM4010) and the
string “FWUM” in its name.
During the download process the currently running operational code operates as usual until
the upgrade command is issued. During the upgrade process the MMC is off line for about 45
seconds when the boot code is re-organizing the firmware storage and afterwards starts the
new operational code. If this doesn’t succeed after a time out the boot code performs an
automatic rollback to the last working operational code.
6.5 Firmware
Configuration
For software that uses the local KCS connection to the MMC, it may be may be more
favorable to set up interrupt based KCS communications. This may help to speed up data
exchange via KCS considerably. By default, the MMC does not generate interrupts to the
local CPU at all. The best way to change this is to use the IPMI menu in BIOS (Advanced ->
IPMI 1.5 Configuration -> KCS-SMS IRQ). Possible options are: IRQ10, IRQ11 or disabled
(default setting).
Another method of interrupt configuration is to do it ‘manually’ executing an ‘OEM Set
Firmware Parameters Command’ (refer to 6.2.2.2, Set Firmware Parameters.
It is strongly recommended to make changes in this area with the help of the BIOS. The BIOS
code creates an ‘IPMI Device Information Record (Type 38h)’ entry in the SMBIOS Table.
The information provided there includes: IPMI specification revision (v1.5), type of
supported interface (KCS), its base address (CA2h) and interrupt number for it (10, 11 or
none), and the IPMB address of the controller (depending on the module slot/bay). Some of
this information may be needed by software drivers or applications, for example the Linux
OpenIPMI driver looks for the SMBIOS IPMI entry while detecting system interfaces and it
ID: 36363, Rev. 1.1
© 2007 Kontron AG
Page
27