I just wanted to write down by experience recovering from a failed BMC firmware upgrade.
The board lost power when I was upgrading the firmware and was completely dead after that apart from the BMC led.
This is what ended up working.
Requirements:
UART cable
Ethernet switch or crossover cable
TFTPD32 → TFTPD64 : an opensource IPv6 ready TFTP server/service for windows : TFTP server
PuTTY → https://www.putty.org/
BMC Firmware → http://download.gigabyte.eu/FileList/Firmware/server_firmware_ga-6_7xxx_v2.3x.zip
How-To:
Start TFTPD32 and set the TFTP root directory (example c:\tftp)
Extract the firmware zip file and copy the \235\fw\235.img file to the tftp directory and rename it to all.bin
Connect the TFTP server and the management port of the GA-7PESH2 to a switch or directly with a crossover cable
Set the IP address of the TFTP server to 192.168.0.126
There is a 4 pin UART header for the Aspeed AST2300 SOC located next to one of the 16X PCI-E slots
Connect the UART cable to the pins.
RXD → TXD
TXD → RXD
GND → GND
VCC is not needed
Connect Putty to the com port of your UART cable with baud rate (speed) 115200
Connect power to the GA-7PESH2 board and repetetly press the enter key on the putty console until you get to the uboot console.
DRAM Init-DDR3
CBR0-1234567134670123456701234567
CBR13Done
U-Boot 1.2.0-g781ea2e0-dirty (Sep 14 2015 - 14:30:45) Avocent (0.0.28) EVB
Board: AST2300
DRAM: 128 MB
Flash: Bank (1) Size: 16 MB in 256 Sectors (MXIC MX25L12805)
In: serial
Out: serial
Err: serial
Start and Send Device Address can't get ACK back
I2C read: I/O error
Net: Un-Protected 1 sectors
Erasing Flash...
Erasing Bank 0: 100%
Erased 1 sectors
Writing to Flash...
Writing Bank 0: 100%
done
Protected 1 sectors
No such device: eth#0
No such device: eth#0
PHY_REG0x1f: 8180
Is KSZ8051
no NC-SI channel active or fail to open NC-SI.
eth#0, eth#1
Hit any key to stop autoboot: 0
uboot#
Run the “tftpboot” command
This will download the all.bin firmware image file from the tftp server to memory
uboot# tftpboot
PHY_REG0x1f: 8180
Is KSZ8051
eth#0 Wait for auto-negotiation complete ... OK 100MB - Full Duplex
Using eth#0 device
TFTP from server 192.168.0.126; our IP address is 192.168.0.188
Filename 'all.bin'.
Load address: 0x41400000
Loading: 14 MB
Bytes transferred = 14679680 (dffe80 hex)
uboot#
Take note of the load address from the previous command.
This is the location of the image in memory
Run the “fwu check <load address>” command
uboot# fwu check 0x41400000
Checking image header CRC ... OK
Checking platform ID ........ OK
Checking kernel image CRC ... OK
Checking rootfs image CRC ... OK
Checking u-boot image CRC ... OK
Skipping u-boot update ...... YES
Done!
If this fails the image has not been transferred correctly or you are using the wrong image file.
Run the “fwu update <load address>” command.
uboot# fwu update 0x41400000
Checking image header CRC ... OK
Checking platform ID ........ OK
Checking kernel image CRC ... OK
Checking rootfs image CRC ... OK
Checking u-boot image CRC ... OK
Skipping u-boot update ...... YES
Copying kernel image ........ Un-Protected 26 sectors
Erasing Bank 0: 100%
Erased 26 sectors
Writing Bank 0: 100%
Protected 26 sectors
OK
Copying rootfs .............. Un-Protected 196 sectors
...
If everything completes OK then the firmware has been installed.
Run the “reset” command and you should see the BMC start up normally and the board should be back to normal.