Skip to content

[Platform/Enhancement] Add firmware upgrade function for micas#27735

Open
Cipher324 wants to merge 2 commits into
sonic-net:masterfrom
Cipher324:master_260605
Open

[Platform/Enhancement] Add firmware upgrade function for micas#27735
Cipher324 wants to merge 2 commits into
sonic-net:masterfrom
Cipher324:master_260605

Conversation

@Cipher324

Copy link
Copy Markdown

Why I did it

Firmware upgrade functionality was missing on Micas devices. This change provides the necessary support for firmware upgrades.

Work item tracking
  • Microsoft ADO (number only):

How I did it

Implemented firmware upgrade support by adding the required platform drivers, utilities, and upgrade-related components.

How to verify it

  1. Run the upgrade.py script to upgrade the specified firmware image.
  2. Ensure the upgrade process finishes successfully without errors.
  3. Verify that the firmware version matches the expected target version after the upgrade.
root@sonic:/home/admin/M2-W6940-64OC# show version

SONiC Software Version: SONiC.master.0-dirty-20260519.222218
SONiC OS Version: 13
Distribution: Debian 13.4
Kernel: 6.12.41+deb13-sonic-amd64
Build commit: 71906f8bf
Build date: Wed May 20 03:25:35 UTC 2026
Built by: micasrd@micasrd-PowerEdge-R730

Platform: x86_64-micas_m2-w6940-64oc-r0
HwSKU: M2-W6940-64OC
ASIC: broadcom
ASIC Count: 1
Serial Number: G1TW31B0000TC
Switch-Host Serial Number: None
Model Number: 01019D42
Hardware Revision: 101
Uptime: 06:30:47 up 19 min,  1 user,  load average: 4.48, 3.57, 2.47
Date: Wed 27 May 2026 06:30:47

