]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/bld_vlv.sh
Handle extra module patchable PCD variable in Linux map.
[mirror_edk2.git] / Vlv2TbltDevicePkg / bld_vlv.sh
CommitLineData
d550b881 1#!/usr/bin/env bash
3cbfba02
DW
2##**********************************************************************
3## Function define
4##**********************************************************************
5function Usage() {
6 echo
7 echo "***************************************************************************"
8 echo "Build BIOS rom for VLV platforms."
9 echo
10 echo "Usage: bld_vlv.bat PlatformType [Build Target]"
11 echo
12 echo
13 echo " Platform Types: MNW2"
14 echo " Build Targets: Debug, Release (default: Debug)"
15 echo
16 echo "***************************************************************************"
17 echo "Press any key......"
18 read
19 exit 0
20}
21
22
23echo -e $(date)
24##**********************************************************************
25## Initial Setup
26##**********************************************************************
27#WORKSPACE=$(pwd)
28#build_threads=($NUMBER_OF_PROCESSORS)+1
29Build_Flags=
30exitCode=0
31Arch=X64
32
33## Clean up previous build files.
34if [ -e $(pwd)/EDK2.log ]; then
35 rm $(pwd)/EDK2.log
36fi
37
38if [ -e $(pwd)/Unitool.log ]; then
39 rm $(pwd)/Unitool.log
40fi
41
42if [ -e $(pwd)/Conf/target.txt ]; then
43 rm $(pwd)/Conf/target.txt
44fi
45
46if [ -e $(pwd)/Conf/BiosId.env ]; then
47 rm $(pwd)/Conf/BiosId.env
48fi
49
50if [ -e $(pwd)/Conf/tools_def.txt ]; then
51 rm $(pwd)/Conf/tools_def.txt
52fi
53
54if [ -e $(pwd)/Conf/build_rule.txt ]; then
55 rm $(pwd)/Conf/build_rule.txt
56fi
57
58
59## Setup EDK environment. Edksetup puts new copies of target.txt, tools_def.txt, build_rule.txt in WorkSpace\Conf
60## Also run edksetup as soon as possible to avoid it from changing environment variables we're overriding
bfed5d80 61. edksetup.sh BaseTools
3cbfba02
DW
62make -C BaseTools
63
64## Define platform specific environment variables.
65PLATFORM_PACKAGE=Vlv2TbltDevicePkg
66config_file=$WORKSPACE/$PLATFORM_PACKAGE/PlatformPkgConfig.dsc
67auto_config_inc=$WORKSPACE/$PLATFORM_PACKAGE/AutoPlatformCFG.txt
68
69## default ECP (override with /ECP flag)
70EDK_SOURCE=$WORKSPACE/EdkCompatibilityPkg
71
72## create new AutoPlatformCFG.txt file
73if [ -f "$auto_config_inc" ]; then
74 rm $auto_config_inc
75fi
76touch $auto_config_inc
77
78##**********************************************************************
79## Parse command line arguments
80##**********************************************************************
81
82## Optional arguments
83for (( i=1; i<=$#; ))
84 do
85 if [ "$1" == "/?" ]; then
86 Usage
87 elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Q" ]; then
88 Build_Flags="$Build_Flags --quiet"
89 shift
90 elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then
91 Build_Flags="$Build_Flags -j EKD2.log"
92 shift
93 elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/C" ]; then
94 echo Removing previous build files ...
95 if [ -d "Build" ]; then
96 rm -r Build
97 fi
98 shift
99 elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/ECP" ]; then
100 ECP_SOURCE=$WORKSPACE/EdkCompatibilityPkgEcp
101 EDK_SOURCE=$WORKSPACE/EdkCompatibilityPkgEcp
102 echo DEFINE ECP_BUILD_ENABLE = TRUE >> $auto_config_inc
103 shift
104 elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then
105 Arch=X64
106 shift
107 else
108 break
109 fi
110 done
111
112
113
114
115
116## Required argument(s)
117if [ "$2" == "" ]; then
118 Usage
119fi
120
121## Remove the values for Platform_Type and Build_Target from BiosIdX.env and stage in Conf
122if [ $Arch == "IA32" ]; then
123 cp $PLATFORM_PACKAGE/BiosIdR.env Conf/BiosId.env
124 echo DEFINE X64_CONFIG = FALSE >> $auto_config_inc
125else
126 cp $PLATFORM_PACKAGE/BiosIdx64R.env Conf/BiosId.env
127 echo DEFINE X64_CONFIG = TRUE >> $auto_config_inc
128fi
129sed -i '/^BOARD_ID/d' Conf/BiosId.env
130sed -i '/^BUILD_TYPE/d' Conf/BiosId.env
131
132
133
134## -- Build flags settings for each Platform --
135## AlpineValley (ALPV): SVP_PF_BUILD = TRUE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
136## BayleyBay (BBAY): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = TRUE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
137## BayLake (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
138## Bakersport (BYTI): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = FALSE
139## Crestview Hills (CVHS): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = TRUE
140## FFD8 (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
141echo "Setting $1 platform configuration and BIOS ID..."
142if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "MNW2" ]; then
143 echo BOARD_ID = MNW2MAX >> Conf/BiosId.env
144 echo DEFINE ENBDT_PF_BUILD = TRUE >> $auto_config_inc
145else
146 echo "Error - Unsupported PlatformType: $1"
147 Usage
148fi
149
150Platform_Type=$1
151
152if [ "$(echo $2 | tr 'a-z' 'A-Z')" == "RELEASE" ]; then
153 TARGET=RELEASE
154 BUILD_TYPE=R
155 echo BUILD_TYPE = R >> Conf/BiosId.env
156else
157 TARGET=DEBUG
158 BUILD_TYPE=D
159 echo BUILD_TYPE = D >> Conf/BiosId.env
160fi
161
162
163##**********************************************************************
164## Additional EDK Build Setup/Configuration
165##**********************************************************************
166echo "Ensuring correct build directory is present for GenBiosId..."
167
168echo Modifing Conf files for this build...
169## Remove lines with these tags from target.txt
170sed -i '/^ACTIVE_PLATFORM/d' Conf/target.txt
171sed -i '/^TARGET /d' Conf/target.txt
172sed -i '/^TARGET_ARCH/d' Conf/target.txt
173sed -i '/^TOOL_CHAIN_TAG/d' Conf/target.txt
174sed -i '/^MAX_CONCURRENT_THREAD_NUMBER/d' Conf/target.txt
175
176ACTIVE_PLATFORM=$PLATFORM_PACKAGE/PlatformPkgGcc"$Arch".dsc
177TOOL_CHAIN_TAG=GCC46
178MAX_CONCURRENT_THREAD_NUMBER=1
179echo ACTIVE_PLATFORM = $ACTIVE_PLATFORM >> Conf/target.txt
180echo TARGET = $TARGET >> Conf/target.txt
181echo TOOL_CHAIN_TAG = $TOOL_CHAIN_TAG >> Conf/target.txt
182echo MAX_CONCURRENT_THREAD_NUMBER = $MAX_CONCURRENT_THREAD_NUMBER >> Conf/target.txt
183if [ $Arch == "IA32" ]; then
184 echo TARGET_ARCH = IA32 >> Conf/target.txt
185else
186 echo TARGET_ARCH = IA32 X64 >> Conf/target.txt
187fi
188
189##**********************************************************************
190## Build BIOS
191##**********************************************************************
192echo Skip "Running UniTool..."
193echo "Make GenBiosId Tool..."
194BUILD_PATH=Build/$PLATFORM_PACKAGE/"$TARGET"_"$TOOL_CHAIN_TAG"
195if [ ! -d "$BUILD_PATH/$Arch" ]; then
196 mkdir -p $BUILD_PATH/$Arch
197fi
198if [ -e "$BUILD_PATH/$Arch/BiosId.bin" ]; then
199 rm -f $BUILD_PATH/$Arch/BiosId.bin
200fi
201
202
203./$PLATFORM_PACKAGE/GenBiosId -i Conf/BiosId.env -o $BUILD_PATH/$Arch/BiosId.bin
204
205
206echo "Invoking EDK2 build..."
207build
208
209
210##**********************************************************************
211## Post Build processing and cleanup
212##**********************************************************************
213
214echo Skip "Running fce..."
215
216echo Skip "Running KeyEnroll..."
217
218## Set the Board_Id, Build_Type, Version_Major, and Version_Minor environment variables
219VERSION_MAJOR=$(grep '^VERSION_MAJOR' Conf/BiosId.env | cut -d ' ' -f 3 | cut -c 1-4)
220VERSION_MINOR=$(grep '^VERSION_MINOR' Conf/BiosId.env | cut -d ' ' -f 3 | cut -c 1-2)
221BOARD_ID=$(grep '^BOARD_ID' Conf/BiosId.env | cut -d ' ' -f 3 | cut -c 1-7)
222BIOS_Name="$BOARD_ID"_"$Arch"_"$BUILD_TYPE"_"$VERSION_MAJOR"_"$VERSION_MINOR".ROM
223BIOS_ID="$BOARD_ID"_"$Arch"_"$BUILD_TYPE"_"$VERSION_MAJOR"_"$VERSION_MINOR"_GCC.bin
224cp -f $BUILD_PATH/FV/VLV.fd $WORKSPACE/$BIOS_Name
c01934fb 225SEC_VERSION=1.0.2.1067
3cbfba02
DW
226cat ./$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
227
228
229echo Skip "Running BIOS_Signing ..."
230
231echo
232echo Build location: $BUILD_PATH
233echo BIOS ROM Created: $BIOS_Name
234echo
235echo -------------------- The EDKII BIOS build has successfully completed. --------------------
236echo