Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
WRTD Reference Designs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
WRTD Reference Designs
Commits
6432fc55
Commit
6432fc55
authored
May 10, 2023
by
Dimitris Lampridis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ci: use common EDL CI pipelines
Also cleanup and improve pytests Make hdl synthesis optional (see #29)
parent
3c155c58
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
153 additions
and
124 deletions
+153
-124
.gitlab-ci.yml
.gitlab-ci.yml
+53
-2
mock-turtle
dependencies/mock-turtle
+1
-1
.gitlab-ci.yml
hdl/syn/.gitlab-ci.yml
+0
-45
Manifest.py
hdl/syn/wrtd_ref_spec150t_adc/Manifest.py
+2
-1
Manifest.py
hdl/syn/wrtd_ref_svec_adc_x2/Manifest.py
+2
-1
Manifest.py
hdl/syn/wrtd_ref_svec_fd_x2/Manifest.py
+2
-1
Manifest.py
hdl/syn/wrtd_ref_svec_tdc_fd/Manifest.py
+5
-4
Manifest.py
hdl/syn/wrtd_ref_svec_tdc_x2/Manifest.py
+2
-1
.gitlab-ci.yml
hdl/testbench/.gitlab-ci.yml
+1
-4
Manifest.py
hdl/testbench/wrtd_ref_spec150t_adc/Manifest.py
+2
-1
Manifest.py
hdl/testbench/wrtd_ref_svec_tdc_fd/Manifest.py
+6
-5
.gitlab-ci.yml
pytest/.gitlab-ci.yml
+60
-22
requirements.txt
pytest/requirements.txt
+1
-0
conftest.py
pytest/tests/conftest.py
+4
-4
.gitlab-ci.yml
software/.gitlab-ci.yml
+0
-21
Makefile
software/Makefile
+1
-1
.gitignore
software/drivers/.gitignore
+2
-1
Makefile
software/drivers/Makefile
+9
-9
No files found.
.gitlab-ci.yml
View file @
6432fc55
...
...
@@ -11,7 +11,58 @@ include:
-
project
:
'
be-cem-edl/evergreen/gitlab-ci'
ref
:
master
file
:
'
edl-gitlab-ci.yml'
-
local
:
'
software/.gitlab-ci.yml'
-
local
:
'
hdl/testbench/.gitlab-ci.yml'
-
local
:
'
hdl/syn/.gitlab-ci.yml'
-
local
:
'
pytest/.gitlab-ci.yml'
fpga_synthesis
:
extends
:
.synthesis-ise-14-7
allow_failure
:
true
needs
:
[
"
firmware_deliver"
]
interruptible
:
true
parallel
:
matrix
:
-
EDL_CI_SYN_SRC_PATH
:
-
hdl/syn/wrtd_ref_spec150t_adc
-
hdl/syn/wrtd_ref_svec_adc_x2
-
hdl/syn/wrtd_ref_svec_tdc_x2
-
hdl/syn/wrtd_ref_svec_fd_x2
-
hdl/syn/wrtd_ref_svec_tdc_fd
software_build
:
extends
:
.build_fec_os_sw
variables
:
EDL_CI_SW_PATHS
:
software
sim_fw_build
:
extends
:
.build_urv_fw
needs
:
[]
variables
:
EXTRA2_CFLAGS
:
-DSIMULATION
script
:
-
make -C software/firmware
artifacts
:
paths
:
-
software/firmware/**/*.bram
firmware_build
:
extends
:
.build_urv_fw
needs
:
[]
variables
:
EDL_CI_FW_PATHS
:
software/firmware
# firmware needs to be in a specific location for our FPGA designs to be able to find it
firmware_deliver
:
stage
:
build
needs
:
[
"
firmware_build"
]
variables
:
_FW_ARTIFACT_PATH
:
'
$CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/firmware'
_FW_ARTIFACT
:
'
$CI_PROJECT_NAME-firmware${CI_COMMIT_TAG:+-$CI_COMMIT_TAG}.tar.xz'
_FW_PROGRAMS
:
'
adc
adc-x2
tdc
tdc-x2
fd
fd-x2'
script
:
-
export TMP_DIR=$(mktemp -d)
-
tar xvf $_FW_ARTIFACT_PATH/$_FW_ARTIFACT -C $TMP_DIR/ --wildcards "*.bram" --strip-components 3
-
for fw in $_FW_PROGRAMS; do mv $TMP_DIR/wrtd-rt-$fw.bram software/firmware/$fw/; done
-
rm -r $TMP_DIR
artifacts
:
paths
:
-
software/firmware/*/*.bram
mock-turtle
@
a9b8030d
Subproject commit
1f399c96dafafbe124540266b4b155d051c42dec
Subproject commit
a9b8030df55c174aabc72c4d6ff44224a09430fa
hdl/syn/.gitlab-ci.yml
deleted
100644 → 0
View file @
3c155c58
# SPDX-FileCopyrightText: 2022 CERN (home.cern)
#
# SPDX-License-Identifier: LGPL-2.1-or-later
fpga_synthesis
:
interruptible
:
true
stage
:
build
needs
:
[]
tags
:
-
xilinx_ise
-
"
14.7"
variables
:
_BITSTREAM_DEST
:
$CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
parallel
:
matrix
:
-
SYN_NAME
:
-
wrtd_ref_svec_adc_x2
-
wrtd_ref_svec_fd_x2
-
wrtd_ref_svec_tdc_x2
-
wrtd_ref_spec150t_adc
-
wrtd_ref_svec_tdc_fd
before_script
:
-
export TMP_DIR=$(mktemp -d)
-
export PAK=https://ohwr-packages.web.cern.ch/ohwr-packages/riscv_toolchains/riscv-centos7.tar.xz
-
curl $PAK | tar xJ -C $TMP_DIR
-
export CROSS_COMPILE_TARGET=$TMP_DIR/riscv/bin/riscv32-elf-
-
git submodule init && git submodule update
script
:
-
cd hdl/syn/"$SYN_NAME"/
-
hdlmake
-
make
-
tar -cJf $SYN_NAME.tar.xz *.syr *.bld *.map *.mrp *.par *.twr *.bit *.bin
-
mkdir -p $_BITSTREAM_DEST
-
cp $SYN_NAME.tar.xz $_BITSTREAM_DEST
-
|
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
artifacts
:
name
:
"
$SYN_NAME-synthesis-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when
:
always
paths
:
-
$_BITSTREAM_DEST/*
hdl/syn/wrtd_ref_spec150t_adc/Manifest.py
View file @
6432fc55
...
...
@@ -30,7 +30,8 @@ modules = {
],
}
syn_pre_project_cmd
=
"make -C ../../../software/firmware/adc"
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
# syn_pre_project_cmd = "make -C ../../../software/firmware/adc"
# Do not fail during hdlmake fetch
try
:
...
...
hdl/syn/wrtd_ref_svec_adc_x2/Manifest.py
View file @
6432fc55
...
...
@@ -35,7 +35,8 @@ modules = {
],
}
syn_pre_project_cmd
=
"make -C ../../../software/firmware/adc-x2"
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
# syn_pre_project_cmd = "make -C ../../../software/firmware/adc-x2"
# Do not fail during hdlmake fetch
try
:
...
...
hdl/syn/wrtd_ref_svec_fd_x2/Manifest.py
View file @
6432fc55
...
...
@@ -39,7 +39,8 @@ modules = {
],
}
syn_pre_project_cmd
=
"make -C ../../../software/firmware/fd-x2"
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
#syn_pre_project_cmd = "make -C ../../../software/firmware/fd-x2"
# Do not fail during hdlmake fetch
try
:
...
...
hdl/syn/wrtd_ref_svec_tdc_fd/Manifest.py
View file @
6432fc55
...
...
@@ -35,10 +35,11 @@ modules = {
],
}
syn_pre_project_cmd
=
(
"make -C ../../../software/firmware/tdc;"
"make -C ../../../software/firmware/fd"
)
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
# syn_pre_project_cmd = (
# "make -C ../../../software/firmware/tdc;"
# "make -C ../../../software/firmware/fd"
#)
# Do not fail during hdlmake fetch
try
:
...
...
hdl/syn/wrtd_ref_svec_tdc_x2/Manifest.py
View file @
6432fc55
...
...
@@ -39,7 +39,8 @@ modules = {
],
}
syn_pre_project_cmd
=
"make -C ../../../software/firmware/tdc-x2"
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
# syn_pre_project_cmd = "make -C ../../../software/firmware/tdc-x2"
# Do not fail during hdlmake fetch
try
:
...
...
hdl/testbench/.gitlab-ci.yml
View file @
6432fc55
...
...
@@ -6,7 +6,7 @@ hdl_simulation:
interruptible
:
true
stage
:
build
when
:
manual
needs
:
[]
needs
:
[
sim_fw_build
]
tags
:
-
questasim
-
"
10.5c"
...
...
@@ -17,9 +17,6 @@ hdl_simulation:
-
wrtd_ref_svec_tdc_fd
before_script
:
-
export TMP_DIR=$(mktemp -d)
-
export PAK=https://ohwr-packages.web.cern.ch/ohwr-packages/riscv_toolchains/riscv-centos7.tar.xz
-
curl $PAK | tar xJ -C $TMP_DIR
-
export CROSS_COMPILE_TARGET=$TMP_DIR/riscv/bin/riscv32-elf-
-
git submodule init && git submodule update
script
:
-
cd hdl/testbench/"$SIM_NAME"/
...
...
hdl/testbench/wrtd_ref_spec150t_adc/Manifest.py
View file @
6432fc55
...
...
@@ -16,7 +16,8 @@ vcom_opt = "-93 -mixedsvvh"
if
locals
()
.
get
(
'fetchto'
,
None
)
is
None
:
fetchto
=
"../../../dependencies"
sim_pre_cmd
=
"EXTRA2_CFLAGS='-DSIMULATION' make -C ../../../software/firmware/adc"
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
#sim_pre_cmd = "EXTRA2_CFLAGS='-DSIMULATION' make -C ../../../software/firmware/adc"
include_dirs
=
[
fetchto
+
"/wrtd/hdl/testbench/include"
,
...
...
hdl/testbench/wrtd_ref_svec_tdc_fd/Manifest.py
View file @
6432fc55
...
...
@@ -21,11 +21,12 @@ if locals().get('fetchto', None) is None:
import
os
fetchto
=
os
.
path
.
abspath
(
fetchto
)
sim_pre_cmd
=
(
"export EXTRA2_CFLAGS='-DSIMULATION';"
"make -C ../../../software/firmware/tdc;"
"make -C ../../../software/firmware/fd"
)
# Now done via CI, otherwise it must be done manually using a RISC-V cross-compiler
#sim_pre_cmd = (
# "export EXTRA2_CFLAGS='-DSIMULATION';"
# "make -C ../../../software/firmware/tdc;"
# "make -C ../../../software/firmware/fd"
#)
include_dirs
=
[
fetchto
+
"/wrtd/hdl/testbench/include"
,
...
...
pytest/.gitlab-ci.yml
View file @
6432fc55
...
...
@@ -2,13 +2,22 @@
#
# SPDX-License-Identifier: LGPL-2.1-or-later
.module_cleanup
:
&module_cleanup
-
rmmod wrtd_ref_svec_adc_x2 ||
true
-
rmmod wrtd_ref_svec_tdc_x2 ||
true
-
rmmod wrtd_ref_svec_fd_x2 ||
true
-
rmmod mockturtle ||
true
-
rmmod fmc-adc-100m14b4ch ||
true
-
rmmod svec-fmc-carrier ||
true
Full test on FEC
:
stage
:
validate
allow_failure
:
true
needs
:
-
"
fpga_synthesis:
[wrtd_ref_svec_adc_x2]"
-
"
fpga_synthesis:
[wrtd_ref_svec_fd_x2]"
-
"
fpga_synthesis:
[wrtd_ref_svec_tdc_x2]"
-
"
build
software
"
-
"
fpga_synthesis:
[
hdl/syn/
wrtd_ref_svec_adc_x2]"
-
"
fpga_synthesis:
[
hdl/syn/
wrtd_ref_svec_fd_x2]"
-
"
fpga_synthesis:
[
hdl/syn/
wrtd_ref_svec_tdc_x2]"
-
"
software_build:
[production]
"
tags
:
-
fec-runner
-
wrtd-ci-tester
...
...
@@ -17,41 +26,70 @@ Full test on FEC:
ADC_PID
:
"
57544e05"
TDC_PID
:
"
57544e03"
FD_PID
:
"
57544e04"
_BITSTREAM_DEST
:
$CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
script
:
-
rmmod wrtd_ref_svec_adc_x2 ||
true
-
rmmod wrtd_ref_svec_tdc_x2 ||
true
-
rmmod wrtd_ref_svec_fd_x2 ||
true
_BASE_DEST
:
$CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR
_BITSTREAM_DEST
:
$_BASE_DEST/bitstreams
_SW_ARTIFACT_PATH
:
$_BASE_DEST/software
_SW_ARTIFACT
:
'
$CI_PROJECT_NAME-software-production${CI_COMMIT_TAG:+-$CI_COMMIT_TAG}.tar.xz'
_DEPLOY
:
/acc/local/L867/drv
_VER_ADCLIB
:
"
4.0"
_VER_WRTD
:
"
1.1"
_LIB_ADCLIB
:
$_DEPLOY/adc-lib/$_VER_ADCLIB/lib
_LIB_WRTD
:
$_DEPLOY/wrtd/$_VER_WRTD/lib
_BIN_WRTD
:
$_DEPLOY/wrtd/$_VER_WRTD/bin
_PY_WRTD
:
$_LIB_WRTD/python/site-packages
before_script
:
-
*module_cleanup
-
export TMP_DIR=$(mktemp -d)
-
mkdir -p $TMP_DIR/lib/modules
-
cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/lib/modules
-
cp software/drivers/*.ko $TMP_DIR/lib/modules/$(uname -r)/extra/cern/
-
export MODPROBE_ROOT=$TMP_DIR
-
mkdir -p $TMP_DIR/usr/lib/modules
-
cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/usr/lib/modules
-
find $TMP_DIR/usr/lib/modules -name wrtd-ref-*.ko -delete
-
tar xvf $_SW_ARTIFACT_PATH/$_SW_ARTIFACT -C $TMP_DIR/
-
export MODPROBE_ROOT=$TMP_DIR/usr
-
depmod -b $MODPROBE_ROOT
-
modprobe -d $MODPROBE_ROOT -v mockturtle
-
modprobe -d $MODPROBE_ROOT -v htvic
-
modprobe -d $MODPROBE_ROOT -v i2c-ocores
-
modprobe -d $MODPROBE_ROOT -v i2c-mux
-
modprobe -d $MODPROBE_ROOT -v zio
-
modprobe -d $MODPROBE_ROOT -v zio-buf-vmalloc
-
modprobe -d $MODPROBE_ROOT -v fmc-adc-100m14b4ch version_ignore=1
-
modprobe -v at24
-
export FIRMWARE_PATH=$TMP_DIR/bitstreams
-
mkdir -p $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_adc_x2.tar.xz -C $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_fd_x2.tar.xz -C $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_tdc_x2.tar.xz -C $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_adc_x2
${CI_COMMIT_TAG:+-$CI_COMMIT_TAG}
.tar.xz -C $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_fd_x2
${CI_COMMIT_TAG:+-$CI_COMMIT_TAG}
.tar.xz -C $FIRMWARE_PATH
-
tar xf $_BITSTREAM_DEST/wrtd_ref_svec_tdc_x2
${CI_COMMIT_TAG:+-$CI_COMMIT_TAG}
.tar.xz -C $FIRMWARE_PATH
-
ln -sf $FIRMWARE_PATH/wrtd_ref_svec_adc_x2.bin $FIRMWARE_PATH/svec-wrtd-ref-adc-x2.bin
-
ln -sf $FIRMWARE_PATH/wrtd_ref_svec_fd_x2.bin $FIRMWARE_PATH/svec-wrtd-ref-fd-x2.bin
-
ln -sf $FIRMWARE_PATH/wrtd_ref_svec_tdc_x2.bin $FIRMWARE_PATH/svec-wrtd-ref-tdc-x2.bin
-
/usr/local/drivers/scripts/wrtd_install.sh wrtd-svec-adc-x2 -L2
-
/usr/local/drivers/scripts/wrtd_install.sh wrtd-svec-fd-x2 -L1
-
/usr/local/drivers/scripts/wrtd_install.sh wrtd-svec-tdc-x2 -L0
-
source /acc/local/share/python/acc-py/base/pro/setup.sh
-
acc-py venv $TMP_DIR/venv
-
source $TMP_DIR/venv/bin/activate
-
pip install -r pytest/requirements.txt
-
pip install $_LIB_ADCLIB/python/PyAdcLib-*.whl
-
export LD_LIBRARY_PATH=$_LIB_ADCLIB:$_LIB_WRTD
-
export PYTHONPATH=$_PY_ADCLIB:$_PY_WRTD
script
:
-
tail -n +1 /sys/kernel/debug/svec-vme.*/fpga_device_metadata
-
tail -n +1 /sys/kernel/debug/svec-vme.*/svec-vme.*-fpga/build_info
-
/usr/local/bin
/wrtd-tool list-nodes
-
$_BIN_WRTD
/wrtd-tool list-nodes
-
export ADC_NODE=$(ls -d /sys/bus/platform/devices/id\:$CERN_VID$ADC_PID.*/mock-turtle.* | cut -d '.' -f 4)
-
export TDC_NODE=$(ls -d /sys/bus/platform/devices/id\:$CERN_VID$TDC_PID.*/mock-turtle.* | cut -d '.' -f 4)
-
export FD_NODE=$(ls -d /sys/bus/platform/devices/id\:$CERN_VID$FD_PID.*/mock-turtle.* | cut -d '.' -f 4)
-
export ADC_ID1=$(ls -d /sys/bus/platform/devices/id\:$CERN_VID$ADC_PID.*/fmc-adc-100m.*.auto/fmc-slot-*.1 | cut -d '.' -f 4)
-
export ADC_ID2=$(ls -d /sys/bus/platform/devices/id\:$CERN_VID$ADC_PID.*/fmc-adc-100m.*.auto/fmc-slot-*.2 | cut -d '.' -f 4)
-
env | grep -E "ADC|TDC|FD"
-
sleep 60
-
/usr/local/bin/wrtd-tool sys-info $ADC_NODE
-
/usr/local/bin/wrtd-tool sys-info $TDC_NODE
-
/usr/local/bin/wrtd-tool sys-info $FD_NODE
-
export LD_LIBRARY_PATH=/user/dlamprid/wrtd/lib
-
$_BIN_WRTD/wrtd-tool sys-info $ADC_NODE
-
$_BIN_WRTD/wrtd-tool sys-info $TDC_NODE
-
$_BIN_WRTD/wrtd-tool sys-info $FD_NODE
-
cd pytest
-
/user/dlamprid/wrtd/pytest_venv/bin/python -m pytest --adc-node $ADC_NODE --tdc-node $TDC_NODE --fd-node $FD_NODE --fmc-adc-id1 4 --fmc-adc-id2 5 --junitxml=./pytest.xml
-
python3 -m pytest --adc-node $ADC_NODE --tdc-node $TDC_NODE --fd-node $FD_NODE --fmc-adc-id1 $ADC_ID1 --fmc-adc-id2 $ADC_ID2 --junitxml=./pytest.xml
after_script
:
-
*module_cleanup
artifacts
:
when
:
always
paths
:
...
...
pytest/requirements.txt
View file @
6432fc55
...
...
@@ -3,3 +3,4 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
pytest
decorator
pytest/tests/conftest.py
View file @
6432fc55
...
...
@@ -11,10 +11,10 @@ def pytest_addoption(parser):
help
=
"WRTD node ID for the TDC board"
)
parser
.
addoption
(
"--fd-node"
,
required
=
True
,
type
=
int
,
help
=
"WRTD node ID for the FD board"
)
parser
.
addoption
(
"--fmc-adc-id1"
,
required
=
True
,
type
=
lambda
x
:
int
(
x
,
16
)
,
help
=
"FMC-ADC ID
(in hex)
for the ADC in FMC slot 1"
)
parser
.
addoption
(
"--fmc-adc-id2"
,
required
=
True
,
type
=
lambda
x
:
int
(
x
,
16
)
,
help
=
"FMC-ADC ID
(in hex)
for the ADC in FMC slot 2"
)
parser
.
addoption
(
"--fmc-adc-id1"
,
required
=
True
,
type
=
int
,
help
=
"FMC-ADC ID for the ADC in FMC slot 1"
)
parser
.
addoption
(
"--fmc-adc-id2"
,
required
=
True
,
type
=
int
,
help
=
"FMC-ADC ID for the ADC in FMC slot 2"
)
def
pytest_configure
(
config
):
pytest
.
adc_node
=
config
.
getoption
(
"--adc-node"
)
...
...
software/.gitlab-ci.yml
deleted
100644 → 0
View file @
3c155c58
# SPDX-FileCopyrightText: 2022 CERN (home.cern)
#
# SPDX-License-Identifier: LGPL-2.1-or-later
build software
:
interruptible
:
true
stage
:
build
image
:
name
:
gitlab-registry.cern.ch/be-cem-edl/evergreen/gitlab-ci/build-fec-sw:latest
needs
:
[]
script
:
-
git submodule update --init --depth 1
-
make -C dependencies/fmc-sw/drivers/fmc/
-
make -C software
artifacts
:
name
:
"
software-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
paths
:
-
software/drivers/*.ko
-
software/firmware/*/*.elf
-
software/firmware/*/*.bin
-
software/firmware/*/*.bram
software/Makefile
View file @
6432fc55
...
...
@@ -9,7 +9,7 @@ CURDIR:=$(shell /bin/pwd)
REPO_PARENT
?=
$(CURDIR)
/..
-include
$(REPO_PARENT)/parent_common.mk
DIRS
=
drivers
firmware
DIRS
=
drivers
all clean install
:
$(DIRS)
...
...
software/drivers/.gitignore
View file @
6432fc55
...
...
@@ -11,5 +11,6 @@
*.ko.cmd
*.mod
*.mod.cmd
*.cmd
Module.symvers
modules.order
\ No newline at end of file
modules.order
software/drivers/Makefile
View file @
6432fc55
...
...
@@ -10,7 +10,9 @@
REPO_PARENT
?=
$(
shell
/bin/pwd
)
/../..
-include
$(REPO_PARENT)/parent_common.mk
KERNELSRC
?=
/lib/modules/
$(
shell
uname
-r
)
/build
KVERSION
?=
$(
shell
uname
-r
)
KERNELSRC
?=
/lib/modules/
$(KVERSION)
/build
INSTALL_MOD_PATH
?=
/
DRV_VERSION
:=
$(
shell
git describe
--always
--dirty
--long
--tags
)
...
...
@@ -23,19 +25,17 @@ FMC_EXTRA_SYMBOLS-y = $(FMC_ABS)/drivers/fmc/Module.symvers
ADC_ABS
?=
$
(
abspath
$(FETCHTO)
/fmc-adc-100m14b4cha
)
all
:
modules
install
:
modules_install
.PHONY
:
all modules clean help install modules_install
modules help modules_install
:
clean help modules
:
fmc-sw
$(MAKE)
-C
$(KERNELSRC)
M
=
$(
shell
pwd
)
DRV_VERSION
=
$(DRV_VERSION)
\
FMC_ABS
=
$(FMC_ABS)
ADC_ABS
=
$(ADC_ABS)
\
FMC_EXTRA_SYMBOLS-y
=
$
(
FMC_EXTRA_SYMBOLS-y
)
$@
install
:
$(MAKE)
-C
$(KERNELSRC)
M
=
$(
shell
pwd
)
DRV_VERSION
=
$(DRV_VERSION)
\
FMC_ABS
=
$(FMC_ABS)
ADC_ABS
=
$(ADC_ABS)
modules_install
fmc-sw
:
$(MAKE)
-C
$(FMC)
/drivers/fmc
# be able to run the "clean" rule even if $(KERNELSRC) is not valid
clean
:
rm
-rf
*
.o
*
~ .
*
.cmd
*
.ko
*
.mod.c .tmp_versions Module.symvers
\
Module.markers modules.order
modules_install
:
modules
$(MAKE)
-C
$(KERNELSRC)
M
=
$(
shell
/bin/pwd
)
INSTALL_MOD_PATH
=
$(INSTALL_MOD_PATH)
$@
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment