STX Builder 9781c5567d Add the drivers for Silicom STS NICs
This commit adds the drivers for Silicom STS NICs.
ice driver: 1.10.1.2
iavf driver: 4.6.1
i40e driver: 2.21.12

Now Starlingx supports multiple driver versions as the following.
Currently deployed drivers:(cvl-4.0.1)
ice driver: 1.9.11
iavf driver: 4.5.3
i40e driver: 2.20.12

The Silicom driver version:(cvl-4.10)
ice driver: 1.10.1.2
iavf driver: 4.6.1
i40e driver: 2.21.12

The legacy Intel NIC drivers:(cvl-2.54)
ice driver: 1.5.8.1
iavf driver: 4.0.1
i40e driver: 2.14.13

Testing:
- An ISO image can be built successfully.
- PXE boot-based installation onto an All-in-One Duplex lab was
  successful with rt and std kernels.
- Interfaces are up and pass packets
- Create vfs, ensure that they are picked up by the new iavf
  driver and that the interface can come up and pass packets
- The currently deployed ones are loaded by default and
  the DDP firmware version is correct. It is 1.3.30.0.
- It is possible to switch to the drivers manually with
  command line parameter multi-drivers-switch=cvl-4.10, and the DDP
  firmware version is 1.3.30.0.
- It is also possible to switch back to the currently deployed drivers
  and the legacy drivers manually with command line parameter
  multi-drivers-switch=cvl-4.0.1 and multi-drivers-switch=cvl-2.54.

Story: 2010213
Task: 47295

Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
Change-Id: Ic3f946ea60ce7b49b0032b2bcd8da412f80cb96e
2023-02-08 21:47:39 -05:00

58 lines
2.4 KiB
Makefile
Executable File

#!/usr/bin/make -f
#
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
%:
dh $@
WITH_MOD_SIGN ?= 1
kheaders_name=$(shell ls /usr/src | grep linux@KERNEL_TYPE@-headers | grep amd64)
kheaders_common=$(shell ls /usr/src | grep linux@KERNEL_TYPE@-headers | grep common)
export KSRC=/usr/src/$(kheaders_name)
export KSRC_COMMON=/usr/src/$(kheaders_common)
kversion=$(shell echo $(kheaders_name) | sed 's/linux@KERNEL_TYPE@-headers-//g')
kmod_name=ice
bundle_version=cvl-4.10
version=$(shell dpkg-parsechangelog | sed -n 's/^Version: *\([^-]\+\)-.\+/\1/p')
pkg_name=ice-$(bundle_version)@KERNEL_TYPE@
pkg_common_name=ice-$(bundle_version)-common
_sysconfdir=/etc
_defaultdocdir=/usr/share/doc
_mandir=/usr/share/man
ifeq ($(WITH_MOD_SIGN),1)
_keydir ?= /usr/src/kernels/$(kversion)/
privkey ?= $(_keydir)/signing_key.pem
pubkey ?= $(_keydir)/signing_key.x509
endif
override_dh_auto_install:
dh_install src/$(kmod_name).ko /lib/modules/$(kversion)/extra/$(kmod_name)-$(bundle_version)/
dh_install -p$(pkg_common_name) pci.updates $(_defaultdocdir)/kmod-$(kmod_name)-$(version)/
dh_install -p$(pkg_common_name) README $(_defaultdocdir)/kmod-$(kmod_name)-$(version)/
dh_install -p$(pkg_common_name) $(kmod_name).7 $(_mandir)/man7/$(kmod_name)-$(version)/
# Install both the OS default regular DDP fw and the COMMS version
dh_installdirs -p$(pkg_common_name) /lib/firmware/updates/intel/$(kmod_name)-$(version)/ddp/
install -m 644 ddp/README debian/$(pkg_common_name)/lib/firmware/updates/intel/$(kmod_name)-$(version)/ddp/
install -m 644 ddp/LICENSE debian/$(pkg_common_name)/lib/firmware/updates/intel/$(kmod_name)-$(version)/ddp/
install -m 644 ddp/ice-*.pkg debian/$(pkg_common_name)/lib/firmware/updates/intel/$(kmod_name)-$(version)/ddp/
# Make the regular DDP fw be the default one to load
dh_installdirs -p$(pkg_common_name) /lib/firmware/intel/$(kmod_name)/ddp/
ln -frs debian/$(pkg_common_name)/lib/firmware/updates/intel/$(kmod_name)-$(version)/ddp/ice-*.pkg debian/$(pkg_common_name)/lib/firmware/intel/$(kmod_name)/ddp/$(version)-ice.pkg
override_dh_strip:
dh_strip
find debian -name '*.ko' | xargs strip -g
ifeq ($(WITH_MOD_SIGN),1)
@echo "Sign the modules!"
/usr/lib/linux@KERNEL_TYPE@-kbuild-*/scripts/sign-file sha256 $(privkey) $(pubkey) \
./debian/$(pkg_name)/lib/modules/$(kversion)/extra/$(kmod_name)-$(bundle_version)/$(kmod_name).ko
endif
override_dh_auto_build:
dh_auto_build -D ./src