Reviewed-by: David Wei <david....@intel.com> Thanks, David Wei
Intel SSG/STO/UEFI BIOS From: Steele, Kelly Sent: Friday, September 21, 2018 1:58 AM To: edk2-devel@lists.01.org Cc: Wei, David <david....@intel.com>; Guo, Mang <mang....@intel.com> Subject: [PATCH] [edk2-platforms/devel-IntelAtomProcessorE3900] Clean up build scripts >From 62aef5b6fdb4e85878bafed4ab9c41631689b69d Mon Sep 17 00:00:00 2001 From: Kelly Steele <kelly.ste...@intel.com<mailto:kelly.ste...@intel.com>> Date: Thu, 20 Sep 2018 10:47:06 -0700 Subject: [PATCH] [edk2-platforms/devel-IntelAtomProcessorE3900] Clean up build scripts Went thru the build scripts and cleaned them up. There was a couple of "magic" numbers being used in BuildBxtBios.bat that are derived from defines.dsc. I switched from "magic" numbers to parsing defines.dsc to use what is set there. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Kelly Steele <kelly.ste...@intel.com<mailto:kelly.ste...@intel.com>> --- BuildBIOS.bat | 12 +- Platform/BroxtonPlatformPkg/BuildBxtBios.bat | 232 ++++++++----- Platform/BroxtonPlatformPkg/BuildIFWI.bat | 497 ++++++++++++++------------- 3 files changed, 410 insertions(+), 331 deletions(-) diff --git a/BuildBIOS.bat b/BuildBIOS.bat index d8275aca14..500c2244c9 100644 --- a/BuildBIOS.bat +++ b/BuildBIOS.bat @@ -34,13 +34,14 @@ echo ---- Call Build Script of Broxton ---- if not exist Platform\%PlatformName%PlatformPkg\BuildIFWI.bat ( echo Platform %PlatformName%PlatformPkg does not exist - echo. & echo Error - Unsupported Platform name: %1 + echo. & echo Error - Unsupported Platform name: %1 echo. goto Usage ) -echo calling : Platform\%PlatformName%PlatformPkg\BuildIFWI.bat %BuildFlags% /fspw MINN %BuildTarget% -call Platform\%PlatformName%PlatformPkg\BuildIFWI.bat %BuildFlags% /fspw MINN %BuildTarget% +echo calling : Platform\%PlatformName%PlatformPkg\BuildIFWI.bat %BuildFlags% /fspw MINN %BuildTarget% +call Platform\%PlatformName%PlatformPkg\BuildIFWI.bat %BuildFlags% /fspw MINN %BuildTarget% +set ExitCode=%ErrorLevel% goto Exit @@ -75,4 +76,7 @@ echo %thisscript% /vs13 /LH /B /x64 Broxton Debug set exitCode=1 :Exit -exit /b %exitCode% +( + EndLocal + exit /b %exitCode% +) diff --git a/Platform/BroxtonPlatformPkg/BuildBxtBios.bat b/Platform/BroxtonPlatformPkg/BuildBxtBios.bat index 9858ceae58..2bc2556a8a 100644 --- a/Platform/BroxtonPlatformPkg/BuildBxtBios.bat +++ b/Platform/BroxtonPlatformPkg/BuildBxtBios.bat @@ -73,8 +73,9 @@ set FSP_BIN_PKG_NAME=BroxtonFspBinPkg set STITCH_PATH=%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\Stitch set ResetVectorPath=%WORKSPACE%\%PLATFORM_RC_PACKAGE%\Cpu\ResetVector -PATH=%PATH%;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\GenBiosId;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\nasm\Win32 -PATH=%PATH%;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\FCE;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\nasm\Win32 +PATH=%PATH%;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\FCE +PATH=%PATH%;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\GenBiosId +PATH=%PATH%;%WORKSPACE%\%PLATFORM_PATH%\Common\Tools\nasm\Win32 ::********************************************************************** :: Parse command line arguments @@ -268,8 +269,8 @@ if "%Arch%"=="IA32" ( echo DEFINE X64_CONFIG = TRUE >> %Build_Macros% ) -echo DEFINE UP2_BOARD = %UP2_BOARD% >> %Build_Macros% -echo DEFINE MINNOW3_MODULE_BOARD = %MINNOW3_MODULE_BOARD% >> %Build_Macros% +echo DEFINE UP2_BOARD = %UP2_BOARD% >> %Build_Macros% +echo DEFINE MINNOW3_MODULE_BOARD = %MINNOW3_MODULE_BOARD% >> %Build_Macros% ::Stage of copy of BiosId.env in Conf/ with Platform_Type and Build_Target values removed @@ -288,43 +289,63 @@ if /i "%~2" == "RELEASE" ( echo BUILD_TYPE = D >> Conf\BiosId.env ) -if %BoardId%==BG ( - if %FabId%==B ( +if "%BoardId%" == "BG" ( + if "%FabId%" == "A" ( + echo BOARD_REV = A >> Conf\BiosId.env + ) else if "%FabId%" == "B" ( echo BOARD_REV = B >> Conf\BiosId.env ) else ( - echo BOARD_REV = A >> Conf\BiosId.env + echo ERROR: Benson Glacier currently only supports Board Fab A & B^^^! + goto BldFail ) ) -if %BoardId%==AG ( - echo BOARD_REV = A >> Conf\BiosId.env +if "%BoardId%" == "AG" ( + if "%FabId%" == "A" ( + echo BOARD_REV = A >> Conf\BiosId.env + ) else ( + echo ERROR: Aurora Glacier currently only supports Board Fab A^^^! + goto BldFail + ) ) -if %BoardId%==MN ( - if %FabId%==B ( +if "%BoardId%" == "MN" ( + if "%FabId%" == "A" ( + echo BOARD_REV = A >> Conf\BiosId.env + ) else if "%FabId%" == "B" ( echo BOARD_REV = B >> Conf\BiosId.env ) else ( - echo BOARD_REV = A >> Conf\BiosId.env + echo ERROR: Minnow Baord v3 currently only supports Board Fab A & B^^^! + goto BldFail ) ) -if %BoardId%==MX ( - if %FabId%==C ( +if "%BoardId%" == "MX" ( + if "%FabId%" == "A" ( + echo BOARD_REV = A >> Conf\BiosId.env + ) else if "%FabId%" == "C" ( echo BOARD_REV = C >> Conf\BiosId.env ) else ( - echo BOARD_REV = A >> Conf\BiosId.env + echo ERROR: Minnow Baord v3 Module currently only supports Board Fab A, B & C^^^! + goto BldFail ) ) -if %BoardId%==LH ( - if %FabId%==D ( +if "%BoardId%" == "LH" ( + if "%FabId%" == "D" ( echo BOARD_REV = D >> Conf\BiosId.env + ) else ( + echo ERROR: Leaf Hill currently only supports Board Fab D^^^! + goto BldFail ) ) -if %BoardId%==UP ( - if %FabId%==A ( +if "%BoardId%" == "UP" ( + if "%FabId%" == "A" ( echo BOARD_REV = A >> Conf\BiosId.env + ) else ( + echo ERROR: Up Squared currently only supports Board Fab A^^^! + goto BldFail ) ) @@ -477,17 +498,93 @@ if not exist "%AutoGenPath%" ( ) findstr /L "_PCD_VALUE_" %AutoGenPath% > %STITCH_PATH%\FlashMap.h +:: +:: NOTE: This cannot be inside an if..then block. It freaks out at the PowerShell execution. +:: +if not exist "%STITCH_PATH%\FlashMap.h" ( + echo ERROR: Couldn't find %STITCH_PATH%\FlashMap.h + goto BldFail +) + echo. + echo Get NvStorage magic numbers... + :: + :: %STITCH_PATH%\FlashMap.h has the information for the magic numbers below. Parse it. + :: You'll need to account for both hex (0x000000) and int (1234567U) value types + :: FLASH_REGION_VPD_OFFSET + :: _PCD_VALUE_PcdFlashNvStorageBase - _PCD_VALUE_PcdFlashBaseAddress + :: FLASH_REGION_VPD_SIZE + FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_SIZE + FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_SIZE + :: _PCD_VALUE_PcdFlashNvStorageSize + :: + :: Variable to find Position Variable File to search + ::=========================================================================================================== + call :FindVariableInFile _PCD_VALUE_PcdFlashNvStorageBase 3 NvStorageBase "%STITCH_PATH%\FlashMap.h" + call :FindVariableInFile _PCD_VALUE_PcdFlashBaseAddress 3 BaseAddress "%STITCH_PATH%\FlashMap.h" + call :FindVariableInFile _PCD_VALUE_PcdFlashNvStorageSize 3 NvStorageSize "%STITCH_PATH%\FlashMap.h" + :: Find image offset as opposed to memory offset + del /f /q temp.pcd >NUL 2>&1 + PowerShell ([uint32]$env:NvStorageBase - [uint32]$env:BaseAddress) > temp.pcd + set /p VpdOffset=<temp.pcd + del /f /q temp.pcd >NUL 2>&1 + :: Force the variables we care about into DEC string format + set VpdSize=%NvStorageSize% + call :ForceToDec VpdOffset + call :ForceToDec VpdSize + :: Dump what we found + echo - NvStorageBase = %NvStorageBase% + echo - BaseAddress = %BaseAddress% + echo - NvStorageSize = %NvStorageSize% + echo - VpdOffset = %VpdOffset% + echo - VpdSize = %VpdSize% + echo. + +:: +:: NOTE: This cannot be inside an if..then block. It freaks out at the PowerShell execution. +:: +if not exist "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" ( + echo ERROR: Couldn't find %WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc + goto BldFail +) + echo. + echo Get FSP magic number for rebase... + :: + :: 0xFEF7C000 = gIntelFsp2WrapperTokenSpaceGuid.PcdFlashFvFspBase = $(CAR_BASE_ADDRESS) + $(BLD_RAM_DATA_SIZE) + $(FSP_RAM_DATA_SIZE) + $(FSP_EMP_DATA_SIZE) + $(BLD_IBBM_SIZE) + :: %PLATFORM_PATH%\PlatformDsc\Defines.dsc has the information needed to calculate this magic number. Use it. + :: + :: Variable to find Position Variable File to search + :: ======================================================================================================================== + call :FindVariableInFile CAR_BASE_ADDRESS 4 CarBaseAddress "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" + call :FindVariableInFile BLD_RAM_DATA_SIZE 4 BldRamDataSize "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" + call :FindVariableInFile FSP_RAM_DATA_SIZE 4 FspRamDataSize "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" + call :FindVariableInFile FSP_EMP_DATA_SIZE 4 FspEmpDataSize "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" + call :FindVariableInFile BLD_IBBM_SIZE 4 BldIbbmSize "%WORKSPACE%\%PLATFORM_PATH%\PlatformDsc\Defines.dsc" + :: Dump what we found + echo - CAR_BASE_ADDRESS = %CarBaseAddress% + echo - BLD_RAM_DATA_SIZE = %BldRamDataSize% + echo - FSP_RAM_DATA_SIZE = %FspRamDataSize% + echo - FSP_EMP_DATA_SIZE = %FspEmpDataSize% + echo - BLD_IBBM_SIZE = %BldIbbmSize% + :: Find magic number + del /f /q temp.pcd >NUL 2>&1 + PowerShell ([uint32]$env:CarBaseAddress + [uint32]$env:BldRamDataSize + [uint32]$env:FspRamDataSize + [uint32]$env:FspEmpDataSize + [uint32]$env:BldIbbmSize) > temp.pcd + set /p FspBaseAddress=<temp.pcd + del /f /q temp.pcd >NUL 2>&1 + call :ForceToHex FspBaseAddress + echo - FspBaseAddress = %FspBaseAddress% + echo. + echo Running FCE... copy /b %BUILD_PATH%\FV\FvIBBM.fv + /b %BUILD_PATH%\FV\Soc.fd /b %BUILD_PATH%\FV\Temp.fd :: Extract Hii data from build and store a copy in HiiDefaultData.txt :: UQI 0006 005C 0078 0030 0031 0030 0031 is for question prompt(STR_IPU_ENABLED) :: First 0006 is the length of string; Next six byte values are mapped to STR_IPU_ENABLED string value defined in Platform\BroxtonPlatformPkg\Common\PlatformSettings\PlatformSetupDxe\VfrStrings.uni. fce.exe read -i %BUILD_PATH%\FV\Temp.fd 0006 005C 0078 0030 0031 0030 0031 > %BUILD_PATH%\FV\HiiDefaultData.txt 2>>EDK2.log +if ErrorLevel 1 goto BldFail :: Generate the Setup variable and save changes to BxtXXX.fd :: B73FE497-B92E-416e-8326-45AD0D270091 is the GUID of IBBM FV fce.exe update -i %BUILD_PATH%\FV\Temp.fd -s %BUILD_PATH%\FV\HiiDefaultData.txt -o %BUILD_PATH%\FV\Bxt%Arch%.fd -g B73FE497-B92E-416e-8326-45AD0D270091 -a 1>>EDK2.log 2>&1 -split -f %BUILD_PATH%\FV\Bxt%Arch%.fd -s 0x35000 -o %BUILD_PATH%\FV\FvIBBM.fv - +if ErrorLevel 1 goto BldFail +:: More magic numbers!!! +split -f %BUILD_PATH%\FV\Bxt%Arch%.fd -s %BldIbbmSize% -o %BUILD_PATH%\FV\FvIBBM.fv if ErrorLevel 1 goto BldFail @echo off @@ -496,13 +593,14 @@ if ErrorLevel 1 goto BldFail if "%BUILD_TYPE%"=="R" set BUILD_TYPE=R echo Copy BIOS... -echo BIOS_Name=%BOARD_ID%%BOARD_REV%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR% +echo BIOS_Name = [%BOARD_ID%%BOARD_REV%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR%] set BIOS_Name=%BOARD_ID%%BOARD_REV%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR% copy /y/b %BUILD_PATH%\FV\Soc.fd %STITCH_PATH%\%BIOS_Name%.ROM >nul copy /y %STITCH_PATH%\FlashMap.h %STITCH_PATH%\%BIOS_Name%.map >nul set Storage_Folder=%STITCH_PATH%\%BIOS_Name% if not exist %Storage_Folder% mkdir %Storage_Folder% +echo Storage_Folder = [%Storage_Folder%] copy /y/b %BUILD_PATH%\FV\FvIBBL.fv %Storage_Folder% >nul copy /y/b %BUILD_PATH%\FV\FvIBBM.fv %Storage_Folder% >nul @@ -512,50 +610,15 @@ copy /y/b %BUILD_PATH%\FV\FvOBBX.fv %Storage_Folder% >nul copy /y/b %BUILD_PATH%\FV\FvOBBY.fv %Storage_Folder% >nul if /i "%FSP_WRAPPER%" == "TRUE" ( -:: 0xFEF7A000 = gIntelFsp2WrapperTokenSpaceGuid.PcdFlashFvFspBase = $(CAR_BASE_ADDRESS) + $(BLD_RAM_DATA_SIZE) + $(FSP_RAM_DATA_SIZE) + $(FSP_EMP_DATA_SIZE) + $(BLD_IBBM_SIZE) - pushd %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin - python %CORE_PATH%\IntelFsp2Pkg\Tools\SplitFspBin.py rebase -f Fsp.fd -c m -b 0xFEF7A000 -o .\ -n ApolloLakeFsp.fd + pushd %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin + python %CORE_PATH%\IntelFsp2Pkg\Tools\SplitFspBin.py rebase -f Fsp.fd -c m -b %FspBaseAddress% -o .\ -n ApolloLakeFsp.fd python %CORE_PATH%\IntelFsp2Pkg\Tools\SplitFspBin.py split -f ApolloLakeFsp.fd -o .\ -n FSP.Fv - popd - copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_T.Fv %Storage_Folder%\FSP_T.Fv - copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_M.Fv %Storage_Folder%\FSP_M.Fv - copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_S.Fv %Storage_Folder%\FSP_S.Fv -) - -echo Get NvStorage Base and Size... -if not exist "%STITCH_PATH%\FlashMap.h" ( - echo ERROR: Couldn't find %STITCH_PATH%\FlashMap.h - goto BldFail + popd + copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_T.Fv %Storage_Folder%\FSP_T.Fv >nul + copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_M.Fv %Storage_Folder%\FSP_M.Fv >nul + copy /y/b %SILICON_PATH%\BroxtonFspPkg\ApolloLakeFspBinPkg\FspBin\FSP_S.Fv %Storage_Folder%\FSP_S.Fv >nul ) -::generate NvStorage.Fv -:: %STITCH_PATH%\FlashMap.h has the information for the magic numbers below. Parse it. -:: You'll need to account for both hex (0x000000) and int (1234567U) value types -:: FLASH_REGION_VPD_OFFSET -:: _PCD_VALUE_PcdFlashNvStorageBase - _PCD_VALUE_PcdFlashBaseAddress -:: FLASH_REGION_VPD_SIZE + FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_SIZE + FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_SIZE -:: _PCD_VALUE_PcdFlashNvStorageSize -:: -:: PCD to find Variable File to search -::=========================================================================================== - call :FindPcdInFile _PCD_VALUE_PcdFlashNvStorageBase NvStorageBase "%STITCH_PATH%\FlashMap.h" - call :FindPcdInFile _PCD_VALUE_PcdFlashBaseAddress BaseAddress "%STITCH_PATH%\FlashMap.h" - call :FindPcdInFile _PCD_VALUE_PcdFlashNvStorageSize NvStorageSize "%STITCH_PATH%\FlashMap.h" -:: Find image offset as opposed to memory offset - PowerShell ($env:NvStorageBase - $env:BaseAddress) > temp.pcd - set /p VpdOffset=<temp.pcd - del /f /q temp.pcd -:: Force the variables we care about into DEC string format - set VpdSize=%NvStorageSize% - call :ForceToDec VpdOffset - call :ForceToDec VpdSize -:: Dump what we found - echo - NvStorageBase = %NvStorageBase% - echo - BaseAddress = %BaseAddress% - echo - NvStorageSize = %NvStorageSize% - echo - VpdOffset = %VpdOffset% - echo - VpdSize = %VpdSize% - :: Create NvStorage.fv echo Create NvStorage.fv... pushd %STITCH_PATH% @@ -576,34 +639,43 @@ echo. goto Exit :: -:: Find PCD value (%~1) in a file (%~3) and return it in a variable (%~2) as a HEX string +:: Find variable value (%~1) at position %~2 in a file (%~4) and return it in an environment variable (%~3) as a HEX string :: -:: USAGE: call :FindPcdInFile PCD Variable File -:FindPcdInFile - call :GetPcd "%~1" "%~2" "%~3" - call :ForceToHex "%~2" +:: USAGE: call :FindVariableInFile VariableName Position Variable File +:FindVariableInFile + call :GetVariable "%~1" "%~2" "%~3" "%~4" + call :ForceToHex "%~3" +REM call set _Temp=%%%~3%% +REM echo [- %~3 = %_Temp%] +REM set _Temp= goto :EOF :: -:: Find PCD value (%~1) in a file (%~3) and return it in a variable (%~2) +:: Find variable value (%~1) at position %~2 in a file (%~4) and return it in an environment variable (%~3) :: -:: USAGE: call :GetPcd PCD Variable File -:GetPcd - set _TargetFile=%~3 +:: USAGE: call :GetVariable VariableName Position Variable File +:GetVariable + set _TargetFile=%~4 + set _Position=%~2 if not exist "%_TargetFile%" ( echo ERROR: Couldn't find %_TargetFile%^! set ExitCode=1 ) else ( - for /f "tokens=3" %%a in ('findstr /C:"%~1" "%_TargetFile%"') do ( + for /f "tokens=%_Position%" %%a in ('findstr /C:"%~1" "%_TargetFile%"') do ( set _TestValue=%%~a - set _PcdValue=!_TestValue:~0,-1! + if not "!_TestValue:~0,1!" == "$" ( + if /i "!_TestValue:~-1!" == "U" ( + set _VariableValue=!_TestValue:~0,-1! + ) else ( + set _VariableValue=!_TestValue! + ) + ) ) - set %~2=!_PcdValue! - echo %2 %_PcdValue% + set %~3=!_VariableValue! ) set _TargetFile= set _TestValue= - set _PcdValue= + set _VariableValue= goto :EOF :: @@ -613,9 +685,10 @@ goto :EOF :ForceToHex call set _Temp=%%%~1%% if "%_Temp:~0,2%" == "0x" goto :ForceToHexExit + del /f /q temp.pcd >nul 2>&1 PowerShell ('0x' + [convert]::tostring($env:_Temp, 16).ToUpper()) > temp.pcd set /p %~1=<temp.pcd - del /f /q temp.pcd + del /f /q temp.pcd >nul 2>&1 :ForceToHexExit set _Temp= goto :EOF @@ -627,9 +700,10 @@ goto :EOF :ForceToDec call set _Temp=%%%~1%% if not "%_Temp:~0,2%" == "0x" goto :ForceToDecExit + del /f /q temp.pcd >nul 2>&1 PowerShell ([convert]::toInt64((Get-Item env:_Temp).value, 16)) > temp.pcd set /p %~1=<temp.pcd - del /f /q temp.pcd + del /f /q temp.pcd >nul 2>&1 :ForceToDecExit set _Temp= goto :EOF diff --git a/Platform/BroxtonPlatformPkg/BuildIFWI.bat b/Platform/BroxtonPlatformPkg/BuildIFWI.bat index 32126937f8..7fcf66eed7 100644 --- a/Platform/BroxtonPlatformPkg/BuildIFWI.bat +++ b/Platform/BroxtonPlatformPkg/BuildIFWI.bat @@ -1,248 +1,249 @@ -@echo off -SetLocal EnableDelayedExpansion EnableExtensions - -:: Assign initial values -set thisscript=%0 -set exitCode=0 -set "Build_Flags= " -set "Stitch_Flags= " -set Arch=X64 -set SkipUsageFlag=FALSE -set FabId=B -set BoardId=MN -set buildthread= -cd .. -set WORKSPACE=%CD% -if %WORKSPACE:~-1%==\ ( - set WORKSPACE=%WORKSPACE:~0,-1% -) -echo %WORKSPACE% -set CORE_PATH=%WORKSPACE%\edk2 -set EDK_TOOLS_PATH=%CORE_PATH%\BaseTools -set PLATFORM_PATH=edk2-platforms\Platform\BroxtonPlatformPkg -set SILICON_PATH=edk2-platforms\Silicon\BroxtonSoC -set STITCH_PATH=%PLATFORM_PATH%\Common\Tools\Stitch - -set Minnow_RVP=MINN - -:: Parse Optional arguments -:OptLoop -if /i "%~1"=="" goto Usage -if /i "%~1"=="/?" goto Usage - -::Build Flags -if /i "%~1"=="/ia32" ( - set Arch=IA32 - set Build_Flags=%Build_Flags% /ia32 - shift - goto OptLoop -) -if /i "%~1"=="/x64" ( - set Arch=X64 - set Build_Flags=%Build_Flags% /x64 - shift - goto OptLoop -) - -if /i "%~1"=="/vs08" ( - set Build_Flags=%Build_Flags% /vs08 - shift - goto OptLoop -) -if /i "%~1"=="/vs10" ( - set Build_Flags=%Build_Flags% /vs10 - shift - goto OptLoop -) -if /i "%~1"=="/vs12" ( - set Build_Flags=%Build_Flags% /vs12 - shift - goto OptLoop -) -if /i "%~1"=="/vs13" ( - set Build_Flags=%Build_Flags% /vs13 - shift - goto OptLoop -) -if /i "%~1"=="/vs15" ( - set Build_Flags=%Build_Flags% /vs15 - shift - goto OptLoop -) -if /i "%~1"=="/FspW" ( - set Build_Flags=%Build_Flags% /FspW - shift - goto OptLoop -) -if /i "%~1"=="/A" ( - set FabId=A - set Build_Flags=%Build_Flags% /A - shift - goto OptLoop -) -if /i "%~1"=="/B" ( - set FabId=B - set Build_Flags=%Build_Flags% /B - shift - goto OptLoop -) -if /i "%~1"=="/C" ( - set FabId=C - set Build_Flags=%Build_Flags% /C - shift - goto OptLoop -) -if /i "%~1"=="/D" ( - set FabId=D - set Build_Flags=%Build_Flags% /D - shift - goto OptLoop -) -if /i "%~1"=="/MN" ( - set BoardId=MN - set Build_Flags=%Build_Flags% /MN - shift - goto OptLoop -) -if /i "%~1"=="/BG" ( - set BoardId=BG - set Build_Flags=%Build_Flags% /BG - shift - goto OptLoop -) - -if /i "%~1"=="/AG" ( - set BoardId=AG - set Build_Flags=%Build_Flags% /AG - shift - goto OptLoop -) - -if /i "%~1"=="/MX" ( - set BoardId=MX - set Build_Flags=%Build_Flags% /MX - shift - goto OptLoop -) - -if /i "%~1"=="/LH" ( - set BoardId=LH - set Build_Flags=%Build_Flags% /LH - shift - goto OptLoop -) - -if /i "%~1"=="/UP" ( - set BoardId=UP - set Build_Flags=%Build_Flags% /UP - shift - goto OptLoop -) - -if /i "%~1"=="/m" ( - set buildthread=/m - echo. - shift - goto OptLoop -) - -if /i "%~1"=="/L" ( - set Stitch_Flags=L - shift - goto OptLoop -) - -:: Require 2 input parameters -if "%~2"=="" ( - echo. & echo -- ERROR: Not Enough Arguments Provided - echo -- Please review the Help screen %thisscript% "/?" -- & echo. - goto exit -) - -:: Assign required arguments -set Platform_Type=%~1 -set Build_Target=%~2 - -:: Build BIOS -echo ================================================================================ -echo Build_IFWI: Calling BIOS build Script... -echo. - -echo - call BuildBxtBios.bat %buildthread% %Build_Flags% %Platform_Type% %Build_Target% -call %WORKSPACE%\%PLATFORM_PATH%\BuildBxtBios.bat %buildthread% %Build_Flags% %Platform_Type% %Build_Target% -if ErrorLevel 1 ( - echo echo -- Error Building BIOS & echo. - set exitCode=1 - goto exit -) - -echo ================================================================================ -echo. - -call Conf\BiosId.bat -echo BIOS_ID=%BIOS_ID% - -:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables -find /v "#" Conf\BiosId.env > ver_strings -for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j -del /f/q ver_strings >nul - -:: Translate Release Build Type -if "%BUILD_TYPE%"=="R" set BUILD_TYPE=R - -set BIOS_Name=%BOARD_ID%%BOARD_REV%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR% - -:: Start Integration process -echo ================================================================================ -echo Build_IFWI: Calling IFWI Stitching Script... -echo. -echo BIOS ROM input: %BIOS_Name% -echo. -pushd %STITCH_PATH% - echo - call IFWIStitch_Simple.bat %WORKSPACE%\%STITCH_PATH%\%BIOS_Name% %FabId% %BoardId% %Stitch_Flags% - call IFWIStitch_Simple.bat %WORKSPACE%\%STITCH_PATH%\%BIOS_Name% %FabId% %BoardId% %Stitch_Flags% - @echo off -popd -if ErrorLevel 1 ( - echo echo -- Error Stitching %BIOS_Name% & echo. - set exitCode=1 -) -echo. -echo Build_IFWI is finished. -echo The final IFWI file is located in %WORKSPACE%\%PLATFORM_PATH%\Common\Tools\Stitch\ -echo ====================================================================== - - -goto Exit - -:Usage -if /i "%SkipUsageFlag%" == "TRUE" goto Exit -echo Script to build BIOS firmware and stitch the entire IFWI. -echo. -echo Usage: %thisscript% [options] ^<PlatformType^> ^<BuildTarget^> -echo. -echo. /? Display this help text -echo /l Log a copy of the build output to EDK2.log -echo /c CleanAll before building -echo /m Set the build thread count to number of processors -echo /FspW Build FSP and FSP Wrapper -echo /x64 Set Arch to X64 (default) -echo /vs08 Set compiler to VisualStudio 2008 -echo /vs10 Set compiler to VisualStudio 2010 -echo /vs12 Set compiler to VisualStudio 2012 -echo /vs13 Set compiler to VisualStudio 2013 -echo /vs15 Set compiler to VisualStudio 2015 -echo. -echo Platform Types: %Minnow_RVP% -echo MINN - Minnow (ApolloLake) -echo. -echo Build Targets: Release, Debug -echo. -set exitCode=1 - -:Exit -( - EndLocal - set Arch=%Arch% - exit /b %exitCode% -) +@echo off +SetLocal EnableDelayedExpansion EnableExtensions + +:: Assign initial values +set thisscript=%0 +set exitCode=0 +set "Build_Flags= " +set "Stitch_Flags= " +set Arch=X64 +set SkipUsageFlag=FALSE +set FabId=B +set BoardId=MN +set buildthread= +cd .. +set WORKSPACE=%CD% +if %WORKSPACE:~-1%==\ ( + set WORKSPACE=%WORKSPACE:~0,-1% +) +echo %WORKSPACE% +set CORE_PATH=%WORKSPACE%\edk2 +set EDK_TOOLS_PATH=%CORE_PATH%\BaseTools +set PLATFORM_PATH=edk2-platforms\Platform\BroxtonPlatformPkg +set SILICON_PATH=edk2-platforms\Silicon\BroxtonSoC +set STITCH_PATH=%PLATFORM_PATH%\Common\Tools\Stitch + +set Minnow_RVP=MINN + +:: Parse Optional arguments +:OptLoop +if /i "%~1"=="" goto Usage +if /i "%~1"=="/?" goto Usage + +::Build Flags +if /i "%~1"=="/ia32" ( + set Arch=IA32 + set Build_Flags=%Build_Flags% /ia32 + shift + goto OptLoop +) +if /i "%~1"=="/x64" ( + set Arch=X64 + set Build_Flags=%Build_Flags% /x64 + shift + goto OptLoop +) + +if /i "%~1"=="/vs08" ( + set Build_Flags=%Build_Flags% /vs08 + shift + goto OptLoop +) +if /i "%~1"=="/vs10" ( + set Build_Flags=%Build_Flags% /vs10 + shift + goto OptLoop +) +if /i "%~1"=="/vs12" ( + set Build_Flags=%Build_Flags% /vs12 + shift + goto OptLoop +) +if /i "%~1"=="/vs13" ( + set Build_Flags=%Build_Flags% /vs13 + shift + goto OptLoop +) +if /i "%~1"=="/vs15" ( + set Build_Flags=%Build_Flags% /vs15 + shift + goto OptLoop +) +if /i "%~1"=="/FspW" ( + set Build_Flags=%Build_Flags% /FspW + shift + goto OptLoop +) +if /i "%~1"=="/A" ( + set FabId=A + set Build_Flags=%Build_Flags% /A + shift + goto OptLoop +) +if /i "%~1"=="/B" ( + set FabId=B + set Build_Flags=%Build_Flags% /B + shift + goto OptLoop +) +if /i "%~1"=="/C" ( + set FabId=C + set Build_Flags=%Build_Flags% /C + shift + goto OptLoop +) +if /i "%~1"=="/D" ( + set FabId=D + set Build_Flags=%Build_Flags% /D + shift + goto OptLoop +) +if /i "%~1"=="/MN" ( + set BoardId=MN + set Build_Flags=%Build_Flags% /MN + shift + goto OptLoop +) +if /i "%~1"=="/BG" ( + set BoardId=BG + set Build_Flags=%Build_Flags% /BG + shift + goto OptLoop +) + +if /i "%~1"=="/AG" ( + set BoardId=AG + set Build_Flags=%Build_Flags% /AG + shift + goto OptLoop +) + +if /i "%~1"=="/MX" ( + set BoardId=MX + set Build_Flags=%Build_Flags% /MX + shift + goto OptLoop +) + +if /i "%~1"=="/LH" ( + set BoardId=LH + set Build_Flags=%Build_Flags% /LH + shift + goto OptLoop +) + +if /i "%~1"=="/UP" ( + set BoardId=UP + set Build_Flags=%Build_Flags% /UP + shift + goto OptLoop +) + +if /i "%~1"=="/m" ( + set buildthread=/m + echo. + shift + goto OptLoop +) + +if /i "%~1"=="/L" ( + set Stitch_Flags=L + shift + goto OptLoop +) + +:: Require 2 input parameters +if "%~2"=="" ( + echo. & echo -- ERROR: Not Enough Arguments Provided + echo -- Please review the Help screen %thisscript% "/?" -- & echo. + goto exit +) + +:: Assign required arguments +set Platform_Type=%~1 +set Build_Target=%~2 + +:: Build BIOS +echo ================================================================================ +echo Build_IFWI: Calling BIOS build Script... +echo. + +echo - call BuildBxtBios.bat %buildthread% %Build_Flags% %Platform_Type% %Build_Target% +call %WORKSPACE%\%PLATFORM_PATH%\BuildBxtBios.bat %buildthread% %Build_Flags% %Platform_Type% %Build_Target% +if ErrorLevel 1 ( + echo echo -- Error Building BIOS & echo. + set exitCode=1 + goto exit +) + +echo ================================================================================ +echo. + +call Conf\BiosId.bat +echo BIOS_ID=%BIOS_ID% + +:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables +find /v "#" Conf\BiosId.env > ver_strings +for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j +del /f/q ver_strings >nul + +:: Translate Release Build Type +if "%BUILD_TYPE%"=="R" set BUILD_TYPE=R + +set BIOS_Name=%BOARD_ID%%BOARD_REV%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR% + +:: Start Integration process +echo ================================================================================ +echo Build_IFWI: Calling IFWI Stitching Script... +echo. +echo BIOS ROM input: %BIOS_Name% +echo. +pushd %STITCH_PATH% + echo - call IFWIStitch_Simple.bat %WORKSPACE%\%STITCH_PATH%\%BIOS_Name% %FabId% %BoardId% %Stitch_Flags% + call IFWIStitch_Simple.bat %WORKSPACE%\%STITCH_PATH%\%BIOS_Name% %FabId% %BoardId% %Stitch_Flags% + @echo off +popd +if ErrorLevel 1 ( + echo echo -- Error Stitching %BIOS_Name% & echo. + set exitCode=1 + goto Exit +) + +echo. +echo Build_IFWI is finished. +echo The final IFWI file is located in %WORKSPACE%\%PLATFORM_PATH%\Common\Tools\Stitch\ +echo ====================================================================== + + +goto Exit + +:Usage +if /i "%SkipUsageFlag%" == "TRUE" goto Exit +echo Script to build BIOS firmware and stitch the entire IFWI. +echo. +echo Usage: %thisscript% [options] ^<PlatformType^> ^<BuildTarget^> +echo. +echo. /? Display this help text +echo /l Log a copy of the build output to EDK2.log +echo /m Set the build thread count to number of processors +echo /FspW Build FSP and FSP Wrapper +echo /x64 Set Arch to X64 (default) +echo /vs08 Set compiler to VisualStudio 2008 +echo /vs10 Set compiler to VisualStudio 2010 +echo /vs12 Set compiler to VisualStudio 2012 +echo /vs13 Set compiler to VisualStudio 2013 +echo /vs15 Set compiler to VisualStudio 2015 +echo. +echo Platform Types: %Minnow_RVP% +echo MINN - Minnow (ApolloLake) +echo. +echo Build Targets: Release, Debug +echo. +set exitCode=1 + +:Exit +( + EndLocal + set Arch=%Arch% + exit /b %exitCode% +) -- 2.11.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel