1@REM @file 2@REM Windows batch file to build BIOS ROM 3@REM 4@REM Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> 5@REM This program and the accompanying materials 6@REM are licensed and made available under the terms and conditions of the BSD License 7@REM which accompanies this distribution. The full text of the license may be found at 8@REM http://opensource.org/licenses/bsd-license.php 9@REM 10@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12@REM 13 14@echo off 15 16SetLocal EnableDelayedExpansion EnableExtensions 17 18@REM Go to root directory of the codebase. 19cd .. 20 21:: Assign initial values 22set exitCode=0 23set "Build_Flags= " 24set "Stitch_Flags= " 25set Arch=X64 26set PLATFORM_PACKAGE=Vlv2TbltDevicePkg 27set ROOT_DIR=%CD% 28 29:: Parse Optional arguments 30:OptLoop 31if /i "%~1"=="/?" goto Usage 32 33if /i "%~1"=="/q" ( 34 set Build_Flags=%Build_Flags% /q 35 shift 36 goto OptLoop 37) 38if /i "%~1"=="/l" ( 39 set Build_Flags=%Build_Flags% /l 40 shift 41 goto OptLoop 42) 43if /i "%~1" == "/c" ( 44 set Build_Flags=%Build_Flags% /c 45 shift 46 goto OptLoop 47) 48if /i "%~1" == "/ECP" ( 49 set Build_Flags=%Build_Flags% /ecp 50 shift 51 goto OptLoop 52) 53 54if /i "%~1"=="/s" ( 55 set Build_Flags=%Build_Flags% /s 56 shift 57 goto OptLoop 58) 59 60if /i "%~1"=="/x64" ( 61 set Arch=X64 62 set Build_Flags=%Build_Flags% /x64 63 shift 64 goto OptLoop 65) 66 67if /i "%~1"=="/IA32" ( 68 set Arch=IA32 69 set Build_Flags=%Build_Flags% /IA32 70 shift 71 goto OptLoop 72) 73 74if /i "%~1"=="/nG" ( 75 set Stitch_Flags=%Stitch_Flags% /nG 76 shift 77 goto OptLoop 78) 79if /i "%~1"=="/nM" ( 80 set Stitch_Flags=%Stitch_Flags% /nM 81 shift 82 goto OptLoop 83) 84if /i "%~1"=="/nB" ( 85 set Stitch_Flags=%Stitch_Flags% /nB 86 shift 87 goto OptLoop 88) 89if /i "%~1"=="/yL" ( 90 set Stitch_Flags=%Stitch_Flags% /yL 91 shift 92 goto OptLoop 93) 94 95 96:: Require 2 input parameters 97if "%~2"=="" goto Usage 98 99:: Assign required arguments 100set Platform_Type=%~1 101set Build_Target=%~2 102 103if "%~3"=="" ( 104 set "IFWI_Suffix= " 105) else set "IFWI_Suffix=/S %~3" 106 107:: Build BIOS 108echo ====================================================================== 109echo Build_IFWI: Calling BIOS build Script... 110if "%Platform_Type%" == "BYTC" ( 111 call %PLATFORM_PACKAGE%\bld_vlv_cr.bat %Build_Flags% %Platform_Type% %Build_Target% 112 113) else ( 114 call %PLATFORM_PACKAGE%\bld_vlv.bat %Build_Flags% %Platform_Type% %Build_Target% 115) 116if %ERRORLEVEL% NEQ 0 ( 117 echo echo -- Error Building BIOS & echo. 118 set exitCode=1 119 goto exit 120) 121echo. 122echo Finished Building BIOS. 123@REM Set BIOS_ID environment variable here. 124call Conf\BiosId.bat 125echo BIOS_ID=%BIOS_ID% 126 127:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables 128find /v "#" Conf\BiosId.env > ver_strings 129for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j 130del /f/q ver_strings >nul 131set BIOS_Name=%BOARD_ID%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR%.ROM 132 133:: Start Integration process 134echo ====================================================================== 135echo Build_IFWI: Calling IFWI Stitching Script... 136if "%Platform_Type%" == "BYTC" ( 137 pushd %PLATFORM_PACKAGE%\Stitch_CR 138) else ( 139 pushd %PLATFORM_PACKAGE%\Stitch 140) 141 :: IFWIStitch.bat [/nG] [/nM] [/nB] [/B BIOS.rom] [/C StitchConfig] [/S IFWISuffix] 142 call IFWIStitch.bat %Stitch_Flags% /B ..\..\%BIOS_Name% %IFWI_Suffix% 143 144 @echo off 145popd 146if %ERRORLEVEL% NEQ 0 ( 147 echo echo -- Error Stitching %BIOS_Nam% & echo. 148 set exitCode=1 149) 150echo. 151echo Build_IFWI is finished. 152echo The final IFWI file is located in %ROOT_DIR%\Vlv2TbltDevicePkg\Stitch\ 153echo ====================================================================== 154goto Exit 155 156:Usage 157echo Script to build BIOS firmware and stitch the entire IFWI. 158echo. 159echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget [IFWI Suffix] 160echo. 161echo /c CleanAll before building 162echo /x64 Set Arch to X64 (default: X64) 163echo /IA32 Set Arch to IA32 (default: X64) 164echo /yL Enable SPI lock 165echo. 166echo Platform Types: MNW2 167echo Build Targets: Release, Debug 168echo IFWI Suffix: Suffix to append to end of IFWI filename (default: MM_DD_YYYY) 169echo. 170echo See Stitch/Stitch_Config.txt for additional stitching settings. 171echo. 172set exitCode=1 173 174:Exit 175@REM CD to platform package. 176cd %ROOT_DIR%\Vlv2TbltDevicePkg 177exit /b %exitCode% 178 179EndLocal 180