mirror of https://github.com/openXC7/prjxray.git
86 lines
3.3 KiB
Bash
86 lines
3.3 KiB
Bash
# dirs
|
|
XRAY_ENV_PATH="${BASH_SOURCE[0]}"
|
|
while [ -h "$XRAY_ENV_PATH" ]; do # resolve $XRAY_ENV_PATH until the file is no longer a symlink
|
|
XRAY_UTILS_DIR="$( cd -P "$( dirname "$XRAY_ENV_PATH" )" && pwd )"
|
|
XRAY_ENV_PATH="$(readlink "$XRAY_ENV_PATH")"
|
|
[[ $XRAY_ENV_PATH != /* ]] && XRAY_ENV_PATH="$XRAY_UTILS_DIR/$XRAY_ENV_PATH" # if $XRAY_ENV_PATH was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
done
|
|
export XRAY_UTILS_DIR="$( cd -P "$( dirname "$XRAY_ENV_PATH" )" && pwd )"
|
|
export XRAY_DIR="$( dirname "$XRAY_UTILS_DIR" )"
|
|
export XRAY_DATABASE_DIR="${XRAY_DIR}/database"
|
|
export XRAY_TOOLS_DIR="${XRAY_DIR}/build/tools"
|
|
export XRAY_FUZZERS_DIR="${XRAY_DIR}/fuzzers"
|
|
|
|
if [ -e "${XRAY_DIR}/env/bin/activate" ]; then
|
|
source "${XRAY_DIR}/env/bin/activate"
|
|
fi
|
|
|
|
# misc
|
|
export XRAY_PART_YAML="${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/${XRAY_PART}.yaml"
|
|
export PYTHONPATH="${XRAY_DIR}:${XRAY_DIR}/third_party/fasm:$PYTHONPATH"
|
|
|
|
# tools
|
|
export XRAY_GENHEADER="${XRAY_UTILS_DIR}/genheader.sh"
|
|
export XRAY_BITREAD="${XRAY_TOOLS_DIR}/bitread --part_file ${XRAY_PART_YAML}"
|
|
export XRAY_MERGEDB="bash ${XRAY_UTILS_DIR}/mergedb.sh"
|
|
export XRAY_DBFIXUP="python3 ${XRAY_UTILS_DIR}/dbfixup.py"
|
|
export XRAY_MASKMERGE="bash ${XRAY_UTILS_DIR}/maskmerge.sh"
|
|
export XRAY_SEGMATCH="${XRAY_TOOLS_DIR}/segmatch"
|
|
export XRAY_SEGPRINT="python3 ${XRAY_UTILS_DIR}/segprint.py"
|
|
export XRAY_BIT2FASM="python3 ${XRAY_UTILS_DIR}/bit2fasm.py"
|
|
export XRAY_FASM2FRAMES="python3 ${XRAY_UTILS_DIR}/fasm2frames.py"
|
|
export XRAY_BITTOOL="${XRAY_TOOLS_DIR}/bittool"
|
|
export XRAY_BLOCKWIDTH="python3 ${XRAY_UTILS_DIR}/blockwidth.py"
|
|
export XRAY_PARSEDB="python3 ${XRAY_UTILS_DIR}/parsedb.py"
|
|
export XRAY_TCL_REFORMAT="${XRAY_UTILS_DIR}/tcl-reformat.sh"
|
|
export XRAY_VIVADO="${XRAY_UTILS_DIR}/vivado.sh"
|
|
|
|
# Verify an approved version is in use
|
|
export XRAY_VIVADO_SETTINGS="${XRAY_VIVADO_SETTINGS:-/opt/Xilinx/Vivado/2017.2/settings64.sh}"
|
|
# Vivado v2017.2 (64-bit)
|
|
if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then
|
|
echo "Requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"
|
|
# Can't exit since sourced script
|
|
# Trash a key environment variable to preclude use
|
|
export XRAY_DIR="/bad/vivado/version"
|
|
return
|
|
fi
|
|
|
|
function init_db
|
|
{
|
|
# Check if database files exist. If don't, create empty ones
|
|
db_files="mask_clbll_l.db \
|
|
mask_clbll_r.db \
|
|
mask_clblm_l.db \
|
|
mask_clblm_r.db \
|
|
mask_hclk_l.db \
|
|
mask_hclk_r.db \
|
|
ppips_clbll_l.db \
|
|
ppips_clbll_r.db \
|
|
ppips_clblm_l.db \
|
|
ppips_clblm_r.db \
|
|
ppips_hclk_l.db \
|
|
ppips_hclk_r.db \
|
|
ppips_int_l.db \
|
|
ppips_int_r.db \
|
|
segbits_bram_l.block_ram.db \
|
|
segbits_bram_l.db \
|
|
segbits_bram_r.block_ram.db \
|
|
segbits_bram_r.db \
|
|
segbits_clbll_l.db \
|
|
segbits_clbll_r.db \
|
|
segbits_clblm_l.db \
|
|
segbits_clblm_r.db \
|
|
segbits_hclk_l.db \
|
|
segbits_hclk_r.db \
|
|
segbits_int_l.db \
|
|
segbits_int_r.db"
|
|
|
|
for db in $db_files
|
|
do
|
|
if [ ! -f ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/$db ]; then
|
|
touch ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/$db
|
|
fi
|
|
done
|
|
}
|