]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Vlv2TbltDevicePkg/Capsule: Add Linux/LVFS generation scripts
authorMichael D Kinney <michael.d.kinney@intel.com>
Wed, 8 May 2019 22:16:31 +0000 (15:16 -0700)
committerMichael D Kinney <michael.d.kinney@intel.com>
Fri, 10 May 2019 02:58:06 +0000 (19:58 -0700)
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>
Reviewed-by: Zailiang Sun <zailiang.sun@intel.com>
Reviewed-by: Yi Qian <yi.qian@intel.com>
13 files changed:
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.bat
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.bat
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.bat
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleSampleColor.sh [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/Lvfs.ddf [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat [new file with mode: 0644]
Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml [new file with mode: 0644]
Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc [new file with mode: 0644]

index 187797e2845b0c18e17fbdb7190dffeb1b55c504..8f589565fa2c527011a2f2091687c3e9baecf907 100644 (file)
@@ -24,6 +24,12 @@ copy %WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\X64\CapsuleApp.efi %W
 \r
 call GenCapsuleMinnowMax.bat\r
 call GenCapsuleMinnowMaxRelease.bat\r
-call GenCapsuleSampleColor.bat Blue  149DA854-7D19-4FAA-A91E-862EA1324BE6\r
-call GenCapsuleSampleColor.bat Green 79179BFD-704D-4C90-9E02-0AB8D968C18A\r
-call GenCapsuleSampleColor.bat Red   72E2945A-00DA-448E-9AA7-075AD840F9D4\r
+call GenCapsuleSampleColor.bat Blue  149da854-7d19-4faa-a91e-862ea1324be6\r
+call GenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a\r
+call GenCapsuleSampleColor.bat Red   72e2945a-00da-448e-9aa7-075ad840f9d4\r
+\r
+call LvfsGenCapsuleMinnowMax.bat\r
+call LvfsGenCapsuleMinnowMaxRelease.bat\r
+call LvfsGenCapsuleSampleColor.bat Blue  149da854-7d19-4faa-a91e-862ea1324be6\r
+call LvfsGenCapsuleSampleColor.bat Green 79179bfd-704d-4c90-9e02-0ab8d968c18a\r
+call LvfsGenCapsuleSampleColor.bat Red   72e2945a-00da-448e-9aa7-075ad840f9d4\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh
new file mode 100644 (file)
index 0000000..0400245
--- /dev/null
@@ -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
index 50ebb160ee5fdaa3ace149e6efb0b9ab7793bb5b..6e4afd201ee3a5b08bc4d4f66f96ea8d8f8ef2ae 100644 (file)
@@ -11,8 +11,8 @@ setlocal
 set FMP_CAPSULE_VENDOR=Intel\r
 set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4\r
 set FMP_CAPSULE_FILE=MinnowMax.cap\r
-set FMP_CAPSULE_VERSION=0x00000009\r
-set FMP_CAPSULE_STRING=0.0.0.9\r
+set FMP_CAPSULE_VERSION=0x0000000C\r
+set FMP_CAPSULE_STRING=0.0.0.12\r
 set FMP_CAPSULE_NAME="Intel MinnowMax DEBUG UEFI %FMP_CAPSULE_STRING%"\r
 set FMP_CAPSULE_LSV=0x00000000\r
 set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMax.sh
new file mode 100644 (file)
index 0000000..4fb963c
--- /dev/null
@@ -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
+
index 9d08c8671787825e654747cd667e6b40719cb52f..43c609e4b27479986f4112ffbac664cb99bb5c04 100644 (file)
@@ -11,8 +11,8 @@ setlocal
 set FMP_CAPSULE_VENDOR=Intel\r
 set FMP_CAPSULE_GUID=4096267B-DA0A-42EB-B5EB-FEF31D207CB4\r
 set FMP_CAPSULE_FILE=MinnowMaxRelease.cap\r
-set FMP_CAPSULE_VERSION=0x00000009\r
-set FMP_CAPSULE_STRING=0.0.0.9\r
+set FMP_CAPSULE_VERSION=0x0000000C\r
+set FMP_CAPSULE_STRING=0.0.0.12\r
 set FMP_CAPSULE_NAME="Intel MinnowMax RELEASE UEFI %FMP_CAPSULE_STRING%"\r
 set FMP_CAPSULE_LSV=0x00000000\r
 set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleMinnowMaxRelease.sh
new file mode 100644 (file)
index 0000000..29d46da
--- /dev/null
@@ -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 (file)
index 0000000..a1c6f28
--- /dev/null
@@ -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 (file)
index 0000000..f2c925a
--- /dev/null
@@ -0,0 +1,14 @@
+.OPTION EXPLICIT ; Generate errors on variable typos\r
+\r
+.Set CabinetNameTemplate=firmware.cab ; The name of the file\r
+.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory\r
+.Set Cabinet=on ;\r
+.Set Compress=on ;\r
+.Set DiskDirectory1=.\r
+.Set MaxDiskSize=99999744               ; multiple of 512\r
+\r
+;*** Files to zip ;\r
+;\r
+firmware.bin\r
+firmware.metainfo.xml\r
+;***\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMax.bat
new file mode 100644 (file)
index 0000000..dd8274a
--- /dev/null
@@ -0,0 +1,139 @@
+@REM @file\r
+@REM   Windows batch file to generate UEFI capsules for system firmware\r
+@REM\r
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+@REM\r
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
+@REM\r
+\r
+@echo off\r
+setlocal\r
+\r
+set FMP_CAPSULE_VENDOR=Intel\r
+set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4\r
+set FMP_CAPSULE_BASE_NAME=MinnowMax\r
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap\r
+set FMP_CAPSULE_VERSION=0x0000000C\r
+set FMP_CAPSULE_VERSION_DECIMAL=12\r
+set FMP_CAPSULE_STRING=0.0.0.12\r
+set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% DEBUG UEFI %FMP_CAPSULE_STRING%"\r
+set FMP_CAPSULE_LSV=0x00000000\r
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+set FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\DEBUG_VS2015x86\FV\Vlv.ROM\r
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+\r
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b\r
+\r
+if exist "%FMP_CAPSULE_KEY%" (\r
+  REM\r
+  REM Sign capsule using signtool\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^\r
+    --pfx-file %FMP_CAPSULE_KEY% ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+if exist "NewCert.pem" (\r
+  REM\r
+  REM Sign capsule using OpenSSL with a new certificate\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signer-private-cert=NewCert.pem ^\r
+    --other-public-cert=NewSub.pub.pem ^\r
+    --trusted-public-cert=NewRoot.pub.pem ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+REM\r
+REM Sign capsule using OpenSSL with EDK II Test Certificate\r
+REM\r
+call GenerateCapsule ^\r
+  --encode ^\r
+  -v ^\r
+  --guid %FMP_CAPSULE_GUID% ^\r
+  --fw-version %FMP_CAPSULE_VERSION% ^\r
+  --lsv %FMP_CAPSULE_LSV% ^\r
+  --capflag PersistAcrossReset ^\r
+  --capflag InitiateReset ^\r
+  --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^\r
+  --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^\r
+  --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^\r
+  -o %FMP_CAPSULE_FILE% ^\r
+  %FMP_CAPSULE_PAYLOAD%\r
+\r
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\r
+\r
+copy %FMP_CAPSULE_FILE% firmware.bin\r
+copy template.metainfo.xml firmware.metainfo.xml\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+makecab /f Lvfs.ddf\r
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+erase firmware.cab\r
+erase setup.inf\r
+erase setup.rpt\r
+\r
+erase firmware.metainfo.xml\r
+erase firmware.bin\r
+erase %FMP_CAPSULE_FILE%\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleMinnowMaxRelease.bat
new file mode 100644 (file)
index 0000000..2b68a98
--- /dev/null
@@ -0,0 +1,139 @@
+@REM @file\r
+@REM   Windows batch file to generate UEFI capsules for system firmware\r
+@REM\r
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+@REM\r
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
+@REM\r
+\r
+@echo off\r
+setlocal\r
+\r
+set FMP_CAPSULE_VENDOR=Intel\r
+set FMP_CAPSULE_GUID=4096267b-da0a-42eb-b5eb-fef31d207cb4\r
+set FMP_CAPSULE_BASE_NAME=MinnowMaxRelease\r
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap\r
+set FMP_CAPSULE_VERSION=0x0000000C\r
+set FMP_CAPSULE_VERSION_DECIMAL=12\r
+set FMP_CAPSULE_STRING=0.0.0.12\r
+set FMP_CAPSULE_NAME="Intel %FMP_CAPSULE_BASE_NAME% RELEASE UEFI %FMP_CAPSULE_STRING%"\r
+set FMP_CAPSULE_LSV=0x00000000\r
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+set FMP_CAPSULE_PAYLOAD=%WORKSPACE%\Build\Vlv2TbltDevicePkg\RELEASE_VS2015x86\FV\Vlv.ROM\r
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+\r
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit /b\r
+\r
+if exist "%FMP_CAPSULE_KEY%" (\r
+  REM\r
+  REM Sign capsule using signtool\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^\r
+    --pfx-file %FMP_CAPSULE_KEY% ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+if exist "NewCert.pem" (\r
+  REM\r
+  REM Sign capsule using OpenSSL with a new certificate\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signer-private-cert=NewCert.pem ^\r
+    --other-public-cert=NewSub.pub.pem ^\r
+    --trusted-public-cert=NewRoot.pub.pem ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+REM\r
+REM Sign capsule using OpenSSL with EDK II Test Certificate\r
+REM\r
+call GenerateCapsule ^\r
+  --encode ^\r
+  -v ^\r
+  --guid %FMP_CAPSULE_GUID% ^\r
+  --fw-version %FMP_CAPSULE_VERSION% ^\r
+  --lsv %FMP_CAPSULE_LSV% ^\r
+  --capflag PersistAcrossReset ^\r
+  --capflag InitiateReset ^\r
+  --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^\r
+  --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^\r
+  --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^\r
+  -o %FMP_CAPSULE_FILE% ^\r
+  %FMP_CAPSULE_PAYLOAD%\r
+\r
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\r
+\r
+copy %FMP_CAPSULE_FILE% firmware.bin\r
+copy template.metainfo.xml firmware.metainfo.xml\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+makecab /f Lvfs.ddf\r
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+erase firmware.cab\r
+erase setup.inf\r
+erase setup.rpt\r
+\r
+erase firmware.metainfo.xml\r
+erase firmware.bin\r
+erase %FMP_CAPSULE_FILE%\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/LvfsGenCapsuleSampleColor.bat
new file mode 100644 (file)
index 0000000..1dbbe73
--- /dev/null
@@ -0,0 +1,145 @@
+@REM @file\r
+@REM   Windows batch file to generate UEFI capsules for a sample device\r
+@REM\r
+@REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+@REM\r
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
+@REM\r
+\r
+@echo off\r
+setlocal\r
+\r
+set COLOR=%1\r
+\r
+set FMP_CAPSULE_VENDOR=Intel\r
+set FMP_CAPSULE_GUID=%2\r
+set FMP_CAPSULE_BASE_NAME=%COLOR%\r
+set FMP_CAPSULE_FILE=%FMP_CAPSULE_BASE_NAME%.cap\r
+set FMP_CAPSULE_VERSION=0x00000010\r
+set FMP_CAPSULE_VERSION_DECIMAL=16\r
+set FMP_CAPSULE_STRING=0.0.0.16\r
+set FMP_CAPSULE_NAME="%FMP_CAPSULE_BASE_NAME% Progress Bar %FMP_CAPSULE_STRING%"\r
+set FMP_CAPSULE_LSV=0x00000000\r
+set FMP_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+set FMP_CAPSULE_PAYLOAD=Payload.bin\r
+set WINDOWS_CAPSULE_KEY=SAMPLE_DEVELOPMENT.pfx\r
+\r
+echo "%COLOR% Progress Bar" > %FMP_CAPSULE_PAYLOAD%\r
+\r
+if not exist "%FMP_CAPSULE_PAYLOAD%" exit\r
+\r
+if exist "%FMP_CAPSULE_KEY%" (\r
+  REM\r
+  REM Sign capsule using signtool\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signing-tool-path="c:\Program Files (x86)\Windows Kits\8.1\bin\x86" ^\r
+    --pfx-file %FMP_CAPSULE_KEY% ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\SampleDevelopment\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+if exist "NewCert.pem" (\r
+  REM\r
+  REM Sign capsule using OpenSSL with a new certificate\r
+  REM\r
+  call GenerateCapsule ^\r
+    --encode ^\r
+    -v ^\r
+    --guid %FMP_CAPSULE_GUID% ^\r
+    --fw-version %FMP_CAPSULE_VERSION% ^\r
+    --lsv %FMP_CAPSULE_LSV% ^\r
+    --capflag PersistAcrossReset ^\r
+    --capflag InitiateReset ^\r
+    --signer-private-cert=NewCert.pem ^\r
+    --other-public-cert=NewSub.pub.pem ^\r
+    --trusted-public-cert=NewRoot.pub.pem ^\r
+    -o %FMP_CAPSULE_FILE% ^\r
+    %FMP_CAPSULE_PAYLOAD%\r
+\r
+  copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\NewCert\r
+\r
+  copy %FMP_CAPSULE_FILE% firmware.bin\r
+  copy template.metainfo.xml firmware.metainfo.xml\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+  makecab /f Lvfs.ddf\r
+  copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+  erase firmware.cab\r
+  erase setup.inf\r
+  erase setup.rpt\r
+\r
+  erase firmware.metainfo.xml\r
+  erase firmware.bin\r
+  erase %FMP_CAPSULE_FILE%\r
+)\r
+\r
+REM\r
+REM Sign capsule using OpenSSL with EDK II Test Certificate\r
+REM\r
+call GenerateCapsule ^\r
+  --encode ^\r
+  -v ^\r
+  --guid %FMP_CAPSULE_GUID% ^\r
+  --fw-version %FMP_CAPSULE_VERSION% ^\r
+  --lsv %FMP_CAPSULE_LSV% ^\r
+  --capflag PersistAcrossReset ^\r
+  --capflag InitiateReset ^\r
+  --signer-private-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestCert.pem ^\r
+  --other-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestSub.pub.pem ^\r
+  --trusted-public-cert=%WORKSPACE%\edk2\BaseTools\Source\Python\Pkcs7Sign\TestRoot.pub.pem ^\r
+  -o %FMP_CAPSULE_FILE% ^\r
+  %FMP_CAPSULE_PAYLOAD%\r
+\r
+copy %FMP_CAPSULE_FILE% %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\r
+\r
+copy %FMP_CAPSULE_FILE% firmware.bin\r
+copy template.metainfo.xml firmware.metainfo.xml\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_GUID', '%FMP_CAPSULE_GUID%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_BASE_NAME', '%FMP_CAPSULE_BASE_NAME%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_VERSION_DECIMAL', '%FMP_CAPSULE_VERSION_DECIMAL%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_STRING', '%FMP_CAPSULE_STRING%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+powershell -Command "(gc firmware.metainfo.xml) -replace 'FMP_CAPSULE_DATE', '%date%' | Out-File firmware.metainfo.xml -encoding ASCII"\r
+makecab /f Lvfs.ddf\r
+copy firmware.cab %WORKSPACE%\Build\Vlv2TbltDevicePkg\Capsules\TestCert\%FMP_CAPSULE_BASE_NAME%-%FMP_CAPSULE_STRING%.cab\r
+\r
+erase firmware.cab\r
+erase setup.inf\r
+erase setup.rpt\r
+\r
+erase firmware.metainfo.xml\r
+erase firmware.bin\r
+erase %FMP_CAPSULE_FILE%\r
+\r
+erase %FMP_CAPSULE_PAYLOAD%\r
diff --git a/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml b/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/template.metainfo.xml
new file mode 100644 (file)
index 0000000..5d550c1
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<component type="firmware">\r
+  <id>com.intel.FMP_CAPSULE_BASE_NAME.firmware</id>\r
+  <name>FMP_CAPSULE_BASE_NAME</name>\r
+  <summary>System firmware for the FMP_CAPSULE_BASE_NAME</summary>\r
+  <description>\r
+    Description of System firmware for the FMP_CAPSULE_BASE_NAME\r
+  </description>\r
+  <provides>\r
+    <firmware type="flashed">FMP_CAPSULE_GUID</firmware>\r
+  </provides>\r
+  <url type="homepage">http://www.tianocore.org</url>\r
+  <metadata_license>CC0-1.0</metadata_license>\r
+  <project_license>BSD</project_license>\r
+  <developer_name>Tianocore</developer_name>\r
+  <releases>\r
+    <release version="FMP_CAPSULE_VERSION_DECIMAL" date="FMP_CAPSULE_DATE">\r
+      <description>\r
+        Build FMP_CAPSULE_STRING\r
+      </description>\r
+    </release>\r
+  </releases>\r
+  <!-- most OEMs do not need to do this... -->\r
+  <custom>\r
+    <value key="LVFS::InhibitDownload"/>\r
+  </custom>\r
+</component>\r
diff --git a/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc b/Vlv2TbltDevicePkg/PlatformCapsuleGcc.dsc
new file mode 100644 (file)
index 0000000..1856ac3
--- /dev/null
@@ -0,0 +1,38 @@
+#/** @file\r
+# Platform capsule description.\r
+#\r
+# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+#**/\r
+\r
+[Defines]\r
+  PLATFORM_NAME                  = Vlv2TbltDevicePkg\r
+  PLATFORM_GUID                  = EE87F258-6ECC-4415-B1D8-23771BEE26E7\r
+  PLATFORM_VERSION               = 0.1\r
+  FLASH_DEFINITION               = Vlv2TbltDevicePkg/PlatformCapsuleGcc.fdf\r
+  OUTPUT_DIRECTORY               = Build/Vlv2TbltDevicePkg\r
+  SUPPORTED_ARCHITECTURES        = IA32|X64\r
+  BUILD_TARGETS                  = DEBUG|RELEASE\r
+  SKUID_IDENTIFIER               = DEFAULT\r
+  POSTBUILD                      = Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule/GenCapsuleAll.sh\r
+\r
+###################################################################################################\r
+#\r
+# Components Section - list of the modules and components that will be processed by compilation\r
+#                      tools and the EDK II tools to generate PE32/PE32+/Coff image files.\r
+#\r
+# Note: The EDK II DSC file is not used to specify how compiled binary images get placed\r
+#       into firmware volume images. This section is just a list of modules to compile from\r
+#       source into UEFI-compliant binaries.\r
+#       It is the FDF file that contains information on combining binary files into firmware\r
+#       volume images, whose concept is beyond UEFI and is described in PI specification.\r
+#       Binary modules do not need to be listed in this section, as they should be\r
+#       specified in the FDF file. For example: Shell binary, FAT binary (Fat.efi),\r
+#       Logo (Logo.bmp), and etc.\r
+#       There may also be modules listed in this section that are not required in the FDF file,\r
+#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be\r
+#       generated for it, but the binary will not be put into any firmware volume.\r
+#\r
+###################################################################################################\r