Add batch scripts to generate the LVFS compatible capsule
update driver.
Add DSC/FDF files to build capsules and invoke post build
shell scripts for Linux build environments.
Make versions consistent.
Cc: Zailiang Sun <zailiang.sun@intel.com>
Cc: Yi Qian <yi.qian@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
.../Capsule/GenerateCapsule/GenCapsuleAll.bat | 12 +-
.../Capsule/GenerateCapsule/GenCapsuleAll.sh | 28 ++++
.../GenerateCapsule/GenCapsuleMinnowMax.bat | 4 +-
.../GenerateCapsule/GenCapsuleMinnowMax.sh | 65 ++++++++
.../GenCapsuleMinnowMaxRelease.bat | 4 +-
.../GenCapsuleMinnowMaxRelease.sh | 65 ++++++++
.../GenerateCapsule/GenCapsuleSampleColor.sh | 70 +++++++++
.../Feature/Capsule/GenerateCapsule/Lvfs.ddf | 14 ++
.../LvfsGenCapsuleMinnowMax.bat | 139 +++++++++++++++++
.../LvfsGenCapsuleMinnowMaxRelease.bat | 139 +++++++++++++++++
.../LvfsGenCapsuleSampleColor.bat | 145 ++++++++++++++++++
.../GenerateCapsule/template.metainfo.xml | 27 ++++
Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc | 38 +++++
13 files changed, 743 insertions(+), 7 deletions(-)
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat
create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml
create mode 100644 Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat
index 187797e284..8f589565fa 100644
--- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat
@@ -24,6 +24,12 @@ copy %WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\X64\CapsuleApp.efi %W
call GenCapsuleMinnowMax.bat
call GenCapsuleMinnowMaxRelease.bat
-call GenCapsuleSampleColor.bat Blue 149DA854-7D19-4FAA-A91E-862EA1324BE6
-call GenCapsuleSampleColor.bat Green 79179BFD-704D-4C90-9E02-0AB8D968C18A
-call GenCapsuleSampleColor.bat Red 72E2945A-00DA-448E-9AA7-075AD840F9D4
+call GenCapsuleSampleColor.bat Blue 149da854-7d19-4faa-a91e-862ea1324be6
+call GenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a
+call GenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7-075ad840f9d4
+
+call LvfsGenCapsuleMinnowMax.bat
+call LvfsGenCapsuleMinnowMaxRelease.bat
+call LvfsGenCapsuleSampleColor.bat Blue 149da854-7d19-4faa-a91e-862ea1324be6
+call LvfsGenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a
+call LvfsGenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7-075ad840f9d4
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh
new file mode 100644
index 0000000000..040024553a
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh
@@ -0,0 +1,28 @@
+# @file
+# Linux script file to generate UEFI capsules for system firmware and
+# firmware for sample devices
+#
+# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+cd $(dirname $0)
+
+rm -R $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules
+mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules
+mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment
+mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert
+mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/CapsuleApp.efi
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/CapsuleAppRelease.efi
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleApp.efi
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleAppRelease.efi
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleApp.efi
+cp $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleAppRelease.efi
+
+. GenCapsuleMinnowMax.sh
+. GenCapsuleMinnowMaxRelease.sh
+. GenCapsuleSampleColor.sh Blue 149DA854-7D19-4FAA-A91E-862EA1324BE6
+. GenCapsuleSampleColor.sh Green 79179BFD-704D-4C90-9E02-0AB8D968C18A
+. GenCapsuleSampleColor.sh Red 72E2945A-00DA-448E-9AA7-075AD840F9D4
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat
index 50ebb160ee..6e4afd201e 100644
--- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat
@@ -11,8 +11,8 @@ setlocal
set FMP_CAPSULE_VENDOR=Intel
set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4
set FMP_CAPSULE_FILE=MinnowMax.cap
-set FMP_CAPSULE_VERSION=0x00000009
-set FMP_CAPSULE_STRING=0.0.0.9
+set FMP_CAPSULE_VERSION=0x0000000C
+set FMP_CAPSULE_STRING=0.0.0.12
set FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI %FMP_CAPSULE_STRING%"
set FMP_CAPSULE_LSV=0x00000000
set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh
new file mode 100644
index 0000000000..4fb963c93c
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh
@@ -0,0 +1,65 @@
+# @file
+# Linux script file to generate UEFI capsules for system firmware
+#
+# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+FMP_CAPSULE_VENDOR=Intel
+FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4
+FMP_CAPSULE_FILE=MinnowMax.cap
+FMP_CAPSULE_VERSION=0x0000000C
+FMP_CAPSULE_STRING=0.0.0.12
+FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI $FMP_CAPSULE_STRING"
+FMP_CAPSULE_LSV=0x00000000
+FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/FV/Vlv.ROM
+
+if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then
+ return
+fi
+
+if [ -e NewCert.pem ]; then
+ #
+ # Sign capsule using OpenSSL with a new certificate
+ #
+ GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=NewCert.pem \
+ --other-public-cert=NewSub.pub.pem \
+ --trusted-public-cert=NewRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+ cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert
+
+ rm $FMP_CAPSULE_FILE
+fi
+
+#
+# Sign capsule using OpenSSL with EDK II Test Certificate
+#
+GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestCert.pem \
+ --other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestSub.pub.pem \
+ --trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert
+
+rm $FMP_CAPSULE_FILE
+
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat
index 9d08c86717..43c609e4b2 100644
--- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat
@@ -11,8 +11,8 @@ setlocal
set FMP_CAPSULE_VENDOR=Intel
set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4
set FMP_CAPSULE_FILE=MinnowMaxRelease.cap
-set FMP_CAPSULE_VERSION=0x00000009
-set FMP_CAPSULE_STRING=0.0.0.9
+set FMP_CAPSULE_VERSION=0x0000000C
+set FMP_CAPSULE_STRING=0.0.0.12
set FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI %FMP_CAPSULE_STRING%"
set FMP_CAPSULE_LSV=0x00000000
set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh
new file mode 100644
index 0000000000..29d46dad1e
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh
@@ -0,0 +1,65 @@
+# @file
+# Linux script file to generate UEFI capsules for system firmware
+#
+# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+FMP_CAPSULE_VENDOR=Intel
+FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4
+FMP_CAPSULE_FILE=MinnowMaxRelease.cap
+FMP_CAPSULE_VERSION=0x0000000C
+FMP_CAPSULE_STRING=0.0.0.12
+FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI $FMP_CAPSULE_STRING"
+FMP_CAPSULE_LSV=0x00000000
+FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/FV/Vlv.ROM
+
+if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then
+ return
+fi
+
+if [ -e NewCert.pem ]; then
+ #
+ # Sign capsule using OpenSSL with a new certificate
+ #
+ GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=NewCert.pem \
+ --other-public-cert=NewSub.pub.pem \
+ --trusted-public-cert=NewRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+ cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert
+
+ rm $FMP_CAPSULE_FILE
+fi
+
+#
+# Sign capsule using OpenSSL with EDK II Test Certificate
+#
+GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestCert.pem \
+ --other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestSub.pub.pem \
+ --trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert
+
+rm $FMP_CAPSULE_FILE
+
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh
new file mode 100644
index 0000000000..a1c6f28cde
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh
@@ -0,0 +1,70 @@
+# @file
+# Linux script file to generate UEFI capsules for a sample device
+#
+# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+COLOR=$1
+
+FMP_CAPSULE_VENDOR=Intel
+FMP_CAPSULE_GUID=$2
+FMP_CAPSULE_FILE=$COLOR.cap
+FMP_CAPSULE_VERSION=0x00000010
+FMP_CAPSULE_STRING=0.0.0.16
+FMP_CAPSULE_NAME="$COLOR Progress Bar $FMP_CAPSULE_STRING"
+FMP_CAPSULE_LSV=0x00000000
+FMP_CAPSULE_PAYLOAD=Payload.bin
+
+echo "$COLOR Progress Bar" > $FMP_CAPSULE_PAYLOAD
+
+if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then
+ return
+fi
+
+if [ -e NewCert.pem ]; then
+ #
+ # Sign capsule using OpenSSL with a new certificate
+ #
+ GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=NewCert.pem \
+ --other-public-cert=NewSub.pub.pem \
+ --trusted-public-cert=NewRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+ cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert
+
+ rm $FMP_CAPSULE_FILE
+fi
+
+#
+# Sign capsule using OpenSSL with EDK II Test Certificate
+#
+GenerateCapsule \
+ --encode \
+ -v \
+ --guid $FMP_CAPSULE_GUID \
+ --fw-version $FMP_CAPSULE_VERSION \
+ --lsv $FMP_CAPSULE_LSV \
+ --capflag PersistAcrossReset \
+ --capflag InitiateReset \
+ --signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestCert.pem \
+ --other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestSub.pub.pem \
+ --trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/TestRoot.pub.pem \
+ -o $FMP_CAPSULE_FILE \
+ $FMP_CAPSULE_PAYLOAD
+
+cp $FMP_CAPSULE_FILE $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert
+
+rm $FMP_CAPSULE_FILE
+
+rm $FMP_CAPSULE_PAYLOAD
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf
new file mode 100644
index 0000000000..f2c925a6dd
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf
@@ -0,0 +1,14 @@
+.OPTION EXPLICIT ; Generate errors on variable typos
+
+.Set CabinetNameTemplate=firmware.cab ; The name of the file
+.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
+.Set Cabinet=on ;
+.Set Compress=on ;
+.Set DiskDirectory1=.
+.Set MaxDiskSize=99999744 ; multiple of 512
+
+;*** Files to zip ;
+;
+firmware.bin
+firmware.metainfo.xml
+;***
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat
new file mode 100644
index 0000000000..dd8274a1cc
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat
@@ -0,0 +1,139 @@
+@REM @file
+@REM Windows batch file to generate UEFI capsules for system firmware
+@REM
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+@REM
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent
+@REM
+
+@echo off
+setlocal
+
+set FMP_CAPSULE_VENDOR=Intel
+set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4
+set FMP_CAPSULE_BASE_NAME=MinnowMax
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap
+set FMP_CAPSULE_VERSION=0x0000000C
+set FMP_CAPSULE_VERSION_DECIMAL=12
+set FMP_CAPSULE_STRING=0.0.0.12
+set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% DEBUG UEFI %FMP_CAPSULE_STRING%"
+set FMP_CAPSULE_LSV=0x00000000
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+set FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\DEBUG_VS2015x86\FV\Vlv.ROM
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b
+
+if exist "%FMP_CAPSULE_KEY%" (
+ REM
+ REM Sign capsule using signtool
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^
+ --pfx-file %FMP_CAPSULE_KEY% ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+if exist "NewCert.pem" (
+ REM
+ REM Sign capsule using OpenSSL with a new certificate
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=NewCert.pem ^
+ --other-public-cert=NewSub.pub.pem ^
+ --trusted-public-cert=NewRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+REM
+REM Sign capsule using OpenSSL with EDK II Test Certificate
+REM
+call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^
+ --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^
+ --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert
+
+copy %FMP_CAPSULE_FILE% firmware.bin
+copy template.metainfo.xml firmware.metainfo.xml
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+makecab /f Lvfs.ddf
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+erase firmware.cab
+erase setup.inf
+erase setup.rpt
+
+erase firmware.metainfo.xml
+erase firmware.bin
+erase %FMP_CAPSULE_FILE%
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat
new file mode 100644
index 0000000000..2b68a98f98
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat
@@ -0,0 +1,139 @@
+@REM @file
+@REM Windows batch file to generate UEFI capsules for system firmware
+@REM
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+@REM
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent
+@REM
+
+@echo off
+setlocal
+
+set FMP_CAPSULE_VENDOR=Intel
+set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4
+set FMP_CAPSULE_BASE_NAME=MinnowMaxRelease
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap
+set FMP_CAPSULE_VERSION=0x0000000C
+set FMP_CAPSULE_VERSION_DECIMAL=12
+set FMP_CAPSULE_STRING=0.0.0.12
+set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% RELEASE UEFI %FMP_CAPSULE_STRING%"
+set FMP_CAPSULE_LSV=0x00000000
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+set FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\FV\Vlv.ROM
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b
+
+if exist "%FMP_CAPSULE_KEY%" (
+ REM
+ REM Sign capsule using signtool
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^
+ --pfx-file %FMP_CAPSULE_KEY% ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+if exist "NewCert.pem" (
+ REM
+ REM Sign capsule using OpenSSL with a new certificate
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=NewCert.pem ^
+ --other-public-cert=NewSub.pub.pem ^
+ --trusted-public-cert=NewRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+REM
+REM Sign capsule using OpenSSL with EDK II Test Certificate
+REM
+call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^
+ --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^
+ --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert
+
+copy %FMP_CAPSULE_FILE% firmware.bin
+copy template.metainfo.xml firmware.metainfo.xml
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+makecab /f Lvfs.ddf
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+erase firmware.cab
+erase setup.inf
+erase setup.rpt
+
+erase firmware.metainfo.xml
+erase firmware.bin
+erase %FMP_CAPSULE_FILE%
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat
new file mode 100644
index 0000000000..1dbbe7341d
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat
@@ -0,0 +1,145 @@
+@REM @file
+@REM Windows batch file to generate UEFI capsules for a sample device
+@REM
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+@REM
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent
+@REM
+
+@echo off
+setlocal
+
+set COLOR=%1
+
+set FMP_CAPSULE_VENDOR=Intel
+set FMP_CAPSULE_GUID=%2
+set FMP_CAPSULE_BASE_NAME=%COLOR%
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap
+set FMP_CAPSULE_VERSION=0x00000010
+set FMP_CAPSULE_VERSION_DECIMAL=16
+set FMP_CAPSULE_STRING=0.0.0.16
+set FMP_CAPSULE_NAME="%FMP_CAPSULE_BASE_NAME% Progress Bar %FMP_CAPSULE_STRING%"
+set FMP_CAPSULE_LSV=0x00000000
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+set FMP_CAPSULE_PAYLOAD=Payload.bin
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx
+
+echo "%COLOR% Progress Bar" > %FMP_CAPSULE_PAYLOAD%
+
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit
+
+if exist "%FMP_CAPSULE_KEY%" (
+ REM
+ REM Sign capsule using signtool
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^
+ --pfx-file %FMP_CAPSULE_KEY% ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+if exist "NewCert.pem" (
+ REM
+ REM Sign capsule using OpenSSL with a new certificate
+ REM
+ call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=NewCert.pem ^
+ --other-public-cert=NewSub.pub.pem ^
+ --trusted-public-cert=NewRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+ copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert
+
+ copy %FMP_CAPSULE_FILE% firmware.bin
+ copy template.metainfo.xml firmware.metainfo.xml
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+ makecab /f Lvfs.ddf
+ copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+ erase firmware.cab
+ erase setup.inf
+ erase setup.rpt
+
+ erase firmware.metainfo.xml
+ erase firmware.bin
+ erase %FMP_CAPSULE_FILE%
+)
+
+REM
+REM Sign capsule using OpenSSL with EDK II Test Certificate
+REM
+call GenerateCapsule ^
+ --encode ^
+ -v ^
+ --guid %FMP_CAPSULE_GUID% ^
+ --fw-version %FMP_CAPSULE_VERSION% ^
+ --lsv %FMP_CAPSULE_LSV% ^
+ --capflag PersistAcrossReset ^
+ --capflag InitiateReset ^
+ --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^
+ --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^
+ --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^
+ -o %FMP_CAPSULE_FILE% ^
+ %FMP_CAPSULE_PAYLOAD%
+
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert
+
+copy %FMP_CAPSULE_FILE% firmware.bin
+copy template.metainfo.xml firmware.metainfo.xml
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"
+makecab /f Lvfs.ddf
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab
+
+erase firmware.cab
+erase setup.inf
+erase setup.rpt
+
+erase firmware.metainfo.xml
+erase firmware.bin
+erase %FMP_CAPSULE_FILE%
+
+erase %FMP_CAPSULE_PAYLOAD%
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml
new file mode 100644
index 0000000000..5d550c1f48
--- /dev/null
+++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="firmware">
+ <id>com.intel.FMP_CAPSULE_BASE_NAME.firmware</id>
+ <name>FMP_CAPSULE_BASE_NAME</name>
+ <summary>System firmware for the FMP_CAPSULE_BASE_NAME</summary>
+ <description>
+ Description of System firmware for the FMP_CAPSULE_BASE_NAME
+ </description>
+ <provides>
+ <firmware type="flashed">FMP_CAPSULE_GUID</firmware>
+ </provides>
+ <url type="homepage">http://www.tianocore.org</url>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>BSD</project_license>
+ <developer_name>Tianocore</developer_name>
+ <releases>
+ <release version="FMP_CAPSULE_VERSION_DECIMAL" date="FMP_CAPSULE_DATE">
+ <description>
+ Build FMP_CAPSULE_STRING
+ </description>
+ </release>
+ </releases>
+ <!-- most OEMs do not need to do this... -->
+ <custom>
+ <value key="LVFS::InhibitDownload"/>
+ </custom>
+</component>
diff --git a/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc
new file mode 100644
index 0000000000..1856ac349b
--- /dev/null
+++ b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc
@@ -0,0 +1,38 @@
+#/** @file
+# Platform capsule description.
+#
+# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#**/
+
+[Defines]
+ PLATFORM_NAME = Vlv2TbltDevicePkg
+ PLATFORM_GUID = EE87F258-6ECC-4415-B1D8-23771BEE26E7
+ PLATFORM_VERSION = 0.1
+ FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformCapsuleGcc.fdf
+ OUTPUT_DIRECTORY = Build/Vlv2TbltDevicePkg
+ SUPPORTED_ARCHITECTURES = IA32|X64
+ BUILD_TARGETS = DEBUG|RELEASE
+ SKUID_IDENTIFIER = DEFAULT
+ POSTBUILD = Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh
+
+###################################################################################################
+#
+# Components Section - list of the modules and components that will be processed by compilation
+# tools and the EDK II tools to generate PE32/PE32+/Coff image files.
+#
+# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
+# into firmware volume images. This section is just a list of modules to compile from
+# source into UEFI-compliant binaries.
+# It is the FDF file that contains information on combining binary files into firmware
+# volume images, whose concept is beyond UEFI and is described in PI specification.
+# Binary modules do not need to be listed in this section, as they should be
+# specified in the FDF file. For example: Shell binary, FAT binary (Fat.efi),
+# Logo (Logo.bmp), and etc.
+# There may also be modules listed in this section that are not required in the FDF file,
+# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
+# generated for it, but the binary will not be put into any firmware volume.
+#
+###################################################################################################
--
2.21.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#40261): https://edk2.groups.io/g/devel/message/40261
Mute This Topic: https://groups.io/mt/31551784/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed by Qian, Yi <yi.qian@intel.com> Thanks QianYi -----Original Message----- From: Kinney, Michael D Sent: Thursday, May 9, 2019 12:31 PM To: devel@edk2.groups.io Cc: Sun, Zailiang <zailiang.sun@intel.com>; Qian, Yi <yi.qian@intel.com> Subject: [Patch 15/16] Vlv2TbltDevicePkg/Capsule: Add Linux/LVFS generation scripts Add batch scripts to generate the LVFS compatible capsule update driver. Add DSC/FDF files to build capsules and invoke post build shell scripts for Linux build environments. Make versions consistent. Cc: Zailiang Sun <zailiang.sun@intel.com> Cc: Yi Qian <yi.qian@intel.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> --- .../Capsule/GenerateCapsule/GenCapsuleAll.bat | 12 +- .../Capsule/GenerateCapsule/GenCapsuleAll.sh | 28 ++++ .../GenerateCapsule/GenCapsuleMinnowMax.bat | 4 +- .../GenerateCapsule/GenCapsuleMinnowMax.sh | 65 ++++++++ .../GenCapsuleMinnowMaxRelease.bat | 4 +- .../GenCapsuleMinnowMaxRelease.sh | 65 ++++++++ .../GenerateCapsule/GenCapsuleSampleColor.sh | 70 +++++++++ .../Feature/Capsule/GenerateCapsule/Lvfs.ddf | 14 ++ .../LvfsGenCapsuleMinnowMax.bat | 139 +++++++++++++++++ .../LvfsGenCapsuleMinnowMaxRelease.bat | 139 +++++++++++++++++ .../LvfsGenCapsuleSampleColor.bat | 145 ++++++++++++++++++ .../GenerateCapsule/template.metainfo.xml | 27 ++++ Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc | 38 +++++ 13 files changed, 743 insertions(+), 7 deletions(-) create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat create mode 100644 Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml create mode 100644 Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat index 187797e284..8f589565fa 100644 --- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.ba +++ t @@ -24,6 +24,12 @@ copy %WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\X64\CapsuleApp.efi %W call GenCapsuleMinnowMax.bat call GenCapsuleMinnowMaxRelease.bat -call GenCapsuleSampleColor.bat Blue 149DA854-7D19-4FAA-A91E-862EA1324BE6 -call GenCapsuleSampleColor.bat Green 79179BFD-704D-4C90-9E02-0AB8D968C18A -call GenCapsuleSampleColor.bat Red 72E2945A-00DA-448E-9AA7-075AD840F9D4 +call GenCapsuleSampleColor.bat Blue +149da854-7d19-4faa-a91e-862ea1324be6 +call GenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a +call GenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7-075ad840f9d4 + +call LvfsGenCapsuleMinnowMax.bat +call LvfsGenCapsuleMinnowMaxRelease.bat +call LvfsGenCapsuleSampleColor.bat Blue +149da854-7d19-4faa-a91e-862ea1324be6 +call LvfsGenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a +call LvfsGenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7-075ad840f9d4 diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh new file mode 100644 index 0000000000..040024553a --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh @@ -0,0 +1,28 @@ +# @file +# Linux script file to generate UEFI capsules for system firmware and +# firmware for sample devices +# +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # +SPDX-License-Identifier: BSD-2-Clause-Patent # + +cd $(dirname $0) + +rm -R $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert +cp $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/CapsuleAp +p.efi cp +$WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/CapsuleAp +pRelease.efi cp +$WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleApp.efi +cp $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleAppRelease.e +fi cp $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleApp.efi +cp $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.efi +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleAppRelease. +efi + +. GenCapsuleMinnowMax.sh +. GenCapsuleMinnowMaxRelease.sh +. GenCapsuleSampleColor.sh Blue 149DA854-7D19-4FAA-A91E-862EA1324BE6 +. GenCapsuleSampleColor.sh Green 79179BFD-704D-4C90-9E02-0AB8D968C18A +. GenCapsuleSampleColor.sh Red 72E2945A-00DA-448E-9AA7-075AD840F9D4 diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat index 50ebb160ee..6e4afd201e 100644 --- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow +++ Max.bat @@ -11,8 +11,8 @@ setlocal set FMP_CAPSULE_VENDOR=Intel set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 set FMP_CAPSULE_FILE=MinnowMax.cap -set FMP_CAPSULE_VERSION=0x00000009 -set FMP_CAPSULE_STRING=0.0.0.9 +set FMP_CAPSULE_VERSION=0x0000000C +set FMP_CAPSULE_STRING=0.0.0.12 set FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI %FMP_CAPSULE_STRING%" set FMP_CAPSULE_LSV=0x00000000 set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh new file mode 100644 index 0000000000..4fb963c93c --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow +++ Max.sh @@ -0,0 +1,65 @@ +# @file +# Linux script file to generate UEFI capsules for system firmware +# +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # +SPDX-License-Identifier: BSD-2-Clause-Patent # + +FMP_CAPSULE_VENDOR=Intel +FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 +FMP_CAPSULE_FILE=MinnowMax.cap +FMP_CAPSULE_VERSION=0x0000000C +FMP_CAPSULE_STRING=0.0.0.12 +FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI $FMP_CAPSULE_STRING" +FMP_CAPSULE_LSV=0x00000000 +FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/FV/V +lv.ROM + +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then + return +fi + +if [ -e NewCert.pem ]; then + # + # Sign capsule using OpenSSL with a new certificate + # + GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + --signer-private-cert=NewCert.pem \ + --other-public-cert=NewSub.pub.pem \ + --trusted-public-cert=NewRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + + cp $FMP_CAPSULE_FILE + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert + + rm $FMP_CAPSULE_FILE +fi + +# +# Sign capsule using OpenSSL with EDK II Test Certificate # +GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + +--signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestCert.pem \ + +--other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T +estSub.pub.pem \ + +--trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + +cp $FMP_CAPSULE_FILE +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert + +rm $FMP_CAPSULE_FILE + diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat index 9d08c86717..43c609e4b2 100644 --- a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow +++ MaxRelease.bat @@ -11,8 +11,8 @@ setlocal set FMP_CAPSULE_VENDOR=Intel set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 set FMP_CAPSULE_FILE=MinnowMaxRelease.cap -set FMP_CAPSULE_VERSION=0x00000009 -set FMP_CAPSULE_STRING=0.0.0.9 +set FMP_CAPSULE_VERSION=0x0000000C +set FMP_CAPSULE_STRING=0.0.0.12 set FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI %FMP_CAPSULE_STRING%" set FMP_CAPSULE_LSV=0x00000000 set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh new file mode 100644 index 0000000000..29d46dad1e --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow +++ MaxRelease.sh @@ -0,0 +1,65 @@ +# @file +# Linux script file to generate UEFI capsules for system firmware +# +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # +SPDX-License-Identifier: BSD-2-Clause-Patent # + +FMP_CAPSULE_VENDOR=Intel +FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 +FMP_CAPSULE_FILE=MinnowMaxRelease.cap +FMP_CAPSULE_VERSION=0x0000000C +FMP_CAPSULE_STRING=0.0.0.12 +FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI $FMP_CAPSULE_STRING" +FMP_CAPSULE_LSV=0x00000000 +FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/FV +/Vlv.ROM + +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then + return +fi + +if [ -e NewCert.pem ]; then + # + # Sign capsule using OpenSSL with a new certificate + # + GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + --signer-private-cert=NewCert.pem \ + --other-public-cert=NewSub.pub.pem \ + --trusted-public-cert=NewRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + + cp $FMP_CAPSULE_FILE + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert + + rm $FMP_CAPSULE_FILE +fi + +# +# Sign capsule using OpenSSL with EDK II Test Certificate # +GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + +--signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestCert.pem \ + +--other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T +estSub.pub.pem \ + +--trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + +cp $FMP_CAPSULE_FILE +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert + +rm $FMP_CAPSULE_FILE + diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh new file mode 100644 index 0000000000..a1c6f28cde --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSample +++ Color.sh @@ -0,0 +1,70 @@ +# @file +# Linux script file to generate UEFI capsules for a sample device +# +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # +SPDX-License-Identifier: BSD-2-Clause-Patent # + +COLOR=$1 + +FMP_CAPSULE_VENDOR=Intel +FMP_CAPSULE_GUID=$2 +FMP_CAPSULE_FILE=$COLOR.cap +FMP_CAPSULE_VERSION=0x00000010 +FMP_CAPSULE_STRING=0.0.0.16 +FMP_CAPSULE_NAME="$COLOR Progress Bar $FMP_CAPSULE_STRING" +FMP_CAPSULE_LSV=0x00000000 +FMP_CAPSULE_PAYLOAD=Payload.bin + +echo "$COLOR Progress Bar" > $FMP_CAPSULE_PAYLOAD + +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then + return +fi + +if [ -e NewCert.pem ]; then + # + # Sign capsule using OpenSSL with a new certificate + # + GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + --signer-private-cert=NewCert.pem \ + --other-public-cert=NewSub.pub.pem \ + --trusted-public-cert=NewRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + + cp $FMP_CAPSULE_FILE + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert + + rm $FMP_CAPSULE_FILE +fi + +# +# Sign capsule using OpenSSL with EDK II Test Certificate # +GenerateCapsule \ + --encode \ + -v \ + --guid $FMP_CAPSULE_GUID \ + --fw-version $FMP_CAPSULE_VERSION \ + --lsv $FMP_CAPSULE_LSV \ + --capflag PersistAcrossReset \ + --capflag InitiateReset \ + +--signer-private-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestCert.pem \ + +--other-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T +estSub.pub.pem \ + +--trusted-public-cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign +/TestRoot.pub.pem \ + -o $FMP_CAPSULE_FILE \ + $FMP_CAPSULE_PAYLOAD + +cp $FMP_CAPSULE_FILE +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert + +rm $FMP_CAPSULE_FILE + +rm $FMP_CAPSULE_PAYLOAD diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf new file mode 100644 index 0000000000..f2c925a6dd --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf @@ -0,0 +1,14 @@ +.OPTION EXPLICIT ; Generate errors on variable typos + +.Set CabinetNameTemplate=firmware.cab ; The name of the file .set +DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory +.Set Cabinet=on ; .Set Compress=on ; .Set DiskDirectory1=. +.Set MaxDiskSize=99999744 ; multiple of 512 + +;*** Files to zip ; +; +firmware.bin +firmware.metainfo.xml +;*** diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat new file mode 100644 index 0000000000..dd8274a1cc --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi +++ nnowMax.bat @@ -0,0 +1,139 @@ +@REM @file +@REM Windows batch file to generate UEFI capsules for system firmware +@REM +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM + +@echo off +setlocal + +set FMP_CAPSULE_VENDOR=Intel +set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4 +set FMP_CAPSULE_BASE_NAME=MinnowMax +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap +set FMP_CAPSULE_VERSION=0x0000000C +set FMP_CAPSULE_VERSION_DECIMAL=12 +set FMP_CAPSULE_STRING=0.0.0.12 +set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% DEBUG UEFI %FMP_CAPSULE_STRING%" +set FMP_CAPSULE_LSV=0x00000000 +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx +set +FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\DEBUG_VS2015x86 +\FV\Vlv.ROM set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx + +if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b + +if exist "%FMP_CAPSULE_KEY%" ( + REM + REM Sign capsule using signtool + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ + --pfx-file %FMP_CAPSULE_KEY% ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +if exist "NewCert.pem" ( + REM + REM Sign capsule using OpenSSL with a new certificate + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signer-private-cert=NewCert.pem ^ + --other-public-cert=NewSub.pub.pem ^ + --trusted-public-cert=NewRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +REM +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call +GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + +--signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestCert.pem ^ + +--other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ +TestSub.pub.pem ^ + +--trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + +copy %FMP_CAPSULE_FILE% +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert + +copy %FMP_CAPSULE_FILE% firmware.bin +copy template.metainfo.xml firmware.metainfo.xml powershell -Command +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" +makecab /f Lvfs.ddf +copy firmware.cab +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE +_NAME%-%FMP_CAPSULE_STRING%.cab + +erase firmware.cab +erase setup.inf +erase setup.rpt + +erase firmware.metainfo.xml +erase firmware.bin +erase %FMP_CAPSULE_FILE% diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat new file mode 100644 index 0000000000..2b68a98f98 --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi +++ nnowMaxRelease.bat @@ -0,0 +1,139 @@ +@REM @file +@REM Windows batch file to generate UEFI capsules for system firmware +@REM +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM + +@echo off +setlocal + +set FMP_CAPSULE_VENDOR=Intel +set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4 +set FMP_CAPSULE_BASE_NAME=MinnowMaxRelease +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap +set FMP_CAPSULE_VERSION=0x0000000C +set FMP_CAPSULE_VERSION_DECIMAL=12 +set FMP_CAPSULE_STRING=0.0.0.12 +set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% RELEASE UEFI %FMP_CAPSULE_STRING%" +set FMP_CAPSULE_LSV=0x00000000 +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx +set +FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x +86\FV\Vlv.ROM set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx + +if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b + +if exist "%FMP_CAPSULE_KEY%" ( + REM + REM Sign capsule using signtool + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ + --pfx-file %FMP_CAPSULE_KEY% ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +if exist "NewCert.pem" ( + REM + REM Sign capsule using OpenSSL with a new certificate + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signer-private-cert=NewCert.pem ^ + --other-public-cert=NewSub.pub.pem ^ + --trusted-public-cert=NewRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +REM +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call +GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + +--signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestCert.pem ^ + +--other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ +TestSub.pub.pem ^ + +--trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + +copy %FMP_CAPSULE_FILE% +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert + +copy %FMP_CAPSULE_FILE% firmware.bin +copy template.metainfo.xml firmware.metainfo.xml powershell -Command +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" +makecab /f Lvfs.ddf +copy firmware.cab +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE +_NAME%-%FMP_CAPSULE_STRING%.cab + +erase firmware.cab +erase setup.inf +erase setup.rpt + +erase firmware.metainfo.xml +erase firmware.bin +erase %FMP_CAPSULE_FILE% diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat new file mode 100644 index 0000000000..1dbbe7341d --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSa +++ mpleColor.bat @@ -0,0 +1,145 @@ +@REM @file +@REM Windows batch file to generate UEFI capsules for a sample device +@REM +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM + +@echo off +setlocal + +set COLOR=%1 + +set FMP_CAPSULE_VENDOR=Intel +set FMP_CAPSULE_GUID=%2 +set FMP_CAPSULE_BASE_NAME=%COLOR% +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap +set FMP_CAPSULE_VERSION=0x00000010 +set FMP_CAPSULE_VERSION_DECIMAL=16 +set FMP_CAPSULE_STRING=0.0.0.16 +set FMP_CAPSULE_NAME="%FMP_CAPSULE_BASE_NAME% Progress Bar %FMP_CAPSULE_STRING%" +set FMP_CAPSULE_LSV=0x00000000 +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx +set FMP_CAPSULE_PAYLOAD=Payload.bin +set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx + +echo "%COLOR% Progress Bar" > %FMP_CAPSULE_PAYLOAD% + +if not exist "%FMP_CAPSULE_PAYLOAD%" exit + +if exist "%FMP_CAPSULE_KEY%" ( + REM + REM Sign capsule using signtool + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ + --pfx-file %FMP_CAPSULE_KEY% ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +if exist "NewCert.pem" ( + REM + REM Sign capsule using OpenSSL with a new certificate + REM + call GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + --signer-private-cert=NewCert.pem ^ + --other-public-cert=NewSub.pub.pem ^ + --trusted-public-cert=NewRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + + copy %FMP_CAPSULE_FILE% + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert + + copy %FMP_CAPSULE_FILE% firmware.bin + copy template.metainfo.xml firmware.metainfo.xml powershell -Command + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" + powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" + makecab /f Lvfs.ddf + copy firmware.cab + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BAS + E_NAME%-%FMP_CAPSULE_STRING%.cab + + erase firmware.cab + erase setup.inf + erase setup.rpt + + erase firmware.metainfo.xml + erase firmware.bin + erase %FMP_CAPSULE_FILE% +) + +REM +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call +GenerateCapsule ^ + --encode ^ + -v ^ + --guid %FMP_CAPSULE_GUID% ^ + --fw-version %FMP_CAPSULE_VERSION% ^ + --lsv %FMP_CAPSULE_LSV% ^ + --capflag PersistAcrossReset ^ + --capflag InitiateReset ^ + +--signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestCert.pem ^ + +--other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ +TestSub.pub.pem ^ + +--trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig +n\TestRoot.pub.pem ^ + -o %FMP_CAPSULE_FILE% ^ + %FMP_CAPSULE_PAYLOAD% + +copy %FMP_CAPSULE_FILE% +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert + +copy %FMP_CAPSULE_FILE% firmware.bin +copy template.metainfo.xml firmware.metainfo.xml powershell -Command +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII" +powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII" +makecab /f Lvfs.ddf +copy firmware.cab +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE +_NAME%-%FMP_CAPSULE_STRING%.cab + +erase firmware.cab +erase setup.inf +erase setup.rpt + +erase firmware.metainfo.xml +erase firmware.bin +erase %FMP_CAPSULE_FILE% + +erase %FMP_CAPSULE_PAYLOAD% diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml new file mode 100644 index 0000000000..5d550c1f48 --- /dev/null +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainf +++ o.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="firmware"> + <id>com.intel.FMP_CAPSULE_BASE_NAME.firmware</id> + <name>FMP_CAPSULE_BASE_NAME</name> + <summary>System firmware for the FMP_CAPSULE_BASE_NAME</summary> + <description> + Description of System firmware for the FMP_CAPSULE_BASE_NAME + </description> + <provides> + <firmware type="flashed">FMP_CAPSULE_GUID</firmware> + </provides> + <url type="homepage">http://www.tianocore.org</url> + <metadata_license>CC0-1.0</metadata_license> + <project_license>BSD</project_license> + <developer_name>Tianocore</developer_name> + <releases> + <release version="FMP_CAPSULE_VERSION_DECIMAL" date="FMP_CAPSULE_DATE"> + <description> + Build FMP_CAPSULE_STRING + </description> + </release> + </releases> + <!-- most OEMs do not need to do this... --> + <custom> + <value key="LVFS::InhibitDownload"/> + </custom> +</component> diff --git a/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc new file mode 100644 index 0000000000..1856ac349b --- /dev/null +++ b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc @@ -0,0 +1,38 @@ +#/** @file +# Platform capsule description. +# +# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> # # +SPDX-License-Identifier: BSD-2-Clause-Patent # #**/ + +[Defines] + PLATFORM_NAME = Vlv2TbltDevicePkg + PLATFORM_GUID = EE87F258-6ECC-4415-B1D8-23771BEE26E7 + PLATFORM_VERSION = 0.1 + FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformCapsuleGcc.fdf + OUTPUT_DIRECTORY = Build/Vlv2TbltDevicePkg + SUPPORTED_ARCHITECTURES = IA32|X64 + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + POSTBUILD = Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh + +####################################################################### +############################ +# +# Components Section - list of the modules and components that will be processed by compilation +# tools and the EDK II tools to generate PE32/PE32+/Coff image files. +# +# Note: The EDK II DSC file is not used to specify how compiled binary images get placed +# into firmware volume images. This section is just a list of modules to compile from +# source into UEFI-compliant binaries. +# It is the FDF file that contains information on combining binary files into firmware +# volume images, whose concept is beyond UEFI and is described in PI specification. +# Binary modules do not need to be listed in this section, as they should be +# specified in the FDF file. For example: Shell binary, FAT binary (Fat.efi), +# Logo (Logo.bmp), and etc. +# There may also be modules listed in this section that are not required in the FDF file, +# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be +# generated for it, but the binary will not be put into any firmware volume. +# +####################################################################### +############################ -- 2.21.0.windows.1 -- Qian Yi -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#40353): https://edk2.groups.io/g/devel/message/40353 Mute This Topic: https://groups.io/mt/31551784/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Zailiang Sun <zailiang.sun@intel.com> > -----Original Message----- > From: Kinney, Michael D > Sent: Thursday, May 9, 2019 12:31 PM > To: devel@edk2.groups.io > Cc: Sun, Zailiang <zailiang.sun@intel.com>; Qian, Yi <yi.qian@intel.com> > Subject: [Patch 15/16] Vlv2TbltDevicePkg/Capsule: Add Linux/LVFS > generation scripts > > Add batch scripts to generate the LVFS compatible capsule update driver. > > Add DSC/FDF files to build capsules and invoke post build shell scripts for > Linux build environments. > > Make versions consistent. > > Cc: Zailiang Sun <zailiang.sun@intel.com> > Cc: Yi Qian <yi.qian@intel.com> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > --- > .../Capsule/GenerateCapsule/GenCapsuleAll.bat | 12 +- > .../Capsule/GenerateCapsule/GenCapsuleAll.sh | 28 ++++ > .../GenerateCapsule/GenCapsuleMinnowMax.bat | 4 +- > .../GenerateCapsule/GenCapsuleMinnowMax.sh | 65 ++++++++ > .../GenCapsuleMinnowMaxRelease.bat | 4 +- > .../GenCapsuleMinnowMaxRelease.sh | 65 ++++++++ > .../GenerateCapsule/GenCapsuleSampleColor.sh | 70 > +++++++++ .../Feature/Capsule/GenerateCapsule/Lvfs.ddf | 14 ++ > .../LvfsGenCapsuleMinnowMax.bat | 139 +++++++++++++++++ > .../LvfsGenCapsuleMinnowMaxRelease.bat | 139 +++++++++++++++++ > .../LvfsGenCapsuleSampleColor.bat | 145 ++++++++++++++++++ > .../GenerateCapsule/template.metainfo.xml | 27 ++++ > Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc | 38 +++++ > 13 files changed, 743 insertions(+), 7 deletions(-) create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow > Max.sh > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnow > MaxRelease.sh > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleC > olor.sh > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinn > owMax.bat > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinn > owMaxRelease.bat > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSam > pleColor.bat > create mode 100644 > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.x > ml > create mode 100644 Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc > > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat > index 187797e284..8f589565fa 100644 > --- > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.ba > +++ t > @@ -24,6 +24,12 @@ > copy %WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\X64\Ca > psuleApp.efi %W > > call GenCapsuleMinnowMax.bat > call GenCapsuleMinnowMaxRelease.bat > -call GenCapsuleSampleColor.bat Blue 149DA854-7D19-4FAA-A91E- > 862EA1324BE6 > -call GenCapsuleSampleColor.bat Green 79179BFD-704D-4C90-9E02- > 0AB8D968C18A > -call GenCapsuleSampleColor.bat Red 72E2945A-00DA-448E-9AA7- > 075AD840F9D4 > +call GenCapsuleSampleColor.bat Blue > +149da854-7d19-4faa-a91e-862ea1324be6 > +call GenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02- > 0ab8d968c18a > +call GenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7- > 075ad840f9d4 > + > +call LvfsGenCapsuleMinnowMax.bat > +call LvfsGenCapsuleMinnowMaxRelease.bat > +call LvfsGenCapsuleSampleColor.bat Blue > +149da854-7d19-4faa-a91e-862ea1324be6 > +call LvfsGenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02- > 0ab8d968c18a > +call LvfsGenCapsuleSampleColor.bat Red 72e2945a-00da-448e-9aa7- > 075ad840f9d4 > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh > new file mode 100644 > index 0000000000..040024553a > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh > @@ -0,0 +1,28 @@ > +# @file > +# Linux script file to generate UEFI capsules for system firmware and > +# firmware for sample devices > +# > +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # > + > +cd $(dirname $0) > + > +rm -R $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules > +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules > +mkdir > $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment > +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert > +mkdir $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert > +cp > $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/Ca > psuleAp > +p.efi cp > +$WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp. > efi > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/SampleDevelopment/Ca > psuleAp > +pRelease.efi cp > +$WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.ef > i > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleApp.efi > +cp > $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.ef > i > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert/CapsuleAppRel > ease.e > +fi cp > $WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_GCC49/X64/CapsuleApp.efi > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleApp.efi > +cp > $WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE_GCC49/X64/CapsuleApp.ef > i > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert/CapsuleAppRel > ease. > +efi > + > +. GenCapsuleMinnowMax.sh > +. GenCapsuleMinnowMaxRelease.sh > +. GenCapsuleSampleColor.sh Blue 149DA854-7D19-4FAA-A91E- > 862EA1324BE6 > +. GenCapsuleSampleColor.sh Green 79179BFD-704D-4C90-9E02- > 0AB8D968C18A > +. GenCapsuleSampleColor.sh Red 72E2945A-00DA-448E-9AA7- > 075AD840F9D4 > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMax.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMax.bat > index 50ebb160ee..6e4afd201e 100644 > --- > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMax.bat > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > w > +++ Max.bat > @@ -11,8 +11,8 @@ setlocal > set FMP_CAPSULE_VENDOR=Intel > set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 > set FMP_CAPSULE_FILE=MinnowMax.cap > -set FMP_CAPSULE_VERSION=0x00000009 > -set FMP_CAPSULE_STRING=0.0.0.9 > +set FMP_CAPSULE_VERSION=0x0000000C > +set FMP_CAPSULE_STRING=0.0.0.12 > set FMP_CAPSULE_NAME="Intel MinnowMax DEBUG > UEFI %FMP_CAPSULE_STRING%" > set FMP_CAPSULE_LSV=0x00000000 > set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMax.sh > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMax.sh > new file mode 100644 > index 0000000000..4fb963c93c > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > w > +++ Max.sh > @@ -0,0 +1,65 @@ > +# @file > +# Linux script file to generate UEFI capsules for system firmware > +# > +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # > + > +FMP_CAPSULE_VENDOR=Intel > +FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 > +FMP_CAPSULE_FILE=MinnowMax.cap > +FMP_CAPSULE_VERSION=0x0000000C > +FMP_CAPSULE_STRING=0.0.0.12 > +FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI > $FMP_CAPSULE_STRING" > +FMP_CAPSULE_LSV=0x00000000 > +FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/DEBUG_ > GCC49/FV/V > +lv.ROM > + > +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then > + return > +fi > + > +if [ -e NewCert.pem ]; then > + # > + # Sign capsule using OpenSSL with a new certificate > + # > + GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + --signer-private-cert=NewCert.pem \ > + --other-public-cert=NewSub.pub.pem \ > + --trusted-public-cert=NewRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > + cp $FMP_CAPSULE_FILE > + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert > + > + rm $FMP_CAPSULE_FILE > +fi > + > +# > +# Sign capsule using OpenSSL with EDK II Test Certificate # > +GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + > +--signer-private- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestCert.pem \ > + > +--other-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T > +estSub.pub.pem \ > + > +--trusted-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > +cp $FMP_CAPSULE_FILE > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert > + > +rm $FMP_CAPSULE_FILE > + > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMaxRelease.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMaxRelease.bat > index 9d08c86717..43c609e4b2 100644 > --- > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMaxRelease.bat > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > w > +++ MaxRelease.bat > @@ -11,8 +11,8 @@ setlocal > set FMP_CAPSULE_VENDOR=Intel > set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 > set FMP_CAPSULE_FILE=MinnowMaxRelease.cap > -set FMP_CAPSULE_VERSION=0x00000009 > -set FMP_CAPSULE_STRING=0.0.0.9 > +set FMP_CAPSULE_VERSION=0x0000000C > +set FMP_CAPSULE_STRING=0.0.0.12 > set FMP_CAPSULE_NAME="Intel MinnowMax RELEASE > UEFI %FMP_CAPSULE_STRING%" > set FMP_CAPSULE_LSV=0x00000000 > set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMaxRelease.sh > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > wMaxRelease.sh > new file mode 100644 > index 0000000000..29d46dad1e > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinno > w > +++ MaxRelease.sh > @@ -0,0 +1,65 @@ > +# @file > +# Linux script file to generate UEFI capsules for system firmware > +# > +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # > + > +FMP_CAPSULE_VENDOR=Intel > +FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4 > +FMP_CAPSULE_FILE=MinnowMaxRelease.cap > +FMP_CAPSULE_VERSION=0x0000000C > +FMP_CAPSULE_STRING=0.0.0.12 > +FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI > $FMP_CAPSULE_STRING" > +FMP_CAPSULE_LSV=0x00000000 > +FMP_CAPSULE_PAYLOAD=$WORKSPACE/Build/Vlv2TbltDevicePkg/RELEASE > _GCC49/FV > +/Vlv.ROM > + > +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then > + return > +fi > + > +if [ -e NewCert.pem ]; then > + # > + # Sign capsule using OpenSSL with a new certificate > + # > + GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + --signer-private-cert=NewCert.pem \ > + --other-public-cert=NewSub.pub.pem \ > + --trusted-public-cert=NewRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > + cp $FMP_CAPSULE_FILE > + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert > + > + rm $FMP_CAPSULE_FILE > +fi > + > +# > +# Sign capsule using OpenSSL with EDK II Test Certificate # > +GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + > +--signer-private- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestCert.pem \ > + > +--other-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T > +estSub.pub.pem \ > + > +--trusted-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > +cp $FMP_CAPSULE_FILE > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert > + > +rm $FMP_CAPSULE_FILE > + > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampl > eColor.sh > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampl > eColor.sh > new file mode 100644 > index 0000000000..a1c6f28cde > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampl > e > +++ Color.sh > @@ -0,0 +1,70 @@ > +# @file > +# Linux script file to generate UEFI capsules for a sample device > +# > +# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # > + > +COLOR=$1 > + > +FMP_CAPSULE_VENDOR=Intel > +FMP_CAPSULE_GUID=$2 > +FMP_CAPSULE_FILE=$COLOR.cap > +FMP_CAPSULE_VERSION=0x00000010 > +FMP_CAPSULE_STRING=0.0.0.16 > +FMP_CAPSULE_NAME="$COLOR Progress Bar $FMP_CAPSULE_STRING" > +FMP_CAPSULE_LSV=0x00000000 > +FMP_CAPSULE_PAYLOAD=Payload.bin > + > +echo "$COLOR Progress Bar" > $FMP_CAPSULE_PAYLOAD > + > +if [ ! -e "$FMP_CAPSULE_PAYLOAD" ] ; then > + return > +fi > + > +if [ -e NewCert.pem ]; then > + # > + # Sign capsule using OpenSSL with a new certificate > + # > + GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + --signer-private-cert=NewCert.pem \ > + --other-public-cert=NewSub.pub.pem \ > + --trusted-public-cert=NewRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > + cp $FMP_CAPSULE_FILE > + $WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/NewCert > + > + rm $FMP_CAPSULE_FILE > +fi > + > +# > +# Sign capsule using OpenSSL with EDK II Test Certificate # > +GenerateCapsule \ > + --encode \ > + -v \ > + --guid $FMP_CAPSULE_GUID \ > + --fw-version $FMP_CAPSULE_VERSION \ > + --lsv $FMP_CAPSULE_LSV \ > + --capflag PersistAcrossReset \ > + --capflag InitiateReset \ > + > +--signer-private- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestCert.pem \ > + > +--other-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign/T > +estSub.pub.pem \ > + > +--trusted-public- > cert=$WORKSPACE/edk2/BaseTools/Source/Python/Pkcs7Sign > +/TestRoot.pub.pem \ > + -o $FMP_CAPSULE_FILE \ > + $FMP_CAPSULE_PAYLOAD > + > +cp $FMP_CAPSULE_FILE > +$WORKSPACE/Build/Vlv2TbltDevicePkg/Capsules/TestCert > + > +rm $FMP_CAPSULE_FILE > + > +rm $FMP_CAPSULE_PAYLOAD > diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf > new file mode 100644 > index 0000000000..f2c925a6dd > --- /dev/null > +++ b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf > @@ -0,0 +1,14 @@ > +.OPTION EXPLICIT ; Generate errors on variable typos > + > +.Set CabinetNameTemplate=firmware.cab ; The name of the file .set > +DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory > +.Set Cabinet=on ; .Set Compress=on ; .Set DiskDirectory1=. > +.Set MaxDiskSize=99999744 ; multiple of 512 > + > +;*** Files to zip ; > +; > +firmware.bin > +firmware.metainfo.xml > +;*** > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > nnowMax.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > nnowMax.bat > new file mode 100644 > index 0000000000..dd8274a1cc > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > +++ nnowMax.bat > @@ -0,0 +1,139 @@ > +@REM @file > +@REM Windows batch file to generate UEFI capsules for system firmware > +@REM > +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> > +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM > + > +@echo off > +setlocal > + > +set FMP_CAPSULE_VENDOR=Intel > +set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4 > +set FMP_CAPSULE_BASE_NAME=MinnowMax > +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap > +set FMP_CAPSULE_VERSION=0x0000000C > +set FMP_CAPSULE_VERSION_DECIMAL=12 > +set FMP_CAPSULE_STRING=0.0.0.12 > +set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% DEBUG > UEFI %FMP_CAPSULE_STRING%" > +set FMP_CAPSULE_LSV=0x00000000 > +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > +set > +FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\DEBU > G_VS2015x86 > +\FV\Vlv.ROM set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > + > +if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b > + > +if exist "%FMP_CAPSULE_KEY%" ( > + REM > + REM Sign capsule using signtool > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ > + --pfx-file %FMP_CAPSULE_KEY% ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +if exist "NewCert.pem" ( > + REM > + REM Sign capsule using OpenSSL with a new certificate > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signer-private-cert=NewCert.pem ^ > + --other-public-cert=NewSub.pub.pem ^ > + --trusted-public-cert=NewRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +REM > +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call > +GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + > +--signer-private- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestCert.pem ^ > + > +--other-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ > +TestSub.pub.pem ^ > + > +--trusted-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > +copy %FMP_CAPSULE_FILE% > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert > + > +copy %FMP_CAPSULE_FILE% firmware.bin > +copy template.metainfo.xml firmware.metainfo.xml powershell -Command > +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +makecab /f Lvfs.ddf > +copy firmware.cab > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BASE > +_NAME%-%FMP_CAPSULE_STRING%.cab > + > +erase firmware.cab > +erase setup.inf > +erase setup.rpt > + > +erase firmware.metainfo.xml > +erase firmware.bin > +erase %FMP_CAPSULE_FILE% > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > nnowMaxRelease.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > nnowMaxRelease.bat > new file mode 100644 > index 0000000000..2b68a98f98 > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMi > +++ nnowMaxRelease.bat > @@ -0,0 +1,139 @@ > +@REM @file > +@REM Windows batch file to generate UEFI capsules for system firmware > +@REM > +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> > +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM > + > +@echo off > +setlocal > + > +set FMP_CAPSULE_VENDOR=Intel > +set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4 > +set FMP_CAPSULE_BASE_NAME=MinnowMaxRelease > +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap > +set FMP_CAPSULE_VERSION=0x0000000C > +set FMP_CAPSULE_VERSION_DECIMAL=12 > +set FMP_CAPSULE_STRING=0.0.0.12 > +set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% RELEASE > UEFI %FMP_CAPSULE_STRING%" > +set FMP_CAPSULE_LSV=0x00000000 > +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > +set > +FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEA > SE_VS2015x > +86\FV\Vlv.ROM set > WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > + > +if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b > + > +if exist "%FMP_CAPSULE_KEY%" ( > + REM > + REM Sign capsule using signtool > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ > + --pfx-file %FMP_CAPSULE_KEY% ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +if exist "NewCert.pem" ( > + REM > + REM Sign capsule using OpenSSL with a new certificate > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signer-private-cert=NewCert.pem ^ > + --other-public-cert=NewSub.pub.pem ^ > + --trusted-public-cert=NewRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +REM > +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call > +GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + > +--signer-private- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestCert.pem ^ > + > +--other-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ > +TestSub.pub.pem ^ > + > +--trusted-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > +copy %FMP_CAPSULE_FILE% > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert > + > +copy %FMP_CAPSULE_FILE% firmware.bin > +copy template.metainfo.xml firmware.metainfo.xml powershell -Command > +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +makecab /f Lvfs.ddf > +copy firmware.cab > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BASE > +_NAME%-%FMP_CAPSULE_STRING%.cab > + > +erase firmware.cab > +erase setup.inf > +erase setup.rpt > + > +erase firmware.metainfo.xml > +erase firmware.bin > +erase %FMP_CAPSULE_FILE% > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSa > mpleColor.bat > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSa > mpleColor.bat > new file mode 100644 > index 0000000000..1dbbe7341d > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSa > +++ mpleColor.bat > @@ -0,0 +1,145 @@ > +@REM @file > +@REM Windows batch file to generate UEFI capsules for a sample device > +@REM > +@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> > +@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM > + > +@echo off > +setlocal > + > +set COLOR=%1 > + > +set FMP_CAPSULE_VENDOR=Intel > +set FMP_CAPSULE_GUID=%2 > +set FMP_CAPSULE_BASE_NAME=%COLOR% > +set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap > +set FMP_CAPSULE_VERSION=0x00000010 > +set FMP_CAPSULE_VERSION_DECIMAL=16 > +set FMP_CAPSULE_STRING=0.0.0.16 > +set FMP_CAPSULE_NAME="%FMP_CAPSULE_BASE_NAME% Progress > Bar %FMP_CAPSULE_STRING%" > +set FMP_CAPSULE_LSV=0x00000000 > +set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > +set FMP_CAPSULE_PAYLOAD=Payload.bin > +set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx > + > +echo "%COLOR% Progress Bar" > %FMP_CAPSULE_PAYLOAD% > + > +if not exist "%FMP_CAPSULE_PAYLOAD%" exit > + > +if exist "%FMP_CAPSULE_KEY%" ( > + REM > + REM Sign capsule using signtool > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^ > + --pfx-file %FMP_CAPSULE_KEY% ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +if exist "NewCert.pem" ( > + REM > + REM Sign capsule using OpenSSL with a new certificate > + REM > + call GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + --signer-private-cert=NewCert.pem ^ > + --other-public-cert=NewSub.pub.pem ^ > + --trusted-public-cert=NewRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > + copy %FMP_CAPSULE_FILE% > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert > + > + copy %FMP_CAPSULE_FILE% firmware.bin > + copy template.metainfo.xml firmware.metainfo.xml powershell - > Command > + "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > + powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > + makecab /f Lvfs.ddf > + copy firmware.cab > + %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BAS > + E_NAME%-%FMP_CAPSULE_STRING%.cab > + > + erase firmware.cab > + erase setup.inf > + erase setup.rpt > + > + erase firmware.metainfo.xml > + erase firmware.bin > + erase %FMP_CAPSULE_FILE% > +) > + > +REM > +REM Sign capsule using OpenSSL with EDK II Test Certificate REM call > +GenerateCapsule ^ > + --encode ^ > + -v ^ > + --guid %FMP_CAPSULE_GUID% ^ > + --fw-version %FMP_CAPSULE_VERSION% ^ > + --lsv %FMP_CAPSULE_LSV% ^ > + --capflag PersistAcrossReset ^ > + --capflag InitiateReset ^ > + > +--signer-private- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestCert.pem ^ > + > +--other-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\ > +TestSub.pub.pem ^ > + > +--trusted-public- > cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sig > +n\TestRoot.pub.pem ^ > + -o %FMP_CAPSULE_FILE% ^ > + %FMP_CAPSULE_PAYLOAD% > + > +copy %FMP_CAPSULE_FILE% > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert > + > +copy %FMP_CAPSULE_FILE% firmware.bin > +copy template.metainfo.xml firmware.metainfo.xml powershell -Command > +"(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', > '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding > ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_VERSION_DECIMAL', > '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File > firmware.metainfo.xml -encoding ASCII" > +powershell -Command "(gc firmware.metainfo.xml) -replace > 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml - > encoding ASCII" > +makecab /f Lvfs.ddf > +copy firmware.cab > +%WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPS > ULE_BASE > +_NAME%-%FMP_CAPSULE_STRING%.cab > + > +erase firmware.cab > +erase setup.inf > +erase setup.rpt > + > +erase firmware.metainfo.xml > +erase firmware.bin > +erase %FMP_CAPSULE_FILE% > + > +erase %FMP_CAPSULE_PAYLOAD% > diff --git > a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo > .xml > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo > .xml > new file mode 100644 > index 0000000000..5d550c1f48 > --- /dev/null > +++ > b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainf > +++ o.xml > @@ -0,0 +1,27 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<component type="firmware"> > + <id>com.intel.FMP_CAPSULE_BASE_NAME.firmware</id> > + <name>FMP_CAPSULE_BASE_NAME</name> > + <summary>System firmware for the > FMP_CAPSULE_BASE_NAME</summary> > + <description> > + Description of System firmware for the FMP_CAPSULE_BASE_NAME > + </description> > + <provides> > + <firmware type="flashed">FMP_CAPSULE_GUID</firmware> > + </provides> > + <url type="homepage">http://www.tianocore.org</url> > + <metadata_license>CC0-1.0</metadata_license> > + <project_license>BSD</project_license> > + <developer_name>Tianocore</developer_name> > + <releases> > + <release version="FMP_CAPSULE_VERSION_DECIMAL" > date="FMP_CAPSULE_DATE"> > + <description> > + Build FMP_CAPSULE_STRING > + </description> > + </release> > + </releases> > + <!-- most OEMs do not need to do this... --> > + <custom> > + <value key="LVFS::InhibitDownload"/> > + </custom> > +</component> > diff --git a/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc > b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc > new file mode 100644 > index 0000000000..1856ac349b > --- /dev/null > +++ b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc > @@ -0,0 +1,38 @@ > +#/** @file > +# Platform capsule description. > +# > +# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # #**/ > + > +[Defines] > + PLATFORM_NAME = Vlv2TbltDevicePkg > + PLATFORM_GUID = EE87F258-6ECC-4415-B1D8-23771BEE26E7 > + PLATFORM_VERSION = 0.1 > + FLASH_DEFINITION = Vlv2TbltDevicePkg/PlatformCapsuleGcc.fdf > + OUTPUT_DIRECTORY = Build/Vlv2TbltDevicePkg > + SUPPORTED_ARCHITECTURES = IA32|X64 > + BUILD_TARGETS = DEBUG|RELEASE > + SKUID_IDENTIFIER = DEFAULT > + POSTBUILD = > Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh > + > +######################################################### > ############## > +############################ > +# > +# Components Section - list of the modules and components that will be > processed by compilation > +# tools and the EDK II tools to generate PE32/PE32+/Coff image > files. > +# > +# Note: The EDK II DSC file is not used to specify how compiled binary > images get placed > +# into firmware volume images. This section is just a list of modules to > compile from > +# source into UEFI-compliant binaries. > +# It is the FDF file that contains information on combining binary files into > firmware > +# volume images, whose concept is beyond UEFI and is described in PI > specification. > +# Binary modules do not need to be listed in this section, as they should > be > +# specified in the FDF file. For example: Shell binary, FAT binary (Fat.efi), > +# Logo (Logo.bmp), and etc. > +# There may also be modules listed in this section that are not required > in the FDF file, > +# When a module listed here is excluded from FDF file, then UEFI- > compliant binary will be > +# generated for it, but the binary will not be put into any firmware > volume. > +# > +######################################################### > ############## > +############################ > -- > 2.21.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#40302): https://edk2.groups.io/g/devel/message/40302 Mute This Topic: https://groups.io/mt/31551784/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.