Docker images:
REPOSITORY                    TAG                              IMAGE ID       SIZE
docker-dhcp-relay             latest                           150eaf445496   326MB
docker-dhcp-relay             master.0-dirty-20260519.222218   150eaf445496   326MB
docker-macsec                 latest                           aacf74d53546   324MB
docker-macsec                 master.0-dirty-20260519.222218   aacf74d53546   324MB
docker-eventd                 latest                           027ada443934   283MB
docker-eventd                 master.0-dirty-20260519.222218   027ada443934   283MB
docker-snmp                   latest                           85be9d4d6527   310MB
docker-snmp                   master.0-dirty-20260519.222218   85be9d4d6527   310MB
docker-telemetry-watchdog     latest                           90486117b300   430MB
docker-telemetry-watchdog     master.0-dirty-20260519.222218   90486117b300   430MB
docker-orchagent              latest                           de44b633031c   336MB
docker-orchagent              master.0-dirty-20260519.222218   de44b633031c   336MB
docker-fpm-frr                latest                           1ff0209fbe73   385MB
docker-fpm-frr                master.0-dirty-20260519.222218   1ff0209fbe73   385MB
docker-sflow                  latest                           fa30327d7371   322MB
docker-sflow                  master.0-dirty-20260519.222218   fa30327d7371   322MB
docker-sonic-mgmt-framework   latest                           711796013b4e   347MB
docker-sonic-mgmt-framework   master.0-dirty-20260519.222218   711796013b4e   347MB
docker-teamd                  latest                           99bbf972d386   321MB
docker-teamd                  master.0-dirty-20260519.222218   99bbf972d386   321MB
docker-router-advertiser      latest                           cf31e0574914   283MB
docker-router-advertiser      master.0-dirty-20260519.222218   cf31e0574914   283MB
docker-mux                    latest                           80acca53d87e   296MB
docker-mux                    master.0-dirty-20260519.222218   80acca53d87e   296MB
docker-restapi-sidecar        latest                           4bcf0654c6a6   283MB
docker-restapi-sidecar        master.0-dirty-20260519.222218   4bcf0654c6a6   283MB
docker-gnmi-watchdog          latest                           5919e192e922   290MB
docker-gnmi-watchdog          master.0-dirty-20260519.222218   5919e192e922   290MB
docker-sonic-gnmi             latest                           edddd25ce36e   429MB
docker-sonic-gnmi             master.0-dirty-20260519.222218   edddd25ce36e   429MB
docker-database               latest                           c0526f331dd2   290MB
docker-database               master.0-dirty-20260519.222218   c0526f331dd2   290MB
docker-gnmi-sidecar           latest                           5ba47c193785   283MB
docker-gnmi-sidecar           master.0-dirty-20260519.222218   5ba47c193785   283MB
docker-nat                    latest                           860bbcd8e99a   304MB
docker-nat                    master.0-dirty-20260519.222218   860bbcd8e99a   304MB
docker-dash-ha                latest                           06078f77dcfb   321MB
docker-dash-ha                master.0-dirty-20260519.222218   06078f77dcfb   321MB
docker-sonic-bmp              latest                           f69595da1850   267MB
docker-sonic-bmp              master.0-dirty-20260519.222218   f69595da1850   267MB
docker-syncd-brcm             latest                           a944d6994c5b   825MB
docker-syncd-brcm             master.0-dirty-20260519.222218   a944d6994c5b   825MB
docker-gbsyncd-agera2         latest                           7eb515e3ff72   380MB
docker-gbsyncd-agera2         master.0-dirty-20260519.222218   7eb515e3ff72   380MB
docker-gbsyncd-broncos        latest                           162eace89568   319MB
docker-gbsyncd-broncos        master.0-dirty-20260519.222218   162eace89568   319MB
docker-gbsyncd-credo          latest                           9721de39d6d6   293MB
docker-gbsyncd-credo          master.0-dirty-20260519.222218   9721de39d6d6   293MB
docker-platform-monitor       latest                           f9634fdb1a00   399MB
docker-platform-monitor       master.0-dirty-20260519.222218   f9634fdb1a00   399MB
docker-bmp-watchdog           latest                           10ae8d10f23d   266MB
docker-bmp-watchdog           master.0-dirty-20260519.222218   10ae8d10f23d   266MB
docker-sysmgr                 latest                           2120098c1e04   278MB
docker-sysmgr                 master.0-dirty-20260519.222218   2120098c1e04   278MB
docker-sonic-otel             latest                           57c092df3f46   608MB
docker-sonic-otel             master.0-dirty-20260519.222218   57c092df3f46   608MB
docker-lldp                   latest                           24631f1cb4c4   312MB
docker-lldp                   master.0-dirty-20260519.222218   24631f1cb4c4   312MB
docker-telemetry-sidecar      latest                           46c74245c0a0   266MB
docker-telemetry-sidecar      master.0-dirty-20260519.222218   46c74245c0a0   266MB

root@sonic:/home/admin/M2-W6940-64OC# 
root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_BASE_CPLD_20241118_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_BASE_CPLD_20241118_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_MAC_CPLDA_0527NOFEA_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_MAC_CPLDA_0527NOFEA_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_MAC_CPLDB_NOFEA_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_MAC_CPLDB_NOFEA_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_MAC_CPLDC_NOFEA_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_MAC_CPLDC_NOFEA_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_FAN_CPLD_20240603_NOFEA_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_FAN_CPLD_20240603_NOFEA_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold W6940_64OC_MGMT_CPLD_20240620_NOFEA_header.vme 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:W6940_64OC_MGMT_CPLD_20240620_NOFEA_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold CPUM_ICELAKE_LCC_CPLD_20231208_header.vme 0     
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:CPUM_ICELAKE_LCC_CPLD_20231208_header.vme slot:0 

root@sonic:/home/admin/M2-W6940-64OC# 
root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold w6940_64qc_ver2901_20240520update_header.bin 0
+================================+
|  Doing upgrade, please wait... |
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:w6940_64qc_ver2901_20240520update_header.bin slot:0 

root@sonic:/home/admin/M2-W6940-64OC# 
root@sonic:/home/admin/M2-W6940-64OC# upgrade.py cold b5020_bcm53134o_e2_v1.3_header.bin 0          
+================================+
|  Doing upgrade, please wait... |
|        upgrade failed!         |
+================================+
FAILED REASON:
file:b5020_bcm53134o_e2_v1.3_header.bin slot:0 cold upgrade failed, ret:-609, 
 log:
