2 # Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
3 # This program and the accompanying materials
4 # are licensed and made available under the terms and conditions of the BSD License
5 # which accompanies this distribution. The full text of the license may be found at
6 # http://opensource.org/licenses/bsd-license.php
8 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
9 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 function process_debug_scripts
{
17 for filename
in `ls $1`
19 sed -e "s@ZZZZZZ@$BUILD_ROOT@g" -e "s@WWWWWW@$WORKSPACE@g" \
21 > "$BUILD_ROOT/$filename"
23 #For ARMCYGWIN, we have to change /cygdrive/c to c:
24 if [[ $TARGET_TOOLS == RVCT31CYGWIN
]]
26 mv "$BUILD_ROOT/$filename" "$BUILD_ROOT/$filename"_temp
27 sed -e "s@/cygdrive/\(.\)@\1:@g" \
28 "$BUILD_ROOT/$filename"_temp \
29 > "$BUILD_ROOT/$filename"
30 rm -f "$BUILD_ROOT/$filename"_temp
38 # Setup workspace if it is not set
40 if [ -z "${WORKSPACE:-}" ]
42 echo Initializing workspace
44 # Uses an external BaseTools project
45 # export EDK_TOOLS_PATH=`pwd`/../BaseTools
46 # Uses the BaseTools in edk2
47 export EDK_TOOLS_PATH
=`pwd`/BaseTools
48 source edksetup.sh BaseTools
50 echo Building from
: $WORKSPACE
54 # Pick a default tool type for a given OS if no toolchain already defined
56 if [ -z "${TARGET_TOOLS:-}" ]
60 TARGET_TOOLS
=RVCT31CYGWIN
63 if [[ ! -z `locate arm-linux-gnueabi-gcc` ]]; then
64 TARGET_TOOLS
=ARMLINUXGCC
70 Major
=$
(uname
-r | cut
-f 1 -d '.')
73 # Not supported by this open source project
85 if [[ $arg == RELEASE
]];
91 BUILD_ROOT
=$WORKSPACE/Build
/BeagleBoard
/"$TARGET"_
"$TARGET_TOOLS"
92 GENERATE_IMAGE
=$WORKSPACE/BeagleBoardPkg
/Tools
/generate_image
93 FLASH_BOOT
=$BUILD_ROOT/FV
/BeagleBoard_EFI_flashboot.fd
95 if [[ ! -e $EDK_TOOLS_PATH/Source
/C
/bin
]];
97 # build the tools if they don't yet exist
98 echo Building tools
: $EDK_TOOLS_PATH
99 make -C $EDK_TOOLS_PATH
101 echo using prebuilt tools
105 # Build the edk2 BeagleBoard code
107 if [[ $TARGET == RELEASE
]]; then
108 build
-p $WORKSPACE/BeagleBoardPkg
/BeagleBoardPkg.dsc
-a ARM
-t $TARGET_TOOLS -b $TARGET -D DEBUG_TARGET
=RELEASE
${2:-} ${3:-} ${4:-} ${5:-} ${6:-} ${7:-} ${8:-}
110 build
-p ${WORKSPACE:-}/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET ${1:-} ${2:-} ${3:-} ${4:-} ${5:-} ${6:-} ${7:-} ${8:-}
116 if [[ $arg == clean
]]; then
117 # no need to post process if we are doing a clean
119 elif [[ $arg == cleanall
]]; then
120 make -C $EDK_TOOLS_PATH clean
121 make -C $WORKSPACE/BeagleBoardPkg
/Tools clean
129 # Build the tool used to patch the FLASH image to work with the Beagle board ROM
131 if [[ ! -e $GENERATE_IMAGE ]];
133 make -C $WORKSPACE/BeagleBoardPkg
/Tools
136 echo Patching FD to work with BeagleBoard ROM
140 # Ram starts at 0x80000000
141 # OMAP 3530 TRM defines 0x80008000 as the entry point
142 # The reset vector is caught by the mask ROM in the OMAP 3530 so that is why this entry
143 # point looks so strange.
144 # OMAP 3430 TRM section 26.4.8 has Image header information. (missing in OMAP 3530 TRM)
146 $GENERATE_IMAGE -D $WORKSPACE/BeagleBoardPkg
/ConfigurationHeader.dat
-E 0x80008000 -I $BUILD_ROOT/FV
/BEAGLEBOARD_EFI.fd
-O $FLASH_BOOT
148 echo Creating debugger scripts
149 process_debug_scripts
$WORKSPACE/BeagleBoardPkg
/Debugger_scripts