]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Build_IFWI.bat
MdeModulePkg/DxeCore: invoke the emulator protocol for foreign images
[mirror_edk2.git] / Vlv2TbltDevicePkg / Build_IFWI.bat
CommitLineData
3cbfba02
DW
1@REM @file\r
2@REM Windows batch file to build BIOS ROM\r
3@REM\r
12f3447c 4@REM Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
9dc8036d 5@REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
3cbfba02
DW
6@REM\r
7\r
8@echo off\r
9\r
10SetLocal EnableDelayedExpansion EnableExtensions\r
11\r
46002a4a
ZS
12@REM Go to work space directory.\r
13cd ..\r
3cbfba02
DW
14cd ..\r
15\r
16:: Assign initial values\r
17set exitCode=0\r
18set "Build_Flags= "\r
19set "Stitch_Flags= "\r
20set Arch=X64\r
46002a4a
ZS
21set WORKSPACE=%CD%\r
22set CORE_PATH=%WORKSPACE%\edk2\r
23set PLATFORM_PATH=%WORKSPACE%\edk2\r
3cbfba02 24set PLATFORM_PACKAGE=Vlv2TbltDevicePkg\r
3cbfba02
DW
25\r
26:: Parse Optional arguments\r
27:OptLoop\r
28if /i "%~1"=="/?" goto Usage\r
29\r
30if /i "%~1"=="/q" (\r
31 set Build_Flags=%Build_Flags% /q\r
32 shift\r
33 goto OptLoop\r
34)\r
35if /i "%~1"=="/l" (\r
36 set Build_Flags=%Build_Flags% /l\r
37 shift\r
38 goto OptLoop\r
39)\r
eafde7a2
MK
40if /i "%~1"=="/y" (\r
41 set Build_Flags=%Build_Flags% /y\r
42 shift\r
43 goto OptLoop\r
44)\r
eae631bc
MK
45if /i "%~1"=="/m" (\r
46 set Build_Flags=%Build_Flags% /m\r
47 shift\r
48 goto OptLoop\r
49)\r
3cbfba02
DW
50if /i "%~1" == "/c" (\r
51 set Build_Flags=%Build_Flags% /c\r
52 shift\r
53 goto OptLoop\r
54)\r
55if /i "%~1" == "/ECP" (\r
56 set Build_Flags=%Build_Flags% /ecp\r
57 shift\r
58 goto OptLoop\r
59)\r
60\r
61if /i "%~1"=="/s" (\r
62 set Build_Flags=%Build_Flags% /s\r
63 shift\r
64 goto OptLoop\r
65)\r
66\r
67if /i "%~1"=="/x64" (\r
68 set Arch=X64\r
69 set Build_Flags=%Build_Flags% /x64\r
70 shift\r
71 goto OptLoop\r
72)\r
73\r
74if /i "%~1"=="/IA32" (\r
75 set Arch=IA32\r
76 set Build_Flags=%Build_Flags% /IA32\r
77 shift\r
78 goto OptLoop\r
79)\r
80\r
81if /i "%~1"=="/nG" (\r
82 set Stitch_Flags=%Stitch_Flags% /nG\r
83 shift\r
84 goto OptLoop\r
85)\r
86if /i "%~1"=="/nM" (\r
87 set Stitch_Flags=%Stitch_Flags% /nM\r
88 shift\r
89 goto OptLoop\r
90)\r
91if /i "%~1"=="/nB" (\r
92 set Stitch_Flags=%Stitch_Flags% /nB\r
93 shift\r
94 goto OptLoop\r
95)\r
83586b5d
TH
96if /i "%~1"=="/yL" (\r
97 set Stitch_Flags=%Stitch_Flags% /yL\r
98 shift\r
99 goto OptLoop\r
100)\r
101\r
3cbfba02
DW
102\r
103:: Require 2 input parameters\r
104if "%~2"=="" goto Usage\r
105\r
106:: Assign required arguments\r
107set Platform_Type=%~1\r
108set Build_Target=%~2\r
83586b5d 109\r
3cbfba02
DW
110if "%~3"=="" (\r
111 set "IFWI_Suffix= "\r
112) else set "IFWI_Suffix=/S %~3"\r
113\r
114:: Build BIOS\r
115echo ======================================================================\r
116echo Build_IFWI: Calling BIOS build Script...\r
46002a4a
ZS
117\r
118call %PLATFORM_PATH%\%PLATFORM_PACKAGE%\bld_vlv.bat %Build_Flags% %Platform_Type% %Build_Target%\r
119\r
3cbfba02
DW
120if %ERRORLEVEL% NEQ 0 (\r
121 echo echo -- Error Building BIOS & echo.\r
122 set exitCode=1\r
123 goto exit\r
124)\r
125echo.\r
126echo Finished Building BIOS.\r
127@REM Set BIOS_ID environment variable here.\r
46002a4a 128call %CORE_PATH%\Conf\BiosId.bat\r
3cbfba02
DW
129echo BIOS_ID=%BIOS_ID%\r
130\r
131:: Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables\r
46002a4a 132find /v "#" %CORE_PATH%\Conf\BiosId.env > ver_strings\r
3cbfba02
DW
133for /f "tokens=1,3" %%i in (ver_strings) do set %%i=%%j\r
134del /f/q ver_strings >nul\r
135set BIOS_Name=%BOARD_ID%_%Arch%_%BUILD_TYPE%_%VERSION_MAJOR%_%VERSION_MINOR%.ROM\r
136\r
137:: Start Integration process\r
138echo ======================================================================\r
139echo Build_IFWI: Calling IFWI Stitching Script...\r
46002a4a
ZS
140pushd %CORE_PATH%\%PLATFORM_PACKAGE%\Stitch\r
141\r
142 :: IFWIStitch.bat [/nG] [/nM] [/nB] [/B BIOS.rom] [/C StitchConfig] [/S IFWISuffix]\r
143 call IFWIStitch.bat %Stitch_Flags% /B ..\..\%BIOS_Name% %IFWI_Suffix%\r
3cbfba02 144 \r
46002a4a 145 @echo off\r
3cbfba02
DW
146popd\r
147if %ERRORLEVEL% NEQ 0 (\r
148 echo echo -- Error Stitching %BIOS_Nam% & echo.\r
149 set exitCode=1\r
150)\r
151echo.\r
152echo Build_IFWI is finished.\r
153echo The final IFWI file is located in %ROOT_DIR%\Vlv2TbltDevicePkg\Stitch\\r
154echo ======================================================================\r
155goto Exit\r
156\r
157:Usage\r
158echo Script to build BIOS firmware and stitch the entire IFWI.\r
159echo.\r
160echo Usage: Build_IFWI.bat [options] PlatformType BuildTarget [IFWI Suffix]\r
161echo.\r
3cbfba02 162echo /c CleanAll before building\r
3cbfba02
DW
163echo /x64 Set Arch to X64 (default: X64)\r
164echo /IA32 Set Arch to IA32 (default: X64)\r
83586b5d 165echo /yL Enable SPI lock\r
3cbfba02
DW
166echo. \r
167echo Platform Types: MNW2\r
168echo Build Targets: Release, Debug\r
169echo IFWI Suffix: Suffix to append to end of IFWI filename (default: MM_DD_YYYY)\r
170echo.\r
171echo See Stitch/Stitch_Config.txt for additional stitching settings.\r
172echo.\r
008e2ccf
JY
173echo If capsule update is needed, please update CAPSULE_ENABLE = TRUE in Config.dsc.\r
174echo If recovery is needed, please update RECOVERY_ENABLE = TRUE in Config.dsc.\r
175echo If either of above is TRUE, please set OPENSSL_PATH in windows evironment\r
176echo and put openssl.exe there, to generate final capsule image.\r
177echo.\r
3cbfba02
DW
178set exitCode=1\r
179\r
180:Exit\r
181@REM CD to platform package.\r
46002a4a 182cd %PLATFORM_PATH%\r
3cbfba02
DW
183exit /b %exitCode%\r
184\r
185EndLocal\r