SUMMARY = "Image Generation and Programming Scripts for NPCM8XX (Arbel) devices"
DESCRIPTION = "Image Generation and Programming Scripts for NPCM8XX (Arbel) devices"
HOMEPAGE = "https://github.com/Nuvoton-Israel/igps-npcm8xx"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"

IGPS_BRANCH ?= "main"
SRC_URI = " \
    git://github.com/Nuvoton-Israel/igps-npcm8xx;branch=${IGPS_BRANCH};protocol=https \
"

S = "${WORKDIR}/git"

DEST = "${D}${datadir}/${BPN}"

# Adjust paths for use with bitbake
do_patch() {
	sed -i -e 's,inputs/,,g' ${S}/py_scripts/ImageGeneration/references/*.xml \
		${S}/py_scripts/ImageGeneration/inputs/*.xml
}

do_install() {
	install -d ${DEST}
    if [ "${TIP_IMAGE}" = "True" ] ; then
        install py_scripts/ImageGeneration/references/BootBlockAndHeader_${DEVICE_GEN}_${IGPS_MACHINE}.xml ${DEST}
	else
        install py_scripts/ImageGeneration/references/BootBlockAndHeader_${DEVICE_GEN}_${IGPS_MACHINE}_NoTip.xml ${DEST}
    fi
	install py_scripts/ImageGeneration/references/UbootHeader_${DEVICE_GEN}.xml ${DEST}
	install py_scripts/ImageGeneration/inputs/BL31_AndHeader.xml ${DEST}
	install py_scripts/ImageGeneration/inputs/OpTeeAndHeader.xml ${DEST}
	install py_scripts/ImageGeneration/asn1.py ${DEST}
	install py_scripts/ImageGeneration/BinarySignatureGenerator.py ${DEST}
}

inherit deploy

do_deploy () {
	# copy default keys to deploy folder
	install -d ${DEPLOYDIR}
	cp -vur py_scripts/ImageGeneration/keys/${SIGN_TYPE} ${DEPLOYDIR}/
}

inherit native

addtask deploy before do_build after do_compile
