shift\r
goto OptLoop\r
)\r
+if /i "%~1"=="/yL" (\r
+ set Stitch_Flags=%Stitch_Flags% /yL\r
+ shift\r
+ goto OptLoop\r
+)\r
+\r
\r
:: Require 2 input parameters\r
if "%~2"=="" goto Usage\r
:: Assign required arguments\r
set Platform_Type=%~1\r
set Build_Target=%~2\r
+\r
if "%~3"=="" (\r
set "IFWI_Suffix= "\r
) else set "IFWI_Suffix=/S %~3"\r
echo.\r
echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget [IFWI Suffix]\r
echo.\r
-echo /q Quiet mode. Only display Fatal Errors (slightly faster)\r
-echo /l Log a copy of the build output to EDK2.log\r
echo /c CleanAll before building\r
-echo /ecp ECP build enable\r
-echo /src Build silicon source code (default binary)\r
echo /x64 Set Arch to X64 (default: X64)\r
echo /IA32 Set Arch to IA32 (default: X64)\r
-echo /nG Do NOT update the GOP driver when stitching (ie keep src version)\r
-echo /nM Do NOT update the Microcode when stitching (ie keep src version)\r
-echo /nB Do NOT create a backup of BIOS.ROM before modifying it for Stitch\r
+echo /yL Enable SPI lock\r
echo. \r
echo Platform Types: MNW2\r
echo Build Targets: Release, Debug\r
echo
echo "Script to build BIOS firmware and stitch the entire IFWI."
echo
- echo "Usage: Build_IFWI.bat PlatformType BuildTarget "
+ echo "Usage: Build_IFWI.bat [options] PlatformType BuildTarget "
echo
echo
+ echo " /yL [option] : Enable SPI lock"
echo " Platform Types: MNW2"
echo " Build Targets: Release, Debug"
echo
elif [ "$1" == "/nV" ]; then
Stitch_Flags="$Stitch_Flags /nV"
shift
+ elif [ "$1" == "/yL" ]; then
+ Build_Flags="$Build_Flags /yL"
+ shift
else
break
fi
set exitCode=0\r
set BackupRom=1\r
set UpdateVBios=1\r
+set SpiLock=0\r
set Stitch_Config=Stitch_Config.txt\r
copy /y nul Stitching.log >nul\r
\r
shift\r
goto OptLoop\r
)\r
+if /i "%~1"=="/yL" (\r
+ set SpiLock=1\r
+ shift\r
+ goto OptLoop\r
+)\r
+\r
if /i "%~1"=="/B" (\r
if "%~2"=="" goto Usage\r
if not exist %~2 echo BIOS not found. & goto Usage\r
)\r
)\r
\r
+if %SpiLock% EQU 1 (\r
+ set IFWI_HEADER_FILE=IFWIHeader\!IFWI_HEADER!_SPILOCK.bin\r
+) else (\r
+ set IFWI_HEADER_FILE=IFWIHeader\!IFWI_HEADER!.bin\r
+)\r
\r
:: **********************************************************************\r
:: The Main Stitching Loop\r
echo.\r
echo Stitching IFWI for !BIOS_Rom! ...\r
echo ---------------------------------------------------------------------------\r
- echo IFWI Header: !IFWI_HEADER!.bin, SEC version: !SEC_VERSION!, \r
+ echo IFWI Header: !IFWI_HEADER_FILE!, SEC version: !SEC_VERSION!, \r
echo BIOS Version: !BIOS_Version!\r
\r
echo Platform Type: !Platform_Type!, IFWI Prefix: %BIOS_ID%\r
echo.\r
echo Generating IFWI... %BIOS_ID%.bin\r
echo.\r
- copy /b/y IFWIHeader\!IFWI_HEADER!.bin + ..\..\Vlv2MiscBinariesPkg\SEC\!SEC_VERSION!\VLV_SEC_REGION.bin + IFWIHeader\Vacant.bin + !BIOS_Rom! %BIOS_ID%.bin\r
+ \r
+ copy /b/y !IFWI_HEADER_FILE! + ..\..\Vlv2MiscBinariesPkg\SEC\!SEC_VERSION!\VLV_SEC_REGION.bin + ..\..\Vlv2MiscBinariesPkg\SEC\!SEC_VERSION!\Vacant.bin + !BIOS_Rom! %BIOS_ID%.bin\r
echo.\r
echo ===========================================================================\r
)\r
Build_Flags=
exitCode=0
Arch=X64
+SpiLock=0
## Clean up previous build files.
if [ -e $(pwd)/EDK2.log ]; then
elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then
Arch=X64
shift
+ elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/YL" ]; then
+ SpiLock=1
+ shift
else
break
fi
echo "Invoking EDK2 build..."
build
+if [ $SpiLock == "1" ]; then
+ IFWI_HEADER_FILE=./$PLATFORM_PACKAGE/Stitch/IFWIHeader/IFWI_HEADER_SPILOCK.bin
+else
+ IFWI_HEADER_FILE=./$PLATFORM_PACKAGE/Stitch/IFWIHeader/IFWI_HEADER.bin
+fi
+
+echo $IFWI_HEADER_FILE
##**********************************************************************
## Post Build processing and cleanup
BIOS_ID="$BOARD_ID"_"$Arch"_"$BUILD_TYPE"_"$VERSION_MAJOR"_"$VERSION_MINOR"_GCC.bin
cp -f $BUILD_PATH/FV/VLV.fd $WORKSPACE/$BIOS_Name
SEC_VERSION=1.0.2.1067
-cat ./$PLATFORM_PACKAGE/Stitch/IFWIHeader/IFWI_HEADER.bin ./Vlv2MiscBinariesPkg/SEC/$SEC_VERSION/VLV_SEC_REGION.bin ./$PLATFORM_PACKAGE/Stitch/IFWIHeader/Vacant.bin $BIOS_Name > ./$PLATFORM_PACKAGE/Stitch/$BIOS_ID
+cat $IFWI_HEADER_FILE ./Vlv2MiscBinariesPkg/SEC/$SEC_VERSION/VLV_SEC_REGION.bin ./Vlv2MiscBinariesPkg/SEC/$SEC_VERSION/Vacant.bin $BIOS_Name > ./$PLATFORM_PACKAGE/Stitch/$BIOS_ID
echo Skip "Running BIOS_Signing ..."