Why I did it Requirements from Microsoft for fwutil update all state that all firmwares which support this upgrade flow must support upgrade within a single boot cycle. This conflicted with a number of Mellanox upgrade flows which have been revised to safely meet this requirement. How I did it Added --no-power-cycle flags to SSD and ONIE firmware scripts Modified Platform API to call firmware upgrade flows with this new flag during fwutil update all Added a script to our reboot plugin to handle installing firmwares in the correct order with prior to reboot How to verify it Populate platform_components.json with firmware for CPLD / BIOS / ONIE / SSD Execute fwutil update all fw --boot cold CPLD will burn / ONIE and BIOS images will stage / SSD will schedule for reboot Reboot the switch SSD will install / CPLD will refresh / switch will power cycle into ONIE ONIE installer will upgrade ONIE and BIOS / switch will reboot back into SONiC In SONiC run fwutil show status to check that all firmware upgrades were successful |
||
---|---|---|
.. | ||
accton | ||
alphanetworks | ||
arista | ||
barefoot | ||
broadcom | ||
celestica | ||
centec | ||
cig | ||
common/pddf/plugins | ||
dell | ||
delta | ||
facebook/x86_64-facebook_wedge100-r0 | ||
ingrasys | ||
inventec | ||
juniper | ||
marvell | ||
mellanox | ||
mitac/x86_64-mitac_ly1200_b32h0_c3-r0 | ||
netberg/x86_64-netberg_aurora_715-r0 | ||
nokia | ||
pegatron/x86_64-pegatron_porsche-r0 | ||
quanta | ||
ragile | ||
ruijie/x86_64-ruijie_b6510-48vs8cq-r0 | ||
virtual | ||
wnc/x86_64-wnc_osw1800-r0 |