Files
kernel/kernel-modules/octeon_ep/debian
M. Vefa Bicakci b015aa8940 octeon-ep: Update to release v23.11
This commit uprevisions the octeon_ep, octeon_ep_vf and oct_ep_phc
drivers from v23.04 to v23.11 to enable use cases that utilize the Dell
Open RAN Accelerator (DORA) card based on Marvell's Octeon
system-on-chip (SoC).

As the driver source code available on Sourceforge does not appear to be
kept up-to-date, the build system configuration files are updated to
acquire the driver source code from a Marvell-maintained git repository
on GitHub.

This commit also accommodates the minor differences between the
directory structures of the source code tar archive on Sourceforge and
the git repository on GitHub by modifying the debian/rules file.

We also block the automatic loading of the oct_ep_phc driver via a
modprobe.d configuration entry, for two reasons:

1) The oct_ep_phc driver does not appear to be needed by the major user
   whose use cases are enabled by this driver uprevision.
2) The oct_ep_phc driver triggers a kernel crash when being unloaded,
   due to an initialization error handling bug related to the DORA card,
   as reported at:
   https://github.com/MarvellEmbeddedProcessors/pcie_ep_octeon_host/issues/2

The two patches applied to the driver package as part of StarlingX are
refreshed and adapted to apply cleanly onto the newer driver package
version acquired from GitHub.

The modprobe configuration file is renamed to octeon-ep.conf to adhere
to inclusive language guidelines.

Finally, the "debian/copyright" file is updated to adhere to Debian's
formatting guidelines published at [1], to update the name of the source
package, to note that most files are licensed under the GPL-2 license
and that the "apps" directory is licensed under the Apache-2.0 license.
Also, please note that the Makefile in the source code package acquired
from GitHub does not have a specific/different license, unlike the
package acquired from Sourceforge, so the special case for that file is
removed.

[1] https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

== Additional Information ==

We would like to note that the DORA card is a bit special with respect
to its configuration interface. In summary, the octeon_ep physical
function (PF) driver instantiates a network interface managed by the
kernel, which acts as the configuration interface to the accelerator
card. The card sends DHCP discovery requests via the network interface.
If a DHCP server is listening on the network interface, then the card
acquires an IP address and a firmware download can be carried out via
the interface to fully initialize the accelerator card.

Unfortunately, we do not have access to the firmware images and the
software packages necessary to test the accelerator card end-to-end, so
our verification has been limited to ensuring that the DHCP discovery
requests are observed on the network interface created by the PF driver
after the driver is loaded.

The accelerator also has a serial console that can be attached to the
host via a USB-to-serial adapter, but our understanding is that the labs
we have been using for verification did not have this serial connection
set up.

== Verification ==

* An ISO image can be built with this commit applied to a repo project
  of a StarlingX-based distribution tracking StarlingX's master branch.

* The ISO image can be installed to a Dell XR11 server with a DORA card,
  and the system is successfully Ansible-bootstrapped.

* The octeon_ep, octeon_ep_vf and oct_ep_phc drivers are observed to not
  be automatically loaded.

* The octeon_ep driver can be loaded manually with modprobe, and a PF
  interface is instantiated by the kernel. Once the PF interface is
  brought up with the "ip" command, DHCP discovery packets are observed
  on the interface by running (as root):

  tcpdump -i <pf_iface> -nn -e 'udp port 67 or udp port 68'

* Virtual function (VF) interfaces can be instantiated by loading the
  octeon_ep_vf driver with modprobe and then writing (for example) the
  string "2" to the magic sysfs file at:
  /sys/class/net/<pf_iface>/device/sriov_numvfs

* The VF interfaces can be brought up with the "ip" command.

Story: 2010047
Task: 49651

Change-Id: I11965bf1be278030934b4b517860bc28683a6673
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
2024-03-04 23:49:33 +00:00
..