CSG1300 BIOS+CPLD Upgrade Procedure


Note: This procedure requires serial console access, a USB dongle and physical access to the system for power cycling.


Step 1: Copy files 

1.1 Download and the extract the latest BIOS files and CPLD files from the links below to a USB dongle


BIOS files:

https://versanetworks.box.com/s/b7fds8cgj2mrmi5pqt5qpzcaf7djvds0

- AfuEfix64.efi (BIOS flash utility)

- CSG1300_bios_v46.01.05.00.bin (BIOS binary file)


CPU CPLD files:

CPU CPLD Versa 4.2

CSG1300_DNV_CPLD_V42.jbc

https://versanetworks.box.com/s/8o7pbmsn2ykd6d1c2oyfcd0nx7gleux0


Note: Before upgrading CPLD, please check and make sure BIOS version is the latest compatible version with the CPLD. 

If BIOS version is up-to-date, step 2 BIOS upgrade process can be skipped.


[admin@Perf-Branch3: ~] $ sudo dmidecode -t 0

Handle 0x0000, DMI type 0, 24 bytes

BIOS Information

        Vendor: American Megatrends Inc.

        Version: v46.01.05.00

        Release Date: 06/23/2021


Step 2: BIOS Upgrade


2.1 Plug in the USB and boot up the system. On the serial console, at the BIOS POST screen, press "DEL" key to enter BIOS setup.


Version 2.19.1266. Copyright (C) 2020 American Megatrends, Inc.

BIOS Date: 08/07/2020 12:34:12 CSG1300 Ver: v46.0b.03.00

Boot BIOS : Master BIOS

Press <DEL> or <ESC> to enter setup.


2.1 In the BIOS Setup, go to "Save & Exit" and select the boot option "UEFI: Built-in EFI Shell"


      Aptio Setup Utility - Copyright (C) 2020 American Megatrends, Inc.

    Main  Advanced  IntelRCSetup  Security  Boot  Save & Exit

/----------------------------------------------------+-------------------------\

|  Save Options                                      |                         |

|  Save Changes and Reset                            |                         |

|  Discard Changes and Reset                         |                         |

|                                                    |                         |

|  Default Options                                   |                         |

|  Restore Defaults                                  |                         |

|                                                    |                         |

|  Boot Override                                     |                         |

|  Generic Flash Disk 8.07                           |                         |

|  UEFI: Generic Flash Disk 8.07, Partition 1        |-------------------------|

|  P5: KINGSTON RBUSNS8180S3128GJ                    |><: Select Screen        |

|  P4: TS16ZBTMM1600                                 |^v: Select Item          |

|  UEFI OS (P4: TS16ZBTMM1600)                       |Enter: Select            |

|  UEFI: Built-in EFI Shell                          |+/-: Change Opt.         |

|                                                    |F1: General Help         |

|                                                    |F2: Previous Values      |

|                                                    |F3: Optimized Defaults   |

|                                                    |F4: Save & Exit          |

|                                                    |ESC: Exit                |

\----------------------------------------------------+-------------------------/

        Version 2.19.1266. Copyright (C) 2020 American Megatrends, Inc.



2.3 At EFI Shell prompt, type in "FS2:" to go into USB folder where the BIOS files are saved. 

Check if BIOS flash utility (AfuEfix64.efi) and BIOS binary file (CSG1300_bios_vxx.xx.xx.xx.bin ) are present.


UEFI Interactive Shell v2.1

EDK II

UEFI v2.60 (American Megatrends, 0x0005000D)

Mapping table

      FS2: Alias(s):HD1a0c0b:;BLK8:  PciRoot(0x0)/Pci(0x15,0x0)/USB(0x0,0x0)/USB(0x2,0x0)/HD(1,MBR,0x00000000,0x800,0xF3B800)

      FS0: Alias(s):HD0e65535a1:;BLK1:

          PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x4,0xFFFF,0x0)/HD(1,GPT,AB88E51E-A490-40FF-BBE9-3C8F21F798AF,0x800,0x200000)

      FS1: Alias(s):HD0e65535a2:;BLK2:

          PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x4,0xFFFF,0x0)/HD(2,GPT,FB6851AE-7D51-46B0-B5B4-3D5ECD1FA8DA,0x200800,0x200000)

     BLK7: Alias(s):

          PciRoot(0x0)/Pci(0x15,0x0)/USB(0x0,0x0)/USB(0x2,0x0)

     BLK0: Alias(s):

          PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x4,0xFFFF,0x0)

     BLK3: Alias(s):

          PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x5,0xFFFF,0x0)

     BLK4: Alias(s):          PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x5,0xFFFF,0x0)/HD(1,MBR,0x0000D93B,0x800,0xAE8B000)

     BLK5: Alias(s):

 PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x5,0xFFFF,0x0)/HD(2,MBR,0x0000D93B,0xAE8BFFE,0x3FF0002)

     BLK6: Alias(s):

 PciRoot(0x0)/Pci(0x14,0x0)/Sata(0x5,0xFFFF,0x0)/HD(2,MBR,0x0000D93B,0xAE8BFFE,0x3FF0002)/HD(1,MBR,0x00000000,0xAE8C000,0x3FF0000)

