DPDK usage discussions
 help / color / mirror / Atom feed
From: Jan Viktorin <viktorin@rehivetech.com>
To: Jimmy Carter <jimmycarter256@gmail.com>
Cc: Neil Horman <nhorman@tuxdriver.com>,
	users@dpdk.org, dev@dpdk.org, maintainers@dpdk.org,
	jianbo.liu@linaro.org, kosar@rehivetech.com
Subject: Re: [dpdk-users] [dpdk-dev] Issue->Dpdk for arm cortex-a15 compilation
Date: Tue, 16 May 2017 14:28:08 +0200	[thread overview]
Message-ID: <20170516142808.4abedf71.viktorin@rehivetech.com> (raw)
In-Reply-To: <CAFh3jNMmeert=Hh1TasUVA=_2sz07O22qLDdAGNMRpSic46XXA@mail.gmail.com>

On Tue, 16 May 2017 17:25:20 +0530
Jimmy Carter <jimmycarter256@gmail.com> wrote:

> Hi All
> 
> Attached is the complete env variables file
> I have added RTE_KERNELDIR too
> Also I am  now using gnu-eabi version 5.4.0
> [arm-openwrt-linux-muslgnueabi-gcc (LEDE GCC 5.4.0 r3909-6411a12) 5.4.0]
> But I am still getting the same error
> 
> Currently I am not using buildroot
> Is there any step by step available guide for cross compiling dpdk using
> buildroot for target arm cortex-a15 using some external toolchain.
> I found this http://dpdk.org/ml/archives/announce/2015-October/000066.html

This short tutorial points to some older version of the Buildroot
support. That was before the ARM support has been merged into DPDK.

I've just pushed the branch dpdk-support-v5 (d25ddaadf2) into
the RehiveTech repository. It contains the latest patch sent to the
Buildroot mailing list [1] and some more. By the way, it cleanly
applies to the latest Buildroot master as well.

This branch assumes DPDK 16.04 which is quite old but if you drop the
0001-mk-do-not-enforce-any-specific-ARM-ABI.patch, it might work for newer
DPDK as well.

Steps:

$ git clone https://github.com/RehiveTech/buildroot
$ cd buildroot
$ make qemu_arm_vexpress_defconfig
$ make menuconfig

 * set libc library to glibc
 * enable DPDK in Target packages/Libraries/Networking/DPDK

$ make linux-menuconfig

 * enable UIO, PCI and MSI-X (if applicable)

$ make

I didn't test it myself recently but I belive that it should work well.
Instead of qemu_arm_vexpress_defconfig, you should select your target
board, if applicable.

I hope, it would help you.

Regards
Jan

[1] https://patchwork.ozlabs.org/patch/611383/

