diff options
Diffstat (limited to 'recipes-misc/de10-nano-fpga-init')
3 files changed, 102 insertions, 0 deletions
diff --git a/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb b/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb new file mode 100644 index 0000000..d7fad4d --- /dev/null +++ b/recipes-misc/de10-nano-fpga-init/de10-nano-fpga-init.bb @@ -0,0 +1,37 @@ +SUMMARY = "DE10-Nano FPGA Initialization" +DESCRIPTION = "Scripts to initialize the FPGA and its peripherals using devicetree overlays." +AUTHOR = "Dalon Westergreen <dwesterg@gmail.com>" +SECTION = "DE10-Nano" + +PR = "r0" + +inherit systemd + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +PV = "1.0${PR}" + +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" +SRC_URI = "file://de10-nano-fpga-init.service \ + file://de10-nano-fpga-init.sh \ + " + +do_install() { + install -d ${D}${base_libdir}/systemd/system + install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system + + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/*.sh ${D}${bindir} +} + +ALLOW_EMPTY_${PN} = "1" + +FILES_${PN}-network = "${base_libdir}/systemd/system/de10-nano-fpga-init.service \ + ${bindir}/de10-nano-fpga-init.sh" + + +NATIVE_SYSTEMD_SUPPORT = "1" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "de10-nano-fpga-init.service" diff --git a/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service new file mode 100644 index 0000000..6a6b19a --- /dev/null +++ b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.service @@ -0,0 +1,9 @@ +[Unit] +Description=Start FPGA init + +[Service] +Type=simple +ExecStart=/usr/bin/de10-nano-fpga-init.sh + +[Install] +WantedBy=basic.target diff --git a/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh new file mode 100755 index 0000000..6e1a154 --- /dev/null +++ b/recipes-misc/de10-nano-fpga-init/files/de10-nano-fpga-init.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# +# The MIT License (MIT) +# Copyright (c) 2016 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + + +CONFIGFS_DIR=/sys/kernel/config/device-tree/overlays + +BOARD_MODEL=$(cat /proc/device-tree/model) + +# Checks to ensure that we have DT overlay support +if [ ! -e "$CONFIGFS_DIR" ]; then + echo "Error: Device Tree Overlay not supported" + exit -1 +fi + +DTBO_NAME="" +case "$BOARD_MODEL" in + "Terasic DE-0(Atlas)") + DTBO_NAME="de0-nano.dtbo" + ;; + "Terasic DE10-Nano") + DTBO_NAME="de10-nano.dtbo" + ;; + *) + echo "NO BOARD MODEL MATCH" + exit -1 + ;; +esac + +if [ ! -e /lib/firmware/$DTBO_NAME ]; then + echo "$DTBO_NAME file not found" + exit -1 +fi + +mkdir $CONFIGFS_DIR/$DTBO_NAME +echo $DTBO_NAME > $CONFIGFS_DIR/$DTBO_NAME/path |