[dpdk-dev] [PATCH v4 00/16] add net mrvl pmd driver

Tomasz Duszynski tdu at semihalf.com
Thu Oct 12 08:07:25 CEST 2017


On Thu, Oct 12, 2017 at 02:51:19AM +0100, Ferruh Yigit wrote:
> On 10/9/2017 9:59 PM, Ferruh Yigit wrote:
> > On 10/9/2017 4:00 PM, Tomasz Duszynski wrote:
> >> Hello,
> >>
> >> This patch series introduces the net driver for Marvell Armada 7k/8k
> >> SoCs along with documentation.
> >>
> >> Below you can find the list of features which net pmd supports:
> >> * Speed capabilities
> >> * Link status
> >> * MTU update
> >> * Jumbo frame
> >> * Promiscuous mode
> >> * Allmulticast mode
> >> * Unicast MAC filter
> >> * Multicast MAC filter
> >> * RSS hash
> >> * VLAN filter
> >> * CRC offload
> >> * L3 checksum offload
> >> * L4 checksum offload
> >> * Packet type parsing
> >> * Basic stats
> >> * QoS
> >>
> >> Changes since v3:
> >> * Split driver into skeleton, rx/tx, features, documentation parts
> >> * Added speed capabilities flags.
> >> * Added missing rx offload flags: VLAN/JUMBOFRAME
> >> * Updated release notes.
> >> * Updated documentation.
> >>
> >> Changes since v2:
> >> * Removed LINE_SPACING, MULTILINE_DEREFERENCE and SPLIT_STRING
> >>   checkpatch warnings.
> >> * Removed unnecessary forward declarations.
> >> * Fixed whitespace warnings.
> >>
> >> Changes since v1:
> >> * Changed commit message to explain problem better.
> >> * Removed bunch of checkpatch warnings about unnecessary parentheses.
> >>
> >> Tomasz Duszynski (4):
> >>   app: link the whole rte_cfgfile library
> >>   net/mrvl: add mrvl net pmd driver skeleton
> >>   net/mrvl: add rx/tx support
> >>   net/mrvl: add link update
> >>   net/mrvl: add link speed capabilities
> >>   net/mrvl: add support for updating mtu
> >>   net/mrvl: add jumbo frame support
> >>   net/mrvl: add support for promiscuous and allmulticast modes
> >>   net/mrvl: add support for mac filtering
> >>   net/mrvl: add rss hashing support
> >>   net/mrvl: add support for vlan filtering
> >>   net/mrvl: add crc, l3 and l4 offloads support
> >>   net/mrvl: add packet type parsing support.
> >>   net/mrvl: add basic stats support
> >>   maintainers: add maintainers for the mrvl net pmd
> >>   doc: add mrvl net pmd documentation
> >
> > Series applied to dpdk-next-net/master, thanks.
> >
> > (I can't compile because of missing musdk library, but since PMD is
> > disabled by default this is not so bad, lets get this for rc1 and for
> > crypto dependency, later I can have my environment set and test)
>
> Did able to compile but I have questions :)
>
> 1- Used the "arm64-armv8a-linuxapp-gcc" config, can you please confirm.
> Does it make sense to document this?

Right, that makes sense.

>
> 2- I used different toolchain than documented in musdk, which uses a
> marvel one. Can you please confirm any aarch64-linux-gnu-gcc is OK?
>

I am not sure that every toolchain out there will work but those
available here
https://releases.linaro.org/components/toolchain/binaries/*/aarch64-linux-gnu/
should work fine.

> 3- Used following command:
> CROSS=<toolchain>/aarch64-linux-gnu- make
> EXTRA_CFLAGS="-I.../musdk-marvell/src/include
> -L.../musdk-marvell/src/.libs/"
>
> Do you also need to use EXTRA_CFLAGS? Otherwise I can't compile. If you
> also use it please document it, if not please share with us how to do?

As for MUSDK I build it as follows:

export CROSS_COMPILE=/home/tdu/workspace/gcc-linaro-5.4.1-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

# in case of the first build
./bootstrap

# later on that will do
make clean
./configure \
	--host=aarch64-linux-gnu \
	--prefix=$(pwd)/musdk-install-dir \
	--enable-sam \
	--enable-bpool-dma=64 \
	--disable-shared

make -j8
make install

As for building DPDK that works for me:

export RTE_KERNELDIR=/home/tdu/workspace/tmp2/linux-marvell
export LIBMUSDK_PATH=/home/tdu/workspace/tmp2/musdk-marvell/musdk-install-dir
export CROSS=/home/tdu/workspace/tmp2/gcc-linaro-5.4.1-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

make -j8

>
> 4- musk generated a static library, can you please confirm there is a
> way to generate a shared musdk library as well?
>

To generate shared just remove `--disable-shared` from ./configure
command line. Then you will have both *.so and *.a generated.

> 5- Still not tested building kernel modules, and building musdk with
> ./configure options, I will do later.

Let me know in case you have any sort of difficulties or something is
unclear.

>
> Thanks,
> ferruh

--
- Tomasz Duszyński


More information about the dev mailing list