Intel-BMC/openbmc

[Question] How is image-b used on CRB

Closed this issue · 1 comments

On CRB with 64MiB flash chip for BMC, the build uses below partitions:

Partition Size
u-boot 512KiB
image-a 27.5MiB
sofs 2MiB
rwfs 6MiB
image-b 27.5MiB

From the build scripts in obmc-phosphor-full-fitimage.bbclass and image_types_phosphor_auto.bbclass, the image-a/b are the identical fitImages containing the full rofs.

During boot, u-boot loads the fitImage addressing from image-a, so image-a is always used.
I was expecting that the image-b will be used when image-a fails to boot, but I could not find related code.

So my questions are:

  1. Does the build support fail-over on BMC boot?
  2. If yes, when image-a fails to boot, how does it detect and switch to the image-b partition?

Thanks!

It's figured out that the update script will flash the image to the other image-a/b and update the uboot env to boot from the newly flashed fitImage.