Skip to content

Commit

Permalink
Merge branch 'release/2.0.0' into aravuri/pull_libs
Browse files Browse the repository at this point in the history
  • Loading branch information
anandaravuri committed Sep 18, 2020
2 parents 0dfb115 + dc237b9 commit 6bac5c3
Show file tree
Hide file tree
Showing 13 changed files with 185 additions and 52 deletions.
70 changes: 59 additions & 11 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Open Programmable Acceleration Engine (OPAE) is a software framework for managin

- OPAE Software Development Kit (OPAE SDK),

- OPAE Linux driver for Intel(R) Xeon(R) CPU with Integrated FPGAs and Intel(R) PAC with Arria(R) 10 GX FPGA
- OPAE Linux DFL driver for Intel® FPGA Programmable Acceleration Card

- Basic Building Block (BBB) library for accelerating AFU
development (not part of this release, but pre-release code is
Expand All @@ -17,22 +17,70 @@ OPAE\'s goal is to accelerate FPGA adoption. It is a community effort to simplif
More information about OPAE can be found
at http://01.org/OPAE.

Open Programmable Acceleration Engine (OPAE) 1.4.0 Release Notes
-----------------------------------------------------------------

This document provides the Release Notes for the Open Programmable
Acceleration Engine (OPAE) 1.4.0 release.

Open Programmable Acceleration Engine (OPAE) 2.0.0 Release Notes
----------------------------------------------------------------------------------------------------------------------

OPAE 2.0.0 release provides SDK, tools, and Linux kernel driver. The main feature of this release is to support Intel® FPGA Programmable Acceleration Card N3000 series.

System Compatibility
--------------------
- Hardware: Tightly coupled FPGA products and programmable FPGA acceleration cards for Intel(R) Xeon(R) processors:
- Intel® FPGA Programmable Acceleration Card N3000-2 Production Release
- Intel® FPGA Programmable Acceleration Card N3000-V Production Release
- Intel® FPGA Programmable Acceleration Card N3000-3 Production Release


Major Changes from 1.4.1 to 2.0.0
---------------------------------
- Added support to FPGA Linux kernel Device Feature List (DFL) driver.
- Added support to PAC card N3000 series.
- Added PACSign, bitstream_info, fpgasudpate, rsu, fpgaotsu, fpgaport python tools.
- Added ethernet tools for PAC card N3000.
- Various bug fixes
- Various Static code scan bug fixes
- Added python3 support.
- OPAE USMG API are deprecated.
- Updated OPAE documentation.

- Operating System: Tested on Fedora 31 with Linux Kernel 5.8 version.

Source Code:
------------
- FPGA DFL Linux driver source code: tag 2.0.0-1
- https://github.com/OPAE/linux-dfl/tree/fpga-upstream-dev-5.8.0

- SDK and tools source code: tag 2.0.0-1
- https://github.com/OPAE/opae-sdk/tree/release/2.0.0
- https://github.com/OPAE/opae-libs/tree/release/2.0.0
- https://github.com/OPAE/opae-legacy/tree/release/2.0.0
- https://github.com/OPAE/opae-sim/tree/release/2.0.0
- https://github.com/OPAE/opae-test/tree/release/2.0.0

Notes/Known Issues
------------------
- FPGA DFL kernel driver upstreaming to Linux kernel is on going
- OPAE 2.0 is not compatible with Intel previous production FPGA driver.


Major Changes from 1.4.0 to 2.0.0
----------------------------------

- Added support to FPGA Linux kernel Device Feature List (DFL) driver patch set3,set4 and set5.
- Added support to both PAC card N3000 & D5005 cards.
- Added pacsingn, bitstreaminfo, fpgasudpate, rsu python tools.
- Added ethernet tools for PAC card N3000.
- Various bug fixes
- Various memory leak fixes
- Various Static code scan bug fixes

- OPAE 2.0.0 tested on Fedora 31 with Linux Kernel 5.8 version.

- FPGA DFL Linux driver source code available in Linux 5.8 kernel
- https://github.com/OPAE/linux-dfl/tree/fpga-upstream-dev-5.8.0

- Hardware: tightly coupled FPGA products and programmable FPGA
acceleration cards for Intel(R) Xeon(R) processors:
- Intel(R) PAC with Arria(R) 10 GX FPGA (PCI ID: 0x09c4) FIM version 1.1.2-1 (1.2 Production)
- Intel(R) Xeon with Integrated FPGA (PCI ID: 0xbcc0) FIM version 6.4.0
- Intel® FPGA Programmable Acceleration Card N3000 (PCI ID: 0x0b30) FIM version D.1.0.13 (1.0 Production)

- Operating System: Tested on RedHat 7.6, CentOS 7.6 with Linux Kernel 3.10 and the community 4.19 LTS kernels.

Major Changes from 1.3.0 to 1.4.0
----------------------------------
Expand Down
61 changes: 49 additions & 12 deletions opae.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Summary: Open Programmable Acceleration Engine (OPAE) SDK
Name: opae
Version: 1.4.0
Version: 2.0.0
Release: 1%{?dist}
License: BSD
ExclusiveArch: x86_64
Expand Down Expand Up @@ -28,6 +28,7 @@ BuildRequires: tbb-devel
BuildRequires: git
BuildRequires: python3-pip
BuildRequires: python3-virtualenv
BuildRequires: systemd-rpm-macros

%description
Open Programmable Acceleration Engine (OPAE) is a software framework
Expand Down Expand Up @@ -64,7 +65,7 @@ rm -rf _build
mkdir _build
cd _build

%cmake .. -DCMAKE_INSTALL_PREFIX=/usr -B $PWD
%cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DOPAE_PRESERVE_REPOS=ON -DOPAE_BUILD_LEGACY=ON -B $PWD

%make_build opae-c \
bitstream \
Expand All @@ -90,7 +91,10 @@ cd _build
nlb0\
nlb3\
nlb7\
mmlink
mmlink\
fpgad\
fpgad-api\
fpgad-vc\


%install
Expand Down Expand Up @@ -157,7 +161,9 @@ DESTDIR=%{buildroot} cmake -DCOMPONENT=opaecxxutils -P cmake_install.cmake
DESTDIR=%{buildroot} cmake -DCOMPONENT=opaecxxnlb -P cmake_install.cmake
DESTDIR=%{buildroot} cmake -DCOMPONENT=toolfpgadiagapps -P cmake_install.cmake
DESTDIR=%{buildroot} cmake -DCOMPONENT=toolfpgadiag -P cmake_install.cmake

DESTDIR=%{buildroot} cmake -DCOMPONENT=toolfpgad -P cmake_install.cmake
DESTDIR=%{buildroot} cmake -DCOMPONENT=toolfpgad_api -P cmake_install.cmake
DESTDIR=%{buildroot} cmake -DCOMPONENT=toolfpgad_vc -P cmake_install.cmake

prev=$PWD
pushd %{_topdir}/BUILD/opae/python/opae.admin/
Expand All @@ -168,26 +174,35 @@ pushd %{_topdir}/BUILD/opae/python/pacsign
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot} --record=$prev/INSTALLED_PACSIGN_FILES
popd