> 
> 
> Please advise
> 
> 
> 
> Thanks
> 
> On Tue, May 16, 2017 at 5:14 PM, Neil Horman <nhorman@tuxdriver.com> wrote:
> 
> > On Tue, May 16, 2017 at 12:51:40PM +0200, Jan Viktorin wrote:  
> > > Hello Jimmy,
> > >
> > > On Tue, 16 May 2017 15:38:22 +0530
> > > Jimmy Carter <jimmycarter256@gmail.com> wrote:
> > >  
> > > > Hi All
> > > >
> > > > I am using dpdk16.11.1 and want to use openwrt external toolchain so  
> > that I  
> > > > can cross compile for arm cortex 15
> > > > neon.(arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl_eabi)  
> > >
> > > I've never built DPDK with musl-eabi. I don't think that your issue is
> > > related but just note that my builds have always been done with gnueabi.
> > >  
> > > > My target board is Tp link archer C2600.
> > > > I am have assigned these env variables but still getting compilation  
> > error  
> > > >
> > > > export
> > > > STAGING_DIR=/home/xav-101000739/ovslede/source/  
> > staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl_eabi  
> > > > export
> > > > PATH=$PATH:/home/xav-101000739/ovslede/source/  
> > staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl_eabi/bin  
> > > >
> > > >
> > > > export CROSS=arm-openwrt-linux-
> > > > export DPDK_TARGET=arm-armv7a-linuxapp-gcc
> > > > export DPDK_DIR=$PWD
> > > > export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
> > > > export
> > > > CFLAGS+=-I/home/xav-101000739/ovslede/source/staging_dir/  
> > toolchain-arm_cortex-a15+neon-vfpv4_gcc-5.4.0_musl_eabi  
> > > > export RTE_SDK=$PWD
> > > > export RTE_TARGET=arm-armv7a-linuxapp-gcc
> > > > export DPDK_BUILD_DIR=arm-armv7a-linuxapp-gcc
> > > >  
> > >
> > > There is a patch to Buildroot that can help you with the setup. See:
> > >
> > >  https://patchwork.ozlabs.org/patch/611383/
> > >  
> > > >
> > > > Error:Attached file  
> > >
> > > Your build fails on
> > >
> > > eal_memory.c:92:
> > > /home/xav-101000739/Downloads/dpdk/dpdk-stable-16.11.1/  
> > build/include/rte_lcore.h:56:10: error: unknown type name 'cpu_set_t'  
> > >   typedef cpu_set_t rte_cpuset_t;
> > >
> > > This looks like there is some issue with Linux Kernel headers.
> > >
> > > lib/librte_eal/common/include/rte_lcore.h:
> > >
> > >  53 #if defined(__linux__)
> > >  54         typedef cpu_set_t rte_cpuset_t;
> > >  55 #elif defined(__FreeBSD__)
> > >  56 #include <pthread_np.h>
> > >  57         typedef cpuset_t rte_cpuset_t;
> > >  58 #endif
> > >
> > > Probably, you should set the RTE_KERNELDIR properly.
> > >  
> > I don't think so.  cpu_set_t is most recently defined in
> > /usr/include/bits/shced.h, which is a glibc header.  What version of glibc
> > are
> > you building with?
> >
> > Neil
> >  
> > > >
> > > > Please advise
> > > > Does dpdk have support for openwrt (arm cortex a15)  
> > >
> > > DPDK does not support OpenWRT because (as far as I know) nobody from
> > > the DPDK community is using it in this way. I build DPDK via Buildroot
> > > but this is unsupported by the DPDK upstream.
> > >
> > > I could build DPDK for Cortex-A7, Cortex-A9 and Cortex-A15 in the past.
> > >
> > > I run regular builds of the master branch and I can see no breakage
> > > for the arm-armv7a-linuxapp-gcc configuration.
> > >
> > > Regards
> > > Jan
> > >  
> > > >
> > > > Thanks
> > > > Akshay  
> > >  
> >  



-- 
   Jan Viktorin                  E-mail: Viktorin@RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech
   Brno, Czech Republic

  reply	other threads:[~2017-05-16 12:29 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-16 10:08 [dpdk-users] " Jimmy Carter
2017-05-16 10:51 ` Jan Viktorin
2017-05-16 11:22   ` [dpdk-users] [dpdk-maintainers] " Thomas Monjalon
2017-05-16 11:38     ` Jan Viktorin
2017-05-16 11:44   ` [dpdk-users] [dpdk-dev] " Neil Horman
2017-05-16 11:51     ` Jan Viktorin
2017-05-16 19:22       ` Neil Horman
2017-05-16 11:55     ` Jimmy Carter
2017-05-16 12:28       ` Jan Viktorin [this message]
2017-05-16 13:27         ` Jimmy Carter
2017-05-16 14:00           ` Jan Viktorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170516142808.4abedf71.viktorin@rehivetech.com \
    --to=viktorin@rehivetech.com \
    --cc=dev@dpdk.org \
    --cc=jianbo.liu@linaro.org \
    --cc=jimmycarter256@gmail.com \
    --cc=kosar@rehivetech.com \
    --cc=maintainers@dpdk.org \
    --cc=nhorman@tuxdriver.com \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).