mirror of https://github.com/thesofproject/sof.git
157 lines
3.1 KiB
Bash
Executable File
157 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SUPPORTED_PLATFORMS=(byt cht bdw hsw apl cnl)
|
|
if [ "$#" -eq 0 ]
|
|
then
|
|
PLATFORMS=${SUPPORTED_PLATFORMS[@]}
|
|
else
|
|
# parse the args
|
|
for args in $@
|
|
do
|
|
if [[ "$args" == "-l" ]]
|
|
then
|
|
BUILD_LOCAL=1
|
|
|
|
# build all images for chosen targets
|
|
if [ "$#" -eq 1 ]
|
|
then
|
|
PLATFORMS=${SUPPORTED_PLATFORMS[@]}
|
|
break
|
|
fi
|
|
else
|
|
for i in ${SUPPORTED_PLATFORMS[@]}
|
|
do
|
|
if [ $i == $args ]
|
|
then
|
|
PLATFORMS+=$i" "
|
|
fi
|
|
done
|
|
fi
|
|
done
|
|
fi
|
|
|
|
|
|
# now build the firmware (depends on rimage)
|
|
rm -fr src/arch/xtensa/*.ri
|
|
|
|
# fail on any errors
|
|
set -e
|
|
|
|
# run autogen.sh
|
|
./autogen.sh
|
|
|
|
pwd=`pwd`
|
|
|
|
|
|
# make sure rimage is built and aligned with code
|
|
if [[ "x$BUILD_LOCAL" == "x" ]]
|
|
then
|
|
./configure --enable-rimage
|
|
make
|
|
sudo make install
|
|
else
|
|
echo "BUILD in local folder!"
|
|
rm -rf $pwd/local/
|
|
./configure --enable-rimage --prefix=$pwd/local
|
|
make
|
|
make install
|
|
PATH=$pwd/local/bin:$PATH
|
|
fi
|
|
|
|
OLDPATH=$PATH
|
|
|
|
# build platform
|
|
for j in ${PLATFORMS[@]}
|
|
do
|
|
if [ $j == "byt" ]
|
|
then
|
|
PLATFORM="baytrail"
|
|
XTENSA_CORE="Intel_HiFiEP"
|
|
ROOT="$pwd/../xtensa-root/xtensa-byt-elf"
|
|
HOST="xtensa-byt-elf"
|
|
XTENSA_TOOLS_VERSION="RD-2012.5-linux"
|
|
fi
|
|
if [ $j == "cht" ]
|
|
then
|
|
PLATFORM="cherrytrail"
|
|
XTENSA_CORE="CHT_audio_hifiep"
|
|
ROOT="$pwd/../xtensa-root/xtensa-byt-elf"
|
|
HOST="xtensa-byt-elf"
|
|
XTENSA_TOOLS_VERSION="RD-2012.5-linux"
|
|
fi
|
|
if [ $j == "bdw" ]
|
|
then
|
|
PLATFORM="broadwell"
|
|
ROOT="$pwd/../xtensa-root/xtensa-hsw-elf"
|
|
HOST="xtensa-hsw-elf"
|
|
fi
|
|
if [ $j == "hsw" ]
|
|
then
|
|
PLATFORM="haswell"
|
|
ROOT="$pwd/../xtensa-root/xtensa-hsw-elf"
|
|
HOST="xtensa-hsw-elf"
|
|
fi
|
|
if [ $j == "apl" ]
|
|
then
|
|
PLATFORM="apollolake"
|
|
XTENSA_CORE="X4H3I16w2D48w3a_2017_8"
|
|
|
|
# test APL compiler aliases and ignore set -e here
|
|
type xtensa-bxt-elf-gcc > /dev/null 2>&1 && true
|
|
if [ $? == 0 ]
|
|
then
|
|
HOST="xtensa-bxt-elf"
|
|
else
|
|
HOST="xtensa-apl-elf"
|
|
fi
|
|
|
|
ROOT="$pwd/../xtensa-root/$HOST"
|
|
XTENSA_TOOLS_VERSION="RG-2017.8-linux"
|
|
fi
|
|
if [ $j == "cnl" ]
|
|
then
|
|
PLATFORM="cannonlake"
|
|
XTENSA_CORE="X6H3CNL_2016_4_linux"
|
|
ROOT="$pwd/../xtensa-root/xtensa-cnl-elf"
|
|
HOST="xtensa-cnl-elf"
|
|
XTENSA_TOOLS_VERSION="RF-2016.4-linux"
|
|
fi
|
|
if [ $XTENSA_TOOLS_ROOT ]
|
|
then
|
|
XTENSA_TOOLS_DIR="$XTENSA_TOOLS_ROOT/install/tools/$XTENSA_TOOLS_VERSION"
|
|
XTENSA_BUILDS_DIR="$XTENSA_TOOLS_ROOT/install/builds/$XTENSA_TOOLS_VERSION"
|
|
|
|
# make sure the required version of xtensa tools is installed
|
|
if [ -d $XTENSA_TOOLS_DIR ]
|
|
then
|
|
XCC="xt-xcc"
|
|
XTOBJCOPY="xt-objcopy"
|
|
XTOBJDUMP="xt-objdump"
|
|
else
|
|
XCC="none"
|
|
XTOBJCOPY="none"
|
|
XTOBJDUMP="none"
|
|
fi
|
|
fi
|
|
|
|
# update ROOT directory for xt-xcc
|
|
if [ $XCC == "xt-xcc" ]
|
|
then
|
|
ROOT="$XTENSA_BUILDS_DIR/$XTENSA_CORE/xtensa-elf"
|
|
export XTENSA_SYSTEM=$XTENSA_BUILDS_DIR/$XTENSA_CORE/config
|
|
PATH=$XTENSA_TOOLS_DIR/XtensaTools/bin:$OLDPATH
|
|
else
|
|
PATH=$pwd/../$HOST/bin:$OLDPATH
|
|
fi
|
|
|
|
./configure --with-arch=xtensa --with-platform=$PLATFORM --with-root-dir=$ROOT --host=$HOST \
|
|
CC=$XCC OBJCOPY=$XTOBJCOPY OBJDUMP=$XTOBJDUMP --with-dsp-core=$XTENSA_CORE
|
|
|
|
make clean
|
|
make
|
|
make bin
|
|
done
|
|
|
|
# list all the images
|
|
ls -l src/arch/xtensa/*.ri
|