Manual Firmware Flash

The sequence of events that must happen to flash OpenBMC firmware is the following:

  1. Power off the Host

  2. Upload and Activate BMC

  3. Reboot the BMC (applies BMC)

  4. Upload and Activate Host

  5. Power on the Host (applies Host)

Power off Host

Use the rpower command to power off the host:

rpower <noderange> off

Upload and Activate BMC Firmware

Use the rflash command to upload and activate the Host firmware:

rflash <noderange> -a /path/to/obmc-phosphor-image-witherspoon.ubi.mtd.tar

If running rflash in Hierarchy, the firmware files must be accessible on the Service Nodes.

Note: If a .tar file is provided, the -a option does an upload and activate in one step. If an ID is provided, the -a option just does activate the specified firmware. After firmware is activated, use the rflash <noderange> -l to view. The rflash command shows (*) as the active firmware and (+) on the firmware that requires reboot to become effective.

Reboot the BMC

Use the rpower command to reboot the BMC:

rpower <noderange> bmcreboot

The BMC will take 2-5 minutes to reboot, check the status using: rpower <noderange> bmcstate and wait for BMCReady to be returned.

Known Issue: On reboot, the first call to the BMC after reboot, xCAT will return Error: BMC did not respond within 10 seconds, retry the command.. Please retry.

Upload and Activate Host Firmware

Use the rflash command to upload and activate the Host firmware:

rflash <noderange> -a /path/to/witherspoon.pnor.squashfs.tar

If running rflash in Hierarchy, the firmware files must be accessible on the Service Nodes.

Note: The -a option does an upload and activate in one step, after firmware is activated, use the rflash <noderange> -l to view. The rflash command shows (*) as the active firmware and (+) on the firmware that requires reboot to become effective.

Power on Host

User the rpower command to power on the Host:

rpower <noderange> on

Validation

Use one of the following commands to validate firmware levels are in sync:

  • Use the rinv command to validate firmware level:

    rinv <noderange> firm -V | grep -i ibm | grep "\*" | xcoll
    
  • Use the rflash command to validate the firmware level:

    rflash <noderange> -l | grep "\*" | xcoll