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>
Reviewed-by: Zailiang Sun <zailiang.sun@intel.com>
Reviewed-by: Yi Qian <yi.qian@intel.com>
This commit is contained in:
Michael D Kinney 2019-05-08 15:16:31 -07:00
parent f2197f0d0c
commit 1bb262ea04
13 changed files with 743 additions and 7 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
;***

View File

@ -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%

View File

@ -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%

View File

@ -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%

View File

@ -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>

View File

@ -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.
#
###################################################################################################