|
@@ -7,15 +7,22 @@ function Usage() {
|
|
|
echo "***************************************************************************"
|
|
|
echo "Build BIOS rom for VLV platforms."
|
|
|
echo
|
|
|
- echo "Usage: bld_vlv.sh PlatformType [Build Target]"
|
|
|
+ echo "Usage: bld_vlv.sh [options] PlatformType [Build Target]"
|
|
|
echo
|
|
|
+ echo " /c CleanAll"
|
|
|
+ echo " /l Generate build log file"
|
|
|
+ echo " /y Generate build report file"
|
|
|
+ echo " /m Enable multi-processor build"
|
|
|
+ echo " /IA32 Set Arch to IA32 (default: X64)"
|
|
|
+ echo " /X64 Set Arch to X64 (default: X64)"
|
|
|
echo
|
|
|
echo " Platform Types: MNW2"
|
|
|
echo " Build Targets: Debug, Release (default: Debug)"
|
|
|
echo
|
|
|
+ echo "Examples:"
|
|
|
+ echo " bld_vlv.sh MNW2 : X64 Debug build for MinnowMax"
|
|
|
+ echo " bld_vlv.sh /IA32 MNW2 release : IA32 Release build for MinnowMax"
|
|
|
echo "***************************************************************************"
|
|
|
- echo "Press any key......"
|
|
|
- read
|
|
|
exit 0
|
|
|
}
|
|
|
|
|
@@ -29,8 +36,12 @@ echo -e $(date)
|
|
|
#build_threads=($NUMBER_OF_PROCESSORS)+1
|
|
|
Build_Flags=
|
|
|
exitCode=0
|
|
|
+build_threads=1
|
|
|
Arch=X64
|
|
|
-SpiLock=0
|
|
|
+GenLog=FALSE
|
|
|
+GenReport=FALSE
|
|
|
+Clean=FALSE
|
|
|
+
|
|
|
|
|
|
export CORE_PATH=$WORKSPACE/edk2
|
|
|
export PLATFORM_PATH=$WORKSPACE/edk2-platforms/Platform/Intel/
|
|
@@ -38,27 +49,6 @@ export SILICON_PATH=$WORKSPACE/edk2-platforms/Silicon/Intel/
|
|
|
export BINARY_PATH=$WORKSPACE/edk2-non-osi/Silicon/Intel/
|
|
|
export PACKAGES_PATH=$PLATFORM_PATH:$SILICON_PATH:$BINARY_PATH:$CORE_PATH
|
|
|
|
|
|
-## Clean up previous build files.
|
|
|
-if [ -e $WORKSPACE/EDK2.log ]; then
|
|
|
- rm $WORKSPACE/EDK2.log
|
|
|
-fi
|
|
|
-
|
|
|
-if [ -e $WORKSPACE/Unitool.log ]; then
|
|
|
- rm $WORKSPACE/Unitool.log
|
|
|
-fi
|
|
|
-
|
|
|
-if [ -e $WORKSPACE/Conf/target.txt ]; then
|
|
|
- rm $WORKSPACE/Conf/target.txt
|
|
|
-fi
|
|
|
-
|
|
|
-if [ -e $WORKSPACE/Conf/tools_def.txt ]; then
|
|
|
- rm $WORKSPACE/Conf/tools_def.txt
|
|
|
-fi
|
|
|
-
|
|
|
-if [ -e $WORKSPACE/Conf/build_rule.txt ]; then
|
|
|
- rm $WORKSPACE/Conf/build_rule.txt
|
|
|
-fi
|
|
|
-
|
|
|
## Setup EDK environment. Edksetup puts new copies of target.txt, tools_def.txt, build_rule.txt in WorkSpace\Conf
|
|
|
## Also run edksetup as soon as possible to avoid it from changing environment variables we're overriding
|
|
|
cd $CORE_PATH
|
|
@@ -69,17 +59,9 @@ make -C BaseTools
|
|
|
PLATFORM_NAME=Vlv2TbltDevicePkg
|
|
|
PLATFORM_PACKAGE=Vlv2TbltDevicePkg
|
|
|
PLATFORM_PKG_PATH=$PLATFORM_PATH/$PLATFORM_PACKAGE
|
|
|
-config_file=$PLATFORM_PKG_PATH/PlatformPkgConfig.dsc
|
|
|
-auto_config_inc=$PLATFORM_PKG_PATH/AutoPlatformCFG.txt
|
|
|
|
|
|
cd $PLATFORM_PKG_PATH
|
|
|
|
|
|
-## create new AutoPlatformCFG.txt file
|
|
|
-if [ -f "$auto_config_inc" ]; then
|
|
|
- rm $auto_config_inc
|
|
|
-fi
|
|
|
-touch $auto_config_inc
|
|
|
-
|
|
|
##**********************************************************************
|
|
|
## Parse command line arguments
|
|
|
##**********************************************************************
|
|
@@ -89,17 +71,17 @@ for (( i=1; i<=$#; ))
|
|
|
do
|
|
|
if [ "$1" == "/?" ]; then
|
|
|
Usage
|
|
|
- elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Q" ]; then
|
|
|
- Build_Flags="$Build_Flags --quiet"
|
|
|
- shift
|
|
|
elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then
|
|
|
- Build_Flags="$Build_Flags -j EDK2.log"
|
|
|
+ GenLog=TRUE
|
|
|
+ shift
|
|
|
+ elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Y" ]; then
|
|
|
+ GenReport=TRUE
|
|
|
+ shift
|
|
|
+ elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/M" ]; then
|
|
|
+ build_threads=8
|
|
|
shift
|
|
|
elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/C" ]; then
|
|
|
- echo Removing previous build files ...
|
|
|
- if [ -d "Build" ]; then
|
|
|
- rm -r Build
|
|
|
- fi
|
|
|
+ Clean=TRUE
|
|
|
shift
|
|
|
elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then
|
|
|
Arch=X64
|
|
@@ -107,9 +89,6 @@ for (( i=1; i<=$#; ))
|
|
|
elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/IA32" ]; then
|
|
|
Arch=IA32
|
|
|
shift
|
|
|
- elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/YL" ]; then
|
|
|
- SpiLock=1
|
|
|
- shift
|
|
|
else
|
|
|
break
|
|
|
fi
|
|
@@ -120,26 +99,7 @@ if [ "$2" == "" ]; then
|
|
|
Usage
|
|
|
fi
|
|
|
|
|
|
-if [ $Arch == "IA32" ]; then
|
|
|
- echo DEFINE X64_CONFIG = FALSE >> $auto_config_inc
|
|
|
-else
|
|
|
- echo DEFINE X64_CONFIG = TRUE >> $auto_config_inc
|
|
|
-fi
|
|
|
-
|
|
|
-## -- Build flags settings for each Platform --
|
|
|
-## AlpineValley (ALPV): SVP_PF_BUILD = TRUE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
|
|
|
-## BayleyBay (BBAY): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = TRUE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
|
|
|
-## BayLake (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
|
|
|
-## Bakersport (BYTI): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = FALSE
|
|
|
-## Crestview Hills (CVHS): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = FALSE, BYTI_PF_BUILD = TRUE, IVI_PF_BUILD = TRUE
|
|
|
-## FFD8 (BLAK): SVP_PF_BUILD = FALSE, ENBDT_PF_BUILD = FALSE, TABLET_PF_BUILD = TRUE, BYTI_PF_BUILD = FALSE, IVI_PF_BUILD = FALSE
|
|
|
echo "Setting $1 platform configuration and BIOS ID..."
|
|
|
-if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "MNW2" ]; then
|
|
|
- echo DEFINE ENBDT_PF_BUILD = TRUE >> $auto_config_inc
|
|
|
-else
|
|
|
- echo "Error - Unsupported PlatformType: $1"
|
|
|
- Usage
|
|
|
-fi
|
|
|
|
|
|
if [ "$(echo $2 | tr 'a-z' 'A-Z')" == "RELEASE" ]; then
|
|
|
export TARGET=RELEASE
|
|
@@ -148,18 +108,8 @@ else
|
|
|
fi
|
|
|
|
|
|
##**********************************************************************
|
|
|
-## Additional EDK Build Setup/Configuration
|
|
|
+## Detect TOOL_CHAIN_TAG
|
|
|
##**********************************************************************
|
|
|
-echo "Ensuring correct build directory is present for GenBiosId..."
|
|
|
-
|
|
|
-echo Modifying Conf files for this build...
|
|
|
-## Remove lines with these tags from target.txt
|
|
|
-sed -i '/^ACTIVE_PLATFORM/d' $WORKSPACE/Conf/target.txt
|
|
|
-sed -i '/^TARGET /d' $WORKSPACE/Conf/target.txt
|
|
|
-sed -i '/^TARGET_ARCH/d' $WORKSPACE/Conf/target.txt
|
|
|
-sed -i '/^TOOL_CHAIN_TAG/d' $WORKSPACE/Conf/target.txt
|
|
|
-sed -i '/^MAX_CONCURRENT_THREAD_NUMBER/d' $WORKSPACE/Conf/target.txt
|
|
|
-
|
|
|
gcc_version=$(gcc -v 2>&1 | tail -1 | awk '{print $3}')
|
|
|
case $gcc_version in
|
|
|
[1-3].*|4.[0-7].*)
|
|
@@ -167,31 +117,19 @@ case $gcc_version in
|
|
|
exit 1
|
|
|
;;
|
|
|
4.8.*)
|
|
|
- TARGET_TOOLS=GCC48
|
|
|
+ export TOOL_CHAIN_TAG=GCC48
|
|
|
;;
|
|
|
4.9.*|6.[0-2].*)
|
|
|
- TARGET_TOOLS=GCC49
|
|
|
+ export TOOL_CHAIN_TAG=GCC49
|
|
|
;;
|
|
|
*)
|
|
|
- TARGET_TOOLS=GCC5
|
|
|
+ export TOOL_CHAIN_TAG=GCC5
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
-ACTIVE_PLATFORM=$PLATFORM_PKG_PATH/PlatformPkgGcc"$Arch".dsc
|
|
|
-export TOOL_CHAIN_TAG=$TARGET_TOOLS
|
|
|
-MAX_CONCURRENT_THREAD_NUMBER=8
|
|
|
-echo ACTIVE_PLATFORM = $ACTIVE_PLATFORM >> $WORKSPACE/Conf/target.txt
|
|
|
-echo TARGET = $TARGET >> $WORKSPACE/Conf/target.txt
|
|
|
-echo TOOL_CHAIN_TAG = $TOOL_CHAIN_TAG >> $WORKSPACE/Conf/target.txt
|
|
|
-echo MAX_CONCURRENT_THREAD_NUMBER = $MAX_CONCURRENT_THREAD_NUMBER >> $WORKSPACE/Conf/target.txt
|
|
|
-if [ $Arch == "IA32" ]; then
|
|
|
- echo TARGET_ARCH = IA32 >> $WORKSPACE/Conf/target.txt
|
|
|
-else
|
|
|
- echo TARGET_ARCH = IA32 X64 >> $WORKSPACE/Conf/target.txt
|
|
|
-fi
|
|
|
-
|
|
|
-
|
|
|
-## Set and Create $BUILD_PATH if necessary
|
|
|
+##**********************************************************************
|
|
|
+## Generate $BUILD_PATH and make sure the directory exists
|
|
|
+##**********************************************************************
|
|
|
if [ ! -d ${WORKSPACE}/Build ]; then
|
|
|
mkdir ${WORKSPACE}/Build
|
|
|
fi
|
|
@@ -212,6 +150,40 @@ if [ ! -d $BUILD_PATH ]; then
|
|
|
mkdir $BUILD_PATH
|
|
|
fi
|
|
|
|
|
|
+##**********************************************************************
|
|
|
+## Check for clean operation
|
|
|
+##**********************************************************************
|
|
|
+if [ $Clean == "TRUE" ]; then
|
|
|
+ echo Removing previous build files ...
|
|
|
+ if [ -d ${BUILD_PATH} ]; then
|
|
|
+ rm -r ${BUILD_PATH}
|
|
|
+ fi
|
|
|
+ if [ -d ${WORKSPACE}/Conf/.cache ]; then
|
|
|
+ rm -r ${WORKSPACE}/Conf/.cache
|
|
|
+ fi
|
|
|
+ exit 0
|
|
|
+fi
|
|
|
+
|
|
|
+##**********************************************************************
|
|
|
+## Generate Build_Flags
|
|
|
+##**********************************************************************
|
|
|
+
|
|
|
+Build_Flags="$Build_Flags -b $TARGET"
|
|
|
+if [ $Arch == "IA32" ]; then
|
|
|
+ Build_Flags="$Build_Flags -a IA32"
|
|
|
+else
|
|
|
+ Build_Flags="$Build_Flags -a IA32 -a X64"
|
|
|
+fi
|
|
|
+Build_Flags="$Build_Flags -t $TOOL_CHAIN_TAG"
|
|
|
+Build_Flags="$Build_Flags -p ${PLATFORM_PKG_PATH}/PlatformPkgGcc${Arch}.dsc"
|
|
|
+Build_Flags="$Build_Flags -n $build_threads"
|
|
|
+if [ $GenLog == "TRUE" ]; then
|
|
|
+ Build_Flags="$Build_Flags -j ${BUILD_PATH}/${PLATFORM_NAME}.log"
|
|
|
+fi
|
|
|
+if [ $GenReport == "TRUE" ]; then
|
|
|
+ Build_Flags="$Build_Flags -y ${BUILD_PATH}/${PLATFORM_NAME}.report"
|
|
|
+fi
|
|
|
+
|
|
|
##**********************************************************************
|
|
|
## Generate BIOS ID
|
|
|
##**********************************************************************
|
|
@@ -239,7 +211,8 @@ python $WORKSPACE/edk2-platforms/Platform/Intel/Tools/GenBiosId/GenBiosId.py -i
|
|
|
## Build BIOS
|
|
|
##**********************************************************************
|
|
|
echo "Invoking EDK2 build..."
|
|
|
-build
|
|
|
+echo build $Build_Flags
|
|
|
+build $Build_Flags
|
|
|
|
|
|
##**********************************************************************
|
|
|
## Post Build processing and cleanup
|