pushd %{_topdir}/BUILD/opae/tools/extra/fpgadiag/
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot} --record=$prev/INSTALLED_FPGADIAG_FILES
pushd %{_topdir}/BUILD/opae/scripts
install -m 755 eth_group_mdev.sh %{buildroot}/usr/bin/eth_group_mdev.sh
popd

%post
%systemd_post fpgad.service

%preun
%systemd_preun fpgad.service

%postun
%systemd_postun_with_restart fpgad.service

%files
%dir %{_datadir}/opae
%doc %{_datadir}/opae/RELEASE_NOTES.md
%license %{_datadir}/opae/LICENSE
%license %{_datadir}/opae/COPYING

%{_libdir}/libopae-c.so.%{version}
%{_libdir}/libopae-c.so.1
%{_libdir}/libopae-c.so.2
%{_libdir}/libbitstream.so.%{version}
%{_libdir}/libbitstream.so.1
%{_libdir}/libbitstream.so.2
%{_libdir}/libopae-cxx-core.so.%{version}
%{_libdir}/libopae-cxx-core.so.1
%{_libdir}/libopae-cxx-core.so.2
%{_libdir}/libopae-c++-utils.so.%{version}
%{_libdir}/libopae-c++-utils.so.1
%{_libdir}/libopae-c++-utils.so.2
%{_libdir}/libopae-c++-nlb.so.%{version}
%{_libdir}/libopae-c++-nlb.so.1
%{_libdir}/libopae-c++-nlb.so.2


%files devel
Expand Down Expand Up @@ -248,14 +263,36 @@ popd
%{_bindir}/fpga_dma_N3000_test
%{_bindir}/fpga_dma_test
%{_bindir}/PACSign
%{_bindir}/fpgad
/etc/opae/fpgad.cfg
/etc/sysconfig/fpgad.conf
%{_libdir}/libfpgad-api.so*
%{_libdir}/opae/libfpgad-vc.so*
/usr/lib/systemd/system/fpgad.service
%{_bindir}/eth_group_mdev.sh


