From 49e018433dce2f3b991dba332040ef0e0b7e1351 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Tue, 12 Jun 2018 16:31:06 +0300 Subject: [PATCH] rework ubuntu-demo-opae Installed OPAE from packages instead of building it from source Used nlb3 and nlb0 sample programs instead of building hello_fpga --- demo/ubuntu-demo-opae/Dockerfile | 19 ++++++------------- demo/ubuntu-demo-opae/run_hello_fpga.sh | 20 -------------------- demo/ubuntu-demo-opae/test_fpga.sh | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 33 deletions(-) delete mode 100755 demo/ubuntu-demo-opae/run_hello_fpga.sh create mode 100755 demo/ubuntu-demo-opae/test_fpga.sh diff --git a/demo/ubuntu-demo-opae/Dockerfile b/demo/ubuntu-demo-opae/Dockerfile index d42c7dde..b579c5d3 100644 --- a/demo/ubuntu-demo-opae/Dockerfile +++ b/demo/ubuntu-demo-opae/Dockerfile @@ -1,22 +1,15 @@ FROM ubuntu:16.04 # install OPAE build tools and dependencies -RUN apt-get update && apt-get install -y cmake gcc g++ patch wget zip libboost-all-dev libjson-c-dev uuid-dev +RUN apt-get update && apt-get install -y wget libjson0 uuid-dev -COPY hello_fpga.diff /opt/build/ +ENV OPAE_URL https://github.com/OPAE/opae-sdk/releases/download/1.0.0-5 # download OPAE sources RUN mkdir -p /opt/build && \ cd /opt/build && \ - wget https://github.com/OPAE/opae-sdk/archive/0.13.0.tar.gz -O- | tar -zx + wget $OPAE_URL/opae-libs-1.0.0.x86_64.deb $OPAE_URL/opae-tools-1.0.0.x86_64.deb \ + $OPAE_URL/opae-tools-extra-1.0.0.x86_64.deb $OPAE_URL/opae-devel-1.0.0.x86_64.deb && \ + dpkg -i *.deb -# patch, build and install OPAE and hello_fpga -RUN cd /opt/build/opae-sdk-0.13.0 && \ - patch -p0 < ../hello_fpga.diff && \ - mkdir mybuild && \ - cd mybuild && \ - cmake .. -DBUILD_ASE=1 && \ - make install && \ - cp ./bin/hello_fpga /usr/bin/ - -COPY run_hello_fpga.sh /usr/bin/ +COPY test_fpga.sh /usr/bin/ diff --git a/demo/ubuntu-demo-opae/run_hello_fpga.sh b/demo/ubuntu-demo-opae/run_hello_fpga.sh deleted file mode 100755 index db182e3d..00000000 --- a/demo/ubuntu-demo-opae/run_hello_fpga.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -xe - -if [ $(cat /sys/class/fpga/intel-fpga-dev.0/intel-fpga-port.0/afu_id) != 'd8424dc4a4a3c413f89e433683f9040b' ] ; then - echo 'ERROR: NLB(Native Loopback Adapter) AFU is not loaded' >&2 - echo 'Please refer to the NLB documentation for the location of the NLB green bitstream.' - exit 1 -fi - -if [ $(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages) -lt 20 ] ; then - echo 'ERROR: system hugepage is not configured to reserve 2M-hugepages' >&2 - echo 'please run this command to do it: "echo 20 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages"' - exit 1 -fi - -devnum=$(ls /dev/intel-fpga-port.* | cut -f2 -d.) -name="intel-fpga-dev.$devnum" -bus="0x$(ls -la /sys/class/fpga/$name/ |grep device |cut -f3 -d:)" -echo "using device $name, bus $bus" - -/usr/bin/hello_fpga -b $bus diff --git a/demo/ubuntu-demo-opae/test_fpga.sh b/demo/ubuntu-demo-opae/test_fpga.sh new file mode 100755 index 00000000..723d9ef5 --- /dev/null +++ b/demo/ubuntu-demo-opae/test_fpga.sh @@ -0,0 +1,22 @@ +#!/bin/sh -e + +# Test FPGA by running 2 OPAE samples: nlb3 and nlb0 +# nlb3 is expected to succeed, nlb0 - to fail +green () { echo "\033[0;32m$1\033[0m";} +red () { echo "\033[0;31m$1\033[0m";} + +green 'Running nlb3' +if nlb3; then + green 'nlb3 succeeded as expected' + green 'Running nlb0 sample' + if nlb0; then + red 'nlb0 succeeded' + red 'FAILURE: unexpected nlb0 success' + else + green 'nlb0 failed as expected' + green 'SUCCESS' + fi +else + red 'nlb3 failed' + green 'FAILURE: unexpeced nlb3 failure' +fi