Press ESC in 3 seconds to skip startup.nsh or any other key to continue.

Shell> FS2:

FS2:\> cd CSG1300_bios_v46.01.05.00

FS2:\CSG1300_bios_v46.01.05.00\> ls

AfuEfix64.efi CSG1300_bios_v46.01.05.00.bin


2.4 Type in the following command highlighted in yellow to update BIOS. 

Please check and make sure BIOS upgrade process is completed as shown below.


FS2:\CSG1300_bios..\> AfuEfix64.efi CSG1300_bios_v46.01.05.00.bin /p /b /n /k /me

+---------------------------------------------------------------------------+

|              AMI Firmware Update Utility v5.12.02.2028                    |

|      Copyright (c) 1985-2019, American Megatrends International LLC.      |

|         All rights reserved. Subject to AMI licensing agreement.          |

+---------------------------------------------------------------------------+

 Reading flash ............... done

 - ME Data Size checking . ok

 - FFS checksums ......... ok

 - Check RomLayout ........ ok.

 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

 - Upload the ME image data to BIOS ME module..... done

 - Update success for GBEA

 - Update success for GBEB

 - Successful Update Recovery Loader to OPRx!!

 - Successful Update MFSB!!

 - Successful Update FTPR!!

 - Successful Update factory data partitions!!

 - ME Entire Image update success !!

WARNING : System must power-off to have the changes take effect!


2.5 Note: in order to upgrade CPLD at the same time, system does not need to be power-cycled at this moment.

Type in "exit" to exit back to BIOS Boot Override menu.

 

        FS2:\CSG1300_bios..\>  exit



Step 3: CPU CPLD Upgrade


3.1 In BIOS setup menu "Save & Exit", select "UEFI OS (P4: ---)" to go to diagOS

       

      Aptio Setup Utility - Copyright (C) 2020 American Megatrends, Inc.

    Main  Advanced  IntelRCSetup  Security  Boot  Save & Exit

/----------------------------------------------------+-------------------------\

|  Save Options                                      |                         |

|  Save Changes and Reset                            |                         |

|  Discard Changes and Reset                         |                         |

|                                                    |                         |

|  Default Options                                   |                         |

|  Restore Defaults                                  |                         |

|                                                    |                         |

|  Boot Override                                     |                         |

|  Generic Flash Disk 8.07                           |                         |

|  UEFI: Generic Flash Disk 8.07, Partition 1        |-------------------------|

|  P5: KINGSTON RBUSNS8180S3128GJ                    |><: Select Screen        |

|  P4: TS16ZBTMM1600                                 |^v: Select Item          |

|  UEFI OS (P4: TS16ZBTMM1600)                       |Enter: Select            |

|  UEFI: Built-in EFI Shell                          |+/-: Change Opt.         |

|                                                    |F1: General Help         |

|                                                    |F2: Previous Values      |

|                                                    |F3: Optimized Defaults   |

|                                                    |F4: Save & Exit          |

|                                                    |ESC: Exit                |

\----------------------------------------------------+-------------------------/

        Version 2.19.1266. Copyright (C) 2020 American Megatrends, Inc.


3.2 System will boot into DiagOS. 


Product: CSG1300

Accton Diagnostic Image: 0b.0b.01.13

Kernel Version: Linux 4.14.132

Kernel Build Date: Nov 12 14:22:45 CST 2020

Build Date: Thu Nov 12 14:12:53 CST 2020

net.ipv6.conf.all.disable_ipv6 = 1

NVDIR= /mnt/ssd11

Welcome to Accton diagnostic!

root@(none):/#


3.3 At the command prompt, type in "mount" to check the USB mounted.


root@(none):/# mount

rootfs on / type rootfs (rw)