cmd write exec modprobe wb_spi_93xx46 failed, log: modprobe: ERROR: could not insert 'wb_spi_93xx46': No such device.
root@sonic:/home/admin/M2-W6940-64OC# 
root@sonic:/home/admin/M2-W6940-64OC# upgrade.py bmc flash-obmc-wb-20241209082408 0
============BMC Upgrade Tool=============
* Current Bmc Default Boot: CE0
* CE0 FLASH TYPE: SPI FLASH
* FLASH NAME: MX25l512
* File Size:58720256, 0x3800000
=========================================
Full chip erasing, please wait...
Erase Finish
=========================================
Programming...
0x23800000
Program Finish
=========================================
Checking...
0x237f0000 
Flash Checked
=========================================
Upgrade master bmc flash success.
Upgrade-Complete, BMC rebooting...
===========upgrade succeeded!============
root@sonic:/home/admin/M2-W6940-64OC# 

root@sonic:/home/admin# ./afulnx_64_1977 1AZHA5302.bin /P /B /N /L /K /ME
sh: 1: make: not found
+---------------------------------------------------------------------------+
|                 AMI Firmware Update Utility v5.12.01.1977                 |
|      Copyright (C)2019 American Megatrends Inc. All Rights Reserved.      |
+---------------------------------------------------------------------------+
 Reading flash ............... done                
 - ME Data Size checking . ok
 - Secure Flash enabled, recalculate ROM size with signature... Enable.
 - FFS checksums ......... ok
 - Check RomLayout ........ Changed.
 WARNING !!
  The ROM file information does not match with the system BIOS!
  If forcedly update BIOS, it may destroy the System BIOS!
  We strongly do not suggest to flash the BIOS!

  Press "E"- This option will update entire ROM and exit.
  Press "A"- This option will be no ROM update.
  Press "F"- This option will be forcing to follow the command by user
             provided.

- Please select one of the options:F
 Loading capsule to secure memory buffer ... done                
 Erasing Boot Block .......... done                
 Updating Boot Block ......... done                
 Verifying Boot Block ........ done                
 Erasing Main Block .......... done                
 Updating Main Block ......... done                
 Verifying Main Block ........ done                
 Erasing NVRAM Block ......... done                
 Updating NVRAM Block ........ done                
 Verifying NVRAM Block ....... done                
 Erasing NCB Block ........... done                
 Updating NCB Block .......... done                
 Verifying NCB Block ......... done                
 Erasing RomHole Block ....... done                
 Updating RomHole Block ...... done                
 Verifying RomHole Block ..... done                
 - Upload the ME image data to BIOS ME module..... done                
 - Update success for FDR                              
 - Update success for PDR                              
 - Update success for NIS                              
 - Update success for iRC                              
 - Successful Update Recovery Loader to OPRx!!         
 - Successful Update MFSB                              
 - Successful update factory data                      
 - ME Entire Image update success !!                   
 - Update success for PTT                              
WARNING : System must power-off to have the changes take effect!

 Process completed.
root@sonic:/home/admin# 
root@sonic:/home/admin# upgrade.py cold b5020_bcm53134o_e2_v1.3_header.bin 0
+================================+
|  Doing upgrade, please wait... |
+================================+
|Begin to upgrade, please wait...|
|          Upgrade succeeded!    |
+================================+
|       upgrade succeeded!       |
+================================+
SUCCESS FILE: 
file:b5020_bcm53134o_e2_v1.3_header.bin slot:0 

root@sonic:/home/admin# 

Which release branch to backport (provide reason below if selected)

  • 202305
  • 202311
  • 202405
  • 202411
  • 202505
  • 202511

Tested branch (Please provide the tested image version)

Description for the changelog

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

Signed-off-by: Cipher324 <panyi5534@gmail.com>
@Cipher324 Cipher324 requested a review from lguohan as a code owner June 5, 2026 07:15
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@micas-net micas-net changed the title add firmware upgrade function for micas [Platform/Enhancement] Add firmware upgrade function for micas Jun 5, 2026
Signed-off-by: Cipher324 <panyi5534@gmail.com>
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants