Commit 23725215 authored by Dimitris Lampridis's avatar Dimitris Lampridis

Merge branch '30-make-v4-2-0-release' into 'master'

Resolve "Make v4.2.0 release"

Closes #30

See merge request be-cem-edl/common/mockturtle!23
parents 31cd1dee a0bba53b
......@@ -10,8 +10,7 @@ variables:
include:
- project: 'be-cem-edl/evergreen/gitlab-ci'
ref: master
file:
- 'edl-gitlab-ci.yml'
file: 'edl-gitlab-ci.yml'
- local: 'hdl/syn/.gitlab-ci.yml'
- local: 'hdl/testbench/.gitlab-ci.yml'
- local: 'tests/.gitlab-ci.yml'
......@@ -23,35 +22,29 @@ cppcheck:
script:
- make cppcheck
build-centos-7:
build-drivers-cc7:
interruptible: true
extends: .kernel_build_cc7
variables:
EDL_CI_KBUILD_PATHS: software/kernel
build-software-cc7:
interruptible: true
stage: build
image:
name: gitlab-registry.cern.ch/be-cem-edl/evergreen/gitlab-ci/build-fec-sw:latest
variables:
_SW_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/software
script:
- make
- make release
- mkdir -p $_SW_DEST
- cp *.tar.gz $_SW_DEST/
- make -C tests/firmware
artifacts:
paths:
- software/include/mockturtle/hw/mockturtle_cpu*.h
- software/kernel/*.ko
- software/lib/*.so*
- $_SW_DEST/*
- tests/firmware/*/*.bin
build-kernel:
interruptible: true
stage: build
allow_failure: true
image:
name: gitlab-registry.cern.ch/coht/common-containers/build-kernel:latest
parallel:
matrix:
- VERSION: [5.10.149, 5.15.74]
script:
- source /linux-versions.sh
- fetch $VERSION && prepare $VERSION && export KERNELSRC=$(linux $VERSION)
- make modules
trtl-project-creator:
interruptible: true
stage: build
......@@ -61,5 +54,3 @@ trtl-project-creator:
- TRTL=$PWD make -C /tmp/trtl_project_test/software lib
- TRTL=$PWD make -C /tmp/trtl_project_test/software tools
# TODO add firmware (need riscv32-gcc)
dependencies:
- build-centos-7
......@@ -9,11 +9,25 @@ Change Log
Format: `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_
Versioning: `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_
Unreleased
==========
[4.2.0] - 2023-06-09
====================
Added
-----
- [doc] Document RMQ interface (#28)
- [hdl] per-CPU soft-reset port (#31)
Changed
-------
- [sw] Driver no longer handles sequence codes (#24)
- [bld] pytests on real hardware now run through CI (#29)
- [bld] Software installation cleanup and migration to latest common CI
Fixed
-----
- [sw] Fix .so versioning (#25)
- [sw] Make driver compatible with 5.15+ kernels
- [hdl] RMQ TX interface flow control (#26)
- [hdl]Fix regressions in SVEC demo design (#27)
[4.1.0] - 2023-01-12
====================
......
......@@ -2,10 +2,21 @@
#
# SPDX-FileCopyrightText: 2019 CERN
PREFIX ?= /
TOP_DIR ?= $(shell pwd)
TRTL ?= $(TOP_DIR)
include common.mk
all:
$(MAKE) -C software
release:
$(eval TEMP_RELEASE_DIR := $(shell mktemp -d))
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/include install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/lib install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/lib/PyMockTurtle install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/tools install
@cd $(TEMP_RELEASE_DIR) && tar -czf $(TOP_DIR)/mockturtle-software-$(VERSION).tar.gz *
@rm -r $(TEMP_RELEASE_DIR)
%:
$(MAKE) -C software $@
......@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: LGPL-2.1-or-later
PREFIX ?= /
PREFIX ?= /usr/local
GIT_VERSION := $(shell git describe --always --dirty --long --tags)
VERSION := $(shell git describe --tags --abbrev=0 | tr -d 'v')
......
......@@ -3,35 +3,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
fpga_synthesis:
extends: .synthesis-ise-14-7
interruptible: true
stage: build
needs: []
tags:
- xilinx_ise
- "14.7"
variables:
_BITSTREAM_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
allow_failure: true
parallel:
matrix:
- SYN_NAME:
- spec_mt_demo
- svec_mt_demo
script:
- git submodule init && git submodule update
- cd hdl/syn/"$SYN_NAME"/
- hdlmake
- make
- |
if [[ $(cat *.par | grep -c "All constraints were met") = 0 ]]
then
echo -e "\e[31mTiming errors detected in PAR report. Aborting...\e[0m"
exit 1
fi
- tar -cJf $SYN_NAME.tar.xz *.syr *.par *.twr *.bit *.bin
- mkdir -p $_BITSTREAM_DEST
- cp $SYN_NAME.tar.xz $_BITSTREAM_DEST
artifacts:
name: "$SYN_NAME-synthesis-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when: always
paths:
- $_BITSTREAM_DEST/*
- EDL_CI_SYN_SRC_PATH:
- hdl/syn/spec_mt_demo
- hdl/syn/svec_mt_demo
......@@ -26,10 +26,10 @@ tools: lib
.PHONY: all clean modules install modules_install $(DIRS)
.PHONY: prereq_install prereq_install_warn
.PHONY: gtags cppcheck
.PHONY: release
install modules_install: prereq_install_warn
$(DIRS):
$(MAKE) -C $@ $(TARGET)
......
......@@ -2,9 +2,11 @@
#
# SPDX-FileCopyrightText: 2019 CERN
PREFIX ?= /
INCLUDEDESTDIR ?= $(PREFIX)/usr/local/include
TOP_DIR ?= $(shell pwd)/../..
TRTL ?= $(TOP_DIR)
include $(TRTL)/common.mk
INCLUDEDESTDIR ?= $(PREFIX)/include
all:
ifneq ($(wildcard ./mockturtle/hw/Makefile),) # Removed during distribution
......
......@@ -18,6 +18,7 @@ include $(TRTL)/common.mk
#
KVERSION ?= $(shell uname -r)
KERNELSRC ?= /lib/modules/$(KVERSION)/build
INSTALL_MOD_PATH ?= /
#
# Local targets
......@@ -32,7 +33,7 @@ clean coccicheck modules: hw_header
$@
modules_install: modules
$(MAKE) -C $(KERNELSRC) M=$(shell /bin/pwd) INSTALL_MOD_PATH=$(PREFIX) $@
$(MAKE) -C $(KERNELSRC) M=$(shell /bin/pwd) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) $@
hw_header:
$(MAKE) -C $(TRTL_SW)/include/
......
......@@ -18,7 +18,7 @@ include $(TRTL)/common.mk
SO_VERSION_XYZ := $(shell echo $(VERSION) | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+")
SO_VERSION_X := $(shell echo $(SO_VERSION_XYZ) | cut -d "." -f 1)
DESTLIBDIR ?= $(PREFIX)/usr/local/lib
DESTLIBDIR ?= $(PREFIX)/lib
LIBS = libmockturtle.so
LIBS_XYZ = $(LIBS).$(SO_VERSION_XYZ)
......
......@@ -3,4 +3,5 @@
# SPDX-FileCopyrightText: 2019 CERN
*.pyc
build
MANIFEST
......@@ -4,9 +4,15 @@
-include Makefile.specific
TOP_DIR ?= $(shell pwd)/../../..
TRTL ?= $(TOP_DIR)
include $(TRTL)/common.mk
PYTHON ?= python
all:
clean:
install:
python setup.py install
VERSION=$(VERSION) $(PYTHON) setup.py install --prefix $(PREFIX)
.PHONY: all clean install
......@@ -7,8 +7,10 @@ SPDX-FileCopyrightText: 2019 CERN
from distutils.core import setup
import os
setup(name='PyMockTurtle',
version='3.0',
version=os.environ.get('VERSION', "0.0.0"),
description='Python Module to handle Mock Turtle devices',
author='Federico Vaga',
author_email='federico.vaga@cern.ch',
......
......@@ -15,7 +15,7 @@ TOP_DIR ?= $(shell pwd)/../..
TRTL ?= $(TOP_DIR)
include $(TRTL)/common.mk
BINDESTDIR ?= $(PREFIX)/usr/local/bin
BINDESTDIR ?= $(PREFIX)/bin
CFLAGS += -Wall -Werror
CFLAGS += -I$(TRTL_SW)/include
......@@ -37,7 +37,7 @@ CPPCHECK ?= cppcheck
all: $(PROGS)
install:
install: $(PROGS)
install -d $(BINDESTDIR)
install -m 0755 $(PROGS) $(BINDESTDIR)
......
......@@ -11,15 +11,19 @@ test_on_hw:
- svec
needs:
# unfortunately the $CARD variable cannot be expanded here
- "fpga_synthesis: [spec_mt_demo]"
- "fpga_synthesis: [svec_mt_demo]"
- "build-centos-7"
- "fpga_synthesis: [hdl/syn/spec_mt_demo]"
- "fpga_synthesis: [hdl/syn/svec_mt_demo]"
- "build-drivers-cc7"
- "build-software-cc7"
tags:
- fec-runner
- card-$CARD
variables:
VID: "000010dc"
_BITSTREAM_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
_BASE_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR
_BITSTREAM_DEST: $_BASE_DEST/bitstreams
_SW_DEST: $_BASE_DEST/software
_DRV_DEST: $_BASE_DEST/driver
rules:
- if: $CARD == "spec"
variables:
......@@ -40,9 +44,10 @@ test_on_hw:
- rmmod $CARD-fmc-carrier || true
- sh /usr/local/drivers/scripts/${CARD}_fmc_carrier_install.sh
- export TMP_DIR=$(mktemp -d)
- tar xvf $_SW_DEST/mockturtle-software-*.tar.gz -C $TMP_DIR/
- mkdir -p $TMP_DIR/lib/modules
- cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/lib/modules
- cp software/kernel/*.ko $TMP_DIR/lib/modules/$(uname -r)/extra/cern/
- cp -r $_DRV_DEST/lib/modules/$(uname -r) $TMP_DIR/lib/modules
- export MODPROBE_ROOT=$TMP_DIR
- depmod -b $MODPROBE_ROOT
- export FIRMWARE_PATH=$TMP_DIR/bitstreams
......@@ -65,7 +70,6 @@ test_on_hw:
- modprobe -d $MODPROBE_ROOT mockturtle
- modprobe -d $MODPROBE_ROOT mockturtle-${CARD}-demo
- export MT_NODE=$(ls -d /sys/bus/platform/devices/id\:$VID$PID.*/mock-turtle.* | cut -d '.' -f 4)
- DESTLIBDIR=$TMP_DIR/lib make -C software/lib install
- export LD_LIBRARY_PATH=$TMP_DIR/lib
- source /acc/local/share/python/acc-py/base/pro/setup.sh
- acc-py venv $TMP_DIR/venv
......@@ -75,7 +79,7 @@ test_on_hw:
script:
- tail -n +1 /sys/kernel/debug/$DEVID/fpga_device_metadata
- tail -n +1 /sys/kernel/debug/$DEVID/$FPGAID/build_info
- /usr/local/bin/lsmockturtle
- $TMP_DIR/bin/lsmockturtle
- cd tests
- pytest --id $MT_NODE --junitxml=./pytest.xml
artifacts:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment