# Written from techlab demo. Only one FPGA is targeted for us

PL_VARIANTS_damc-fmc2zup = "cellnode centralnode test_cellnode test_centralnode"
PL_DEFAULT_VARIANT_damc-fmc2zup = "cellnode"

# HDF file suffix
HDF_PATH_damc-fmc2zup = "damc_fmc2zup_top.xsa"

S = "${WORKDIR}"

# Removing Xilinx default HDF
SRC_URI_remove = "${HDF_BASE}${HDF_PATH}"

# Repository for xsa
XSA_REPO = "https://drive2.demo.renater.fr/index.php/s/xctBtbgTHLD2rpg/download?path/&files="
XSA_VERSION = "0.4.1-2"
SRC_URI += "${XSA_REPO}FofbNode_CellNode_${XSA_VERSION}.xsa;md5sum=7321e29ba73820bf94149291a96fdbb8;downloadfilename=cellnode_damc_fmc2zup_top.xsa"
SRC_URI += "${XSA_REPO}FofbNode_CentralNode_${XSA_VERSION}.xsa;md5sum=890db1cd21c83f410009cea2d6609d53;downloadfilename=centralnode_damc_fmc2zup_top.xsa"
SRC_URI += "${XSA_REPO}FofbNode_CellNode_${XSA_VERSION}.mapt;downloadfilename=app_cellnode.mapt;md5sum=f2bf02fb04d98a629db432b30d8f0645"
SRC_URI += "${XSA_REPO}FofbNode_CentralNode_${XSA_VERSION}.mapt;downloadfilename=app_centralnode.mapt;md5sum=8c8324fdbaa23ef1dc39d5b49a5c1b27"

# Local testing variants added in source
SRC_URI += "file://app_test_cellnode.mapt"
SRC_URI += "file://test_cellnode_${HDF_PATH}"
SRC_URI += "file://app_test_centralnode.mapt"
SRC_URI += "file://test_centralnode_${HDF_PATH}"

# THis recipe ships map files
FILES_${PN}+="/opt/fofb/map/*"

do_install_prepend() {
    # Link .xsa file to match Techlab install
    for VARIANT in ${PL_VARIANTS}; do
        mkdir -p ${WORKDIR}/${VARIANT}
        ln -sf ${S}/${VARIANT}_${HDF_PATH} ${VARIANT}/${HDF_PATH}
    done

}

do_install_append() {
    # Put map files into directory
    install -d ${D}/opt/fofb/map
    for VARIANT in ${PL_VARIANTS}
    do
        # replacing BAR by 0 on the way
        awk 'FNR>1 {$5=0} {print}' ${WORKDIR}/app_${VARIANT}.mapt > ${WORKDIR}/app_${VARIANT}.mapt.bar0
        install -m 0644 ${WORKDIR}/app_${VARIANT}.mapt.bar0 ${D}/opt/fofb/map/app_${VARIANT}.mapt
    done
}

FILESEXTRAPATHS_prepend := "${THISDIR}/${MACHINE}:"