devtmpfs on /dev type devtmpfs (rw,relatime,size=16414204k,nr_inodes=4103551,mode=755)

proc on /proc type proc (rw,relatime)

devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=666)

tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)

tmpfs on /tmp type tmpfs (rw,relatime)

tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)

sysfs on /sys type sysfs (rw,relatime)

/dev/sda1 on /mnt/ssd11 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

/dev/sda2 on /mnt/ssd12 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

/dev/sdb1 on /mnt/ssd21 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

/dev/sdb2 on /mnt/ssd22 type ext4 (rw,relatime,data=ordered)

/dev/sdc1 on /mnt/usb11 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

root@(none):/# 


3.4 Go to the USB folder where CPLD files are saved and execute the command highlighted in yellow below to update CPLD.


root@(none):/# cd /mnt/usb11/CSG1300_DNV_CPLD_V42/

root@(none):/..# cpldupd -u CPU_DNV CSG1300_DNV_CPLD_V42.jbc


   Example output:


=== CPU_DNV CSG1300_DNV_CPU_V40.jbc ===



4A 41 4D 01 00 00 00 44 00 00 00 8C 00 00 02 E2

00 00 10 1D 00 00 11 72 00 00 11 E2 00 00 21 C7

00 01 66 61 00 01 D9 29 00 01 D9 29 00 00 07 D6

Update CPLD code from memory buffer 0x25618b0, filesize=0x1D92B

CFG.TCK_SETUP=0

CFG.TCK_HOLD=0

CFG.DO_DISABLE_ISP_CLAMP=1

CFG.DO_REAL_TIME_ISP=1

CFG.DO_FORCE_SRAM_DOWNLOAD=0


Expected CRC:   0xCD0A

Calculated CRC: 0xCD0A

SIDEBAND BASE ADDRESS = 880000000

-->

Device #1 IDCODE is 0310A0DD

Warning: ignore CFM1 flag

Check Max 10 FPGA backup data ...

erasing Max 10 FPGA CFM0 block at sector 4 ...

erasing Max 10 FPGA CFM0 block at sector 5 ...

programming Max 10 FPGA CFM0 block at sector 4 ...

programming Max 10 FPGA CFM0 block at sector 5 ...

verifying Max 10 FPGA CFM0 block at sector 4 ...

verifying Max 10 FPGA CFM0 block at sector 5 ...

DONE

<--

Clock Count=4271739

Function returned success

exec_result: 0, exit code: 0; file format version: 2

spend_time=94s



3.5. Once Upgrade procedure is completed, please power-cycle the system (unplugg both power cords, wait for 10 seconds and plug them back in)


3.6. Boot the system into VOS and verify the CPLD version

        Note: CPLD version should be changed before and after upgrade



    Method 1 to check CPLD version:  (supported in ALL VOS releases)

[admin@versa-flexvnf: ~] $ sudo i2cdetect -l

i2c-0   smbus           SMBus iSMT adapter at dffba000          SMBus adapter  <<<< iSMT is on i2c bus 0

i2c-1   smbus           SMBus I801 adapter at e000              SMBus adapter


[admin@versa-flexvnf: ~] $ sudo i2cget -y 0 0x65 1   <<< i2c bus corresponding to iSMT in the above command

0x42  <<<<<<< CPLD version


    Method 2 to check CPLD version:

Note: Command shown below, "vsm-vcsn0> show chassis cpld info cpu," is ONLY supported in VOS 21.1.3 or higher. This command is NOT SUPPORTED in VOS 21.1.2 or lower.



[admin@versa-flexvnf: ~] $ vsh connect vsmd

        

vsm-vcsn0> show chassis cpld info cpu


        CPU CPLD Registers

--------------------------------------

 BOARD Info (0x00)               : 0a

 CPLD Version (0x01)             : 42

 System State Control (0x20)     : 0f

 Reset Device 1 (0x21)           : 7f

 Reset Device 2 (0x22)           : 07

 Reset Device 3 (0x23)           : 01

 Interrupt State (0x30)          : 08

 Interrupt IF (0x31)             : 18

 Interrupt Mask (0x32)           : 07

 Watchdog Timer target (0x35)    : cc

 Watchdog Timer ev record (0x36) : cc

 Watchdog Timer enable (0x37)    : cc

 Watchdog Timer count (0x38)     : cc

 Thermal Status (0x41)           : 1f

 USB Protec (0x44)               : 03

 PEX8714 status (0x45)           : 03


vsm-vcsn0>



BIOS & CPLD upgrade DONE!