%{_usr}/share/opae/*
/usr/lib/python*
%{_datadir}/doc/opae.admin/LICENSE
%{_libdir}/python*



%changelog
* Thu Sep 17 2020 Ananda Ravuri <ananda.ravuri@intel.com> 2.0.0-1
- Various Static code scan bug fixes
- Added support to FPGA Linux kernel Device Feature List (DFL) driver.
- Added support to PAC card N3000 series.
- Added PACSign, bitstream_info, fpgasudpate, rsu, fpgaotsu, fpgaport python tools.
- Added ethernet tools for PAC card N3000.
- Various bug fixes
- Various memory leak fixes.
- Various Static code scan bug fixes
- Added python3 support.
- OPAE USMG API are deprecated.
- Updated OPAE documentation.


* Tue Dec 17 2019 Korde Nakul <nakul.korde@intel.com> 1.4.0-1
- Added support to FPGA Linux kernel Device Feature List (DFL) driver patch set2.
- Increased test cases and test coverage
Expand Down
5 changes: 5 additions & 0 deletions opae.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ popd

pushd @CMAKE_SOURCE_DIR@/tools/extra/fpgadiag/

%{__python3} setup.py build_ext --include-dirs=@pybind11_ROOT@/include
%{__python3} setup.py build
popd

Expand All @@ -132,6 +133,8 @@ pushd @CMAKE_SOURCE_DIR@/tools/extra/fpgadiag/
%{__python3} setup.py install --single-version-externally-managed -O@CPACK_PACKAGE_RELEASE@ --root=$RPM_BUILD_ROOT --record=$prev/INSTALLED_FPGADIAG_FILES
popd

install -m 755 @CMAKE_SOURCE_DIR@/scripts/eth_group_mdev.sh %{buildroot}/usr/bin/eth_group_mdev.sh

%clean


Expand Down Expand Up @@ -242,11 +245,13 @@ ldconfig
@CMAKE_INSTALL_PREFIX@/@OPAE_LIB_INSTALL_DIR@/libhssi*
@CMAKE_INSTALL_PREFIX@/@OPAE_LIB_INSTALL_DIR@/libopae-c++-nlb.so*
@CMAKE_INSTALL_PREFIX@/@OPAE_LIB_INSTALL_DIR@/libopae-c++-utils.so*
@CMAKE_INSTALL_PREFIX@/bin/eth_group_mdev.sh
%dir @CMAKE_INSTALL_PREFIX@/share/opae
%dir @CMAKE_INSTALL_PREFIX@/share/opae/python/
%dir @CMAKE_INSTALL_PREFIX@/share/opae/python/*
@CMAKE_INSTALL_PREFIX@/share/opae/python/*


%if %with_ase == "ON"
%files ase
%license @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_DOCDIR@/LICENSE
Expand Down
8 changes: 7 additions & 1 deletion samples/hssi/hssi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,14 @@ void sig_handler(int signum)

int main(int argc, char *argv[])
{
int res = 1;
signal(SIGINT, sig_handler);
app.register_command<hssi_10g_cmd>();
app.register_command<hssi_100g_cmd>();
return app.main(argc, argv);
try {
res = app.main(argc, argv);
} catch (std::runtime_error &e) {
std::cerr << e.what() << std::endl;
}
return res;
}
32 changes: 22 additions & 10 deletions samples/hssi/hssi_afu.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class hssi_afu : public test_afu {
uint64_t val;
struct timespec ts;
uint64_t ticks;
const uint64_t max_ticks = 1000ULL;
const uint64_t max_ticks = 10000ULL;

val = (((uint64_t)data) << WRITE_DATA_SHIFT);
*((volatile uint64_t *)(mmio_base + TRAFFIC_CTRL_DATA)) = val;
Expand All @@ -117,8 +117,11 @@ class hssi_afu : public test_afu {
break;
if (nanosleep(&ts, NULL) != -1 &&
ticks != NO_TIMEOUT) {
if (!ticks)
throw std::runtime_error("mbox_write timed out [a]");
if (!ticks) {
const char *msg = "mbox_write timed out [a]";
std::cerr << msg << std::endl;
throw std::runtime_error(msg);
}
--ticks;
}
} while (!(val & ACK_TRANS));
Expand All @@ -132,8 +135,11 @@ class hssi_afu : public test_afu {
break;
if (nanosleep(&ts, NULL) != -1 &&
ticks != NO_TIMEOUT) {
if (!ticks)
throw std::runtime_error("mbox_write timed out [b]");
if (!ticks) {
const char *msg = "mbox_write timed out [b]";
std::cerr << msg << std::endl;
throw std::runtime_error(msg);
}
--ticks;
}
} while (val & ACK_TRANS);
Expand All @@ -147,7 +153,7 @@ class hssi_afu : public test_afu {
uint64_t val;
struct timespec ts;
uint64_t ticks;
const uint64_t max_ticks = 1000ULL;
const uint64_t max_ticks = 10000ULL;

val = (((uint64_t)offset) << AFU_CMD_SHIFT) | READ_CMD;
*((volatile uint64_t *)(mmio_base + TRAFFIC_CTRL_CMD)) = val;
Expand All @@ -162,8 +168,11 @@ class hssi_afu : public test_afu {
break;
if (nanosleep(&ts, NULL) != -1 &&
ticks != NO_TIMEOUT) {
if (!ticks)
throw std::runtime_error("mbox_read timed out [a]");
if (!ticks) {
const char *msg = "mbox_read timed out [a]";
std::cerr << msg << std::endl;
throw std::runtime_error(msg);
}
--ticks;
}
} while (!(val & ACK_TRANS));
Expand All @@ -180,8 +189,11 @@ class hssi_afu : public test_afu {
break;
if (nanosleep(&ts, NULL) != -1 &&
ticks != NO_TIMEOUT) {
if (!ticks)
throw std::runtime_error("mbox_read timed out [b]");
if (!ticks) {
const char *msg = "mbox_read timed out [b]";
std::cerr << msg << std::endl;
throw std::runtime_error(msg);
}
--ticks;
}
} while (val & ACK_TRANS);
Expand Down
34 changes: 30 additions & 4 deletions scripts/create-rpms.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ BUILD_DIR=${PWD}

echo ${PWD}

cd ..
rm -rf _build
mkdir _build
cd _build
cmake .. -DOPAE_BUILD_LEGACY=ON -DOPAE_BUILD_TESTS=ON


cd ../..
tar --transform='s/opae-sdk/opae/' \
--exclude=.git \
Expand All @@ -31,21 +38,40 @@ tar --transform='s/opae-sdk/opae/' \
--exclude=opae.spec.in \
--exclude=opae.spec \
--exclude=opae-libs/external \
--exclude=opae-libs/tests \
--exclude=opae-libs/plugins/ase \
--exclude=opae-libs/cmake/config/libopae-all.spec.in \
--exclude=opae-libs/cmake/config/run_coverage_test.sh.in \
--exclude=opae-libs/cmake/config/run_coverage_test_local.sh.in\
--exclude=external \
--exclude=external/opae-legacy/tests \
--exclude=external/opae-legacy/scripts \
--exclude=external/opae-legacy/tools/coreidle \
--exclude=external/opae-legacy/tools/hssi \
--exclude=platforms \
--exclude=samples/base \
--exclude=samples/hello_afu \
--exclude=samples/dummy_afu \
--exclude=samples/hello_mpf_afu \
--exclude=samples/intg_xeon_nlb \
--exclude=samples/base \
--exclude=scripts \
--exclude=tests \
--exclude=scripts/build-documentation.sh \
--exclude=scripts/build-pypi.sh \
--exclude=scripts/build-tests-default.sh \
--exclude=scripts/coverage-gtapi-mock-drv.sh \
--exclude=scripts/cover-ase.sh \
--exclude=scripts/cover-py.sh \
--exclude=scripts/cover.sh \
--exclude=scripts/create-rpms.sh \
--exclude=scripts/docker_rpm.sh \
--exclude=scripts/index_generator.py \
--exclude=scripts/test-build.sh \
--exclude=scripts/test-codingstyle-all.sh \
--exclude=scripts/test-codingstyle-cpp.sh \
--exclude=scripts/test-gtapi-mock-drv.sh \
--exclude=scripts/unit-tests.sh \
--exclude=scripts/valgrind \
--exclude=scripts/.gitignore \
--exclude=scripts/bat \
--exclude=scripts/push-documentation.sh \
--exclude=tools/extra/ras \
--exclude=tools/extra/pac_hssi_config \
--exclude=tools/extra/pyfpgadiag \
Expand Down

0 comments on commit 6bac5c3

Please sign in to comment.