Upgrading SG500X-24P on very old firmware

A Cisco SG500X-24P running 1.2.0.81 firmware fails to upgrade to anything newer. Firmware 1.3.5.x isn’t accepted in WebUI (Copy failed; Copy: Illegal software format). Firmware 1.2.0.97 is accepted, but the system won’t boot from it; after upload and setting as Active image and rebooting, the switch reboots, panics, then factory resets and comes up again on 1.2.0.81 with factory defaults. (You can tell this is the case because the device reverts to login/password cisco/cisco.)

Error message

This is what you see using the console cable if you are experiencing this issue.

*********************************************************************
*** Running  SW  Ver. 1.2.7.76  Date  19-Jul-2012  Time  17:56:59 ***
*********************************************************************

HW version is V01
Base Mac address is: (redacted)
Dram size is  : 256M bytes
Dram first block size is  : 208896K bytes
Dram first PTR is  : 0x3000000
Dram second block size is  : 4096K bytes
Dram second PTR is  : 0xFC00000
Flash size is: 32M
MTSCG_init: No MTSC file
19-Jul-2012 17:57:15 %CDB-I-LOADCONFIG: Loading running configuration.
19-Jul-2012 17:57:15 %CDB-I-LOADCONFIG: Loading startup configuration.
FLSYSG_init:h\unable to get mtsc parameter
19-Jul-2012 17:57:15 %INIT-E-ApplErr: FLSYSG_init: Errors occurred during initialization
19-Jul-2012 17:57:15 %INIT-F-ApplFatErr: RSP_init: Fatal Error in FLSYSG_init

***** FATAL ERROR *****
Reporting Task: ROOT.
Software Version: 1.2.7.76 (date  19-Jul-2012 time  17:56:59)
0x16a614
0x167054
0x6bdc18
0x490518
0x4959e4
0x495bac
0x1cb010
0x121d3c

**************************************************
*****************  SYSTEM RESET  *****************
**************************************************
Boot1 Checksum Test...............................PASS
Boot2 Checksum Test...............................PASS
Flash Image Validation Test.......................PASS  

Workaround

  1. Flash boot to 1.4.0.2 via WebUI and reboot. Confirm upgrade is successful; system firmware should still be at 1.2.0.81 as expected.
  2. Attach to console using SecureCRT. 115200 baud.
  3. Grab the full path to the 1.3.5 firmware; the timeout in the bootloader is very short. i.e. d:\firmware\sx500_fw-13558.ros
  4. Reboot switch.
  5. Hit Esc. at bootloader prompt and send firmware via XMODEM, pasting the filename quickly.
  6. Wait 45 minutes while it transfers at 3kB/s.
  7. Switch should reboot on 1.3.5.58.
Autoboot in 2 seconds - press RETURN or Esc. to abort and enter prom.

     Startup Menu
[1]  Download Software
[2]  Erase Flash File
[3]  Password Recovery Procedure
[4]  Set Terminal Baud-Rate
[5]  Stack menu
[6]  System Mode menu
[7]  Back
 Enter your choice or press 'ESC' to exit: 
Downloading code using XMODEM.

Starting xmodem transfer.  Press Ctrl+C to cancel.
Transferring sx500_fw-13558.ros...
  100%    9679 KB       3 KB/sec    00:45:46       0 Errors  
  1. http://serverfault.com/questions/622724/error-illegal-software-format-in-upgrade-fw-ros-file-of-cisco-sg200-26-small
  2. https://supportforums.cisco.com/discussion/12286911/sg300-firmware-upgrade-copy-illegal-software-format
  3. http://sbkb.cisco.com/CiscoSB/ukp.aspx?vw=1&docid=f1e39061efb14c94a570bcbd6582167b_Firmware_Upgrade_Troubleshooting_on_300_and_500_Series_Manag.xml&pid=4&fcid=&fpid=&slnid=6
  4. https://community.spiceworks.com/topic/1078205-sg500x-24p-firmware-1-2-0-83
  5. https://supportforums.cisco.com/discussion/11894661/two-questions-when-upgrade-sg500x-24p-switch-firmware