0704ff5e6c
Why I did it Some of the platform vendors use FPGA in the HW design. This FPGA is connected to the CPU via PCIe interface. This FPGA also works as an I2C controller having other devices attached to the I2C channels emanating from it. Adding a common module, a driver and a platform specific algorithm module to be used for such FPGA in PDDF. How I did it Added 'pddf_fpgapci_module', 'pddf_fpgapci_driver' and a sample algorithm module for Xilinx device 7021. Kernel modules which takes the platform dependent data from PDDF JSON files and initialises the PCIe FPGA. The sample algorithm module can be used by the ODMs in case the communication algorithms are same for their device. Else, they need to come up with similar algo module. How to verify it Any platform having such an FPGA and brought up using PDDF would use these kernel modules. The detail representation of such a device in PDDF JSON file is covered in the HLD.
82 lines
2.4 KiB
Makefile
Executable File
82 lines
2.4 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
# Sample debian/rules that uses debhelper.
|
|
# This file was originally written by Joey Hess and Craig Small.
|
|
# As a special exception, when this file is copied by dh-make into a
|
|
# dh-make output file, you may use that output file without restriction.
|
|
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
include /usr/share/dpkg/pkg-info.mk
|
|
|
|
# Uncomment this to turn on verbose mode.
|
|
#export DH_VERBOSE=1
|
|
|
|
export INSTALL_MOD_DIR:=extra
|
|
|
|
PYTHON ?= python3
|
|
|
|
PACKAGE_PRE_NAME := sonic-platform-pddf
|
|
KVERSION ?= $(shell uname -r)
|
|
KERNEL_SRC := /lib/modules/$(KVERSION)
|
|
MOD_SRC_DIR:= $(shell pwd)
|
|
MODULE_DIRS:= client cpld cpld/driver cpldmux cpldmux/driver fpgai2c fpgai2c/driver fpgapci fpgapci/driver fpgapci/algos fan fan/driver mux gpio led psu psu/driver sysstatus xcvr xcvr/driver
|
|
MODULE_DIR:= modules
|
|
UTILS_DIR := utils
|
|
SERVICE_DIR := service
|
|
|
|
%:
|
|
echo =================RUNNING $@=============
|
|
dh $@ --with systemd,python2,python3 --buildsystem=pybuild
|
|
|
|
clean:
|
|
echo ============CLEANING=================
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_clean
|
|
make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR) clean
|
|
|
|
build:
|
|
set -e; \
|
|
make modules -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR); \
|
|
$(PYTHON) $(MOD_SRC_DIR)/setup.py build; \
|
|
set +e
|
|
|
|
binary: binary-arch binary-indep
|
|
# Nothing to do
|
|
|
|
binary-arch:
|
|
# Nothing to do
|
|
|
|
binary-indep:
|
|
dh_testdir
|
|
dh_installdirs
|
|
dh_installdirs -p$(PACKAGE_PRE_NAME) $(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
|
|
dh_installdirs -p$(PACKAGE_PRE_NAME) usr/local/bin; \
|
|
# Custom package commands
|
|
set -e; \
|
|
(for mod in $(MODULE_DIRS); do \
|
|
cp $(MOD_SRC_DIR)/$(MODULE_DIR)/$${mod}/*.ko debian/$(PACKAGE_PRE_NAME)/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
|
|
done) ; \
|
|
# Need to take a backup of symvers file for compilation of custom modules in various platforms
|
|
cp $(MOD_SRC_DIR)/Module.symvers $(MOD_SRC_DIR)/Module.symvers.PDDF; \
|
|
cp -r $(MOD_SRC_DIR)/$(UTILS_DIR)/* debian/$(PACKAGE_PRE_NAME)/usr/local/bin/; \
|
|
$(PYTHON) $(MOD_SRC_DIR)/setup.py install --root=$(MOD_SRC_DIR)/debian/$(PACKAGE_PRE_NAME) --install-layout=deb; \
|
|
set +e
|
|
|
|
# Resuming debhelper scripts
|
|
dh_testroot
|
|
dh_install
|
|
dh_installchangelogs
|
|
dh_installdocs
|
|
dh_systemd_enable
|
|
dh_installinit
|
|
dh_systemd_start
|
|
dh_link
|
|
dh_fixperms
|
|
dh_compress
|
|
dh_strip
|
|
dh_installdeb
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
.PHONY: build binary binary-arch binary-indep clean
|