meta-quanta: gbs: inband bmc/bios image update
gbs-bmc-update and gbs-bios-update packages do
inband bmc/bios image update via Nuvoton PCI mailbox
Tested:
Set PCI mailbox memory space as writable
~# sudo setpci -d 1050:0750 04.B=02
bmc update:
~# sudo burn_my_bmc --command update --interface ipmipci
--image image-bmc --sig image-bmc.sig --type image
bios update:
~# sudo burn_my_bmc --command update --interface ipmipci
--image image-bios --sig image-bios.sig --type bios
Signed-off-by: George Hung <george.hung@quantatw.com>
Change-Id: I69df209d74ae8321b8f50b3cd390eca79a41e902
diff --git a/meta-gbs/recipes-gbs/gbs-bios-update/files/bios-verify.sh b/meta-gbs/recipes-gbs/gbs-bios-update/files/bios-verify.sh
new file mode 100644
index 0000000..3da25e4
--- /dev/null
+++ b/meta-gbs/recipes-gbs/gbs-bios-update/files/bios-verify.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Copyright (c) 2019-present Lenovo
+# Copyright (c) 2020 Quanta Computer Inc.
+# Licensed under BSD-3, see COPYING.BSD file for details.
+
+IMAGE_FILE="/tmp/bios-image"
+SIG_FILE="/tmp/bmc.sig"
+BURN_IMAGE="/tmp/image-bios"
+sha256_image="FFFF"
+sha256_file="EEEE"
+
+echo "Verify bios image..."
+
+if [ -e $IMAGE_FILE ] && [ -e $SIG_FILE ];
+then
+ sha256_image=`sha256sum "$IMAGE_FILE" | awk '{print $1}'`
+ sha256_file=`awk '{print $1}' $SIG_FILE`
+fi
+
+if [[ $sha256_image != $sha256_file ]];
+then
+ echo "bios image verify fail."
+ rm -f $IMAGE_FILE
+ echo "Remove bios image"
+ exit 1
+else
+ echo "bios image verify ok."
+ mv $IMAGE_FILE $BURN_IMAGE
+ rm -f $SIG_FILE
+ exit 0
+fi