Skip to content

gc2-es: exp: add expander firmware recovery support via UART4#2685

Closed
Joseph-Shih-ww wants to merge 1 commit intofacebook:mainfrom
Wiwynn:Vivy/gc2-es/exp_recovery
Closed

gc2-es: exp: add expander firmware recovery support via UART4#2685
Joseph-Shih-ww wants to merge 1 commit intofacebook:mainfrom
Wiwynn:Vivy/gc2-es/exp_recovery

Conversation

@Joseph-Shih-ww
Copy link
Copy Markdown
Contributor

[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]

  • Support Expander firmware recovery update function

[Test Plane]

  1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
  2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
  3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
  4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
FW Image Size : 667580
FW Version : 1.1.0.4
Concatenated : YES
Config Pages : NO
Signed Block : YES
Replace firmware details,
FW Image Size : 667580
FW Version : 1.1.0.4
Concatenated : YES
Config Pages : NO
Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown
	$ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4
	$ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os)
	$ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os)
	$ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

-------------------------------------------------------------------------------
g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0)
-------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000...
Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000...
Uploading buffer 11 of 92 bytes and base address 00000000...
Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000...
Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200...
Post validation of the image is successful.
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 12, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync Bot commented Mar 12, 2026

@facebook-github-bot has imported this pull request. If you are a Meta employee, you can view this in D96284236. (Because this pull request was imported automatically, there will not be any future comments.)

@meta-codesync meta-codesync Bot closed this in 9ddcae8 Mar 23, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync Bot commented Mar 23, 2026

This pull request has been merged in 9ddcae8.

meta-codesync Bot pushed a commit that referenced this pull request Mar 23, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 23, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 23, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 24, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 25, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 25, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 26, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 27, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 27, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 28, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 28, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 29, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
meta-codesync Bot pushed a commit that referenced this pull request Mar 30, 2026
Summary:
[Summary]
Related to Jira GC20T5T7-91
Add expander firmware recovery support on GC2 platform via UART4

[Motivation]
- Support Expander firmware recovery update function

[Test Plane]
1. Verify BIOS UART enable status (in os):3 is not unknown $ cat /proc/tty/driver/serial
2. Verify BIOS UART selection via Scratch Register (in bic console): Value starting with 0x26 indicates BIOS has enabled UART4 $ md 0x7e78917c
3. Route UIC FPGA to EXP_SDB (in os) $ ipmitool raw 0x32 0x40
4. Execute expander recovery (in os) $ ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

[Test Log]

[root@GC-OS9-ver1 ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:16550A port:000002F8 irq:4 tx:48372 rx:184 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4
3: uart:16550A port:000002E8 irq:4 tx:918 rx:1942 RTS|CTS|DTR|DSR|CD

uart:~$ md 0x7e78917c
[7e78917c] 26000000 0936a046 00000000 00008000
[7e78918c] 00000000 05020100 07000706 00000000
[7e78919c] 00000000 00000000 00000000 00000000
[7e7891ac] 00000000 00000000 00000000 00000000

[root@GC-OS9-ver1 ~]# ipmitool raw 0x32 0x40

[root@GC-OS9-ver1 gc2_exp_fw_v04_linux_20260213_01_sign]# ./g4Xrecovery.x86_64 -sdb /dev/ttyS3 dl -f sas4xfw.fw.sign -s

------------------------------------------------------------------------------- g4Xrecovery v2.0.0.0 - Broadcom Inc. (c) 2021 (Bld-42.52.15.70.11.0) -------------------------------------------------------------------------------

Current Flash image,
Uploading buffer 667564 of 667580 bytes and base address 100a3000... Uploading chained image...
Uploading buffer 68 of 84 bytes and base address 100a3000... Uploading buffer 11 of 92 bytes and base address 00000000... Uploading chained image...
Uploading buffer 11 of 84 bytes and base address 00000000... Uploading buffer 532 of 596 bytes and base address 100a3280...
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
Replace firmware details,
     FW Image Size : 667580
        FW Version : 1.1.0.4
      Concatenated : YES
      Config Pages : NO
      Signed Block : YES
CS0: Erasing sector containing offset 0x1f0000...
CS0 Write starting address: 0xA3200...
Firmware has been downloaded successfully.
Post validating image by uploading back.
Uploading buffer 668160 of 668268 bytes and base address 100a3200... Post validation of the image is successful.

Pull Request resolved: #2685

Reviewed By: williamspatrick

Differential Revision: D96284236

fbshipit-source-id: 113f754e0fa41b95a5f839b4fd73481ae03a1190
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants