• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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