aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dev_armada/README.rst
blob: 2c757d04a066241da5e7a634ada5c3083d7f3e3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Armada device plugin
=====================

Overview
--------

This plugins provides native device support for Marvell PP2 network
device, found in Marvel Armada family of SOCs.
It uses Marvell Usermode SDK
(`MUSDK <https://github.com/MarvellEmbeddedProcessors/musdk-marvell>`__).

Prerequisites
-------------

Plugins depends on installed MUSDK and Marvell provided linux in Marvell SDK.
Following kernel modules from MUSDK must be loaded for plugin to work:
``musdk_cma.ko``
``mv_pp_uio.ko``

Musdk 18.09.3 compilation steps
-------------------------------

::

   ./bootstrap
   ./configure --prefix=/opt/vpp/external/aarch64/ CFLAGS="-Wno-error=unused-result -g -fPIC" --enable-shared=no
   sed -i -e  's/marvell,mv-pp-uio/generic-uio/' modules/pp2/mv_pp_uio.c
   sed -i -e  's/O_CREAT/O_CREAT, S_IRUSR | S_IWUSR/' src/lib/file_utils.c
   make
   sudo make install

Usage
-----

Interface Creation and Deletion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Interfaces are using new vnet dev APIs, CLIs or startup.conf to create and
delete interfaces.

Sample startup.conf:

::

   devices {
     dev platform/f2000000.ethernet {
       port 1 { name ppio1 }
   }

Device identifier in this example is 'platform/f2000000.ethernet' where
'platform' is bus name and 'f2000000.ethernet' is linux platform bus
identifier for specific PP2.

Platform identifier can be found in sysfs:

::

   $ ls /sys/bus/platform/devices | grep ethernet
   f2000000.ethernet