[v9,5/5] doc: add aarch32 build guidance

Message ID 1598614733-16220-6-git-send-email-juraj.linkes@pantheon.tech (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series aarch64 -> aarch32 cross compilation support |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/checkpatch warning coding style issues

Commit Message

Juraj Linkeš Aug. 28, 2020, 11:38 a.m. UTC
  From: Phil Yang <phil.yang@arm.com>

Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.

Change-Id: Ib4281defa37ed4d08e1c3210c94fb7ce73b36449
Signed-off-by: Phil Yang <phil.yang@arm.com>
---
 .../linux_gsg/cross_build_dpdk_for_arm64.rst  | 34 +++++++++++++------
 1 file changed, 24 insertions(+), 10 deletions(-)
  

Comments

Aaron Conole Sept. 11, 2020, 1:20 p.m. UTC | #1
Juraj Linkeš <juraj.linkes@pantheon.tech> writes:

> From: Phil Yang <phil.yang@arm.com>
>
> Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.
>
> Change-Id: Ib4281defa37ed4d08e1c3210c94fb7ce73b36449
> Signed-off-by: Phil Yang <phil.yang@arm.com>
> ---

I think Change-Id is not a tag that is used in DPDK.  Otherwise, this
looks good to me.

Consider the series ACK with 'Change-Id' removed.

>  .../linux_gsg/cross_build_dpdk_for_arm64.rst  | 34 +++++++++++++------
>  1 file changed, 24 insertions(+), 10 deletions(-)
>
> diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> index c5875a6d5..fd0405d6d 100644
> --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> @@ -1,15 +1,16 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2018 ARM Corporation.
>  
> -Cross compile DPDK for ARM64
> -============================
> -This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts.
> +Cross compile DPDK for aarch64 and aarch32
> +==========================================
> +This chapter describes how to cross compile DPDK for aarch64 from x86 build hosts and compile
> +32-bit aarch32 DPDK from aarch64 build hosts.
>  
>  .. note::
>  
> -   Whilst it is recommended to natively build DPDK on ARM64 (just
> -   like with x86), it is also possible to cross-build DPDK for ARM64. An
> -   ARM64 cross compile GNU toolchain is used for this.
> +   Whilst it is recommended to natively build DPDK on aarch64 (just
> +   like with x86), it is also possible to cross-build DPDK for aarch64.
> +   An aarch64 cross compile GNU toolchain is used for this.
>  
>  Obtain the cross tool chain
>  ---------------------------
> @@ -88,18 +89,31 @@ To install it in Ubuntu::
>  
>     sudo apt-get install pkg-config-aarch64-linux-gnu
>  
> -To cross-compile DPDK on a desired target machine we can use the following
> -command::
> +.. note::
> +
> +    Some aarch64 platforms support EL0 aarch32 mode, which means the 32-bit aarch32 applications
> +    can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-gnueabihf`` is required
> +    for aarch32 on aarch64. To install it in Ubuntu::
> +
> +       sudo dpkg --add-architecture armhf
> +       sudo apt-get update
> +       sudo apt-get install -y gcc-arm-linux-gnueabihf libc6:armhf binutils
> +
> +To cross-compile DPDK on a desired target machine use the following command::
>  
>  	meson cross-build --cross-file <target_machine_configuration>
>  	ninja -C cross-build
>  
> -For example if the target machine is arm64 we can use the following
> -command::
> +For example if the target machine is aarch64 use the following command::
>  
>  	meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
>  	ninja -C arm64-build
>  
> +If the target machine is aarch32 use the following command::
> +
> +	meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
> +	ninja -C arm32-build
> +
>  Configure and Cross Compile DPDK using Make
>  -------------------------------------------
>  To configure a build, choose one of the target configurations, like arm64-dpaa-linux-gcc and arm64-thunderx-linux-gcc.
  
Juraj Linkeš Sept. 16, 2020, 8:04 a.m. UTC | #2
> -----Original Message-----
> From: Aaron Conole <aconole@redhat.com>
> Sent: Friday, September 11, 2020 3:20 PM
> To: Juraj Linkeš <juraj.linkes@pantheon.tech>
> Cc: thomas@monjalon.net; david.marchand@redhat.com;
> maicolgabriel@hotmail.com; dev@dpdk.org; Phil Yang <phil.yang@arm.com>
> Subject: Re: [PATCH v9 5/5] doc: add aarch32 build guidance
> 
> Juraj Linkeš <juraj.linkes@pantheon.tech> writes:
> 
> > From: Phil Yang <phil.yang@arm.com>
> >
> > Add cross-compiling guidance for 32-bit aarch32 DPDK on aarch64 host.
> >
> > Change-Id: Ib4281defa37ed4d08e1c3210c94fb7ce73b36449
> > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > ---
> 
> I think Change-Id is not a tag that is used in DPDK.  Otherwise, this looks good to
> me.
> 
> Consider the series ACK with 'Change-Id' removed.
> 

Great, I'll resubmit.

> >  .../linux_gsg/cross_build_dpdk_for_arm64.rst  | 34
> > +++++++++++++------
> >  1 file changed, 24 insertions(+), 10 deletions(-)
> >
> > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > index c5875a6d5..fd0405d6d 100644
> > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > @@ -1,15 +1,16 @@
> >  ..  SPDX-License-Identifier: BSD-3-Clause
> >      Copyright(c) 2018 ARM Corporation.
> >
> > -Cross compile DPDK for ARM64
> > -============================
> > -This chapter describes how to cross compile DPDK for ARM64 from x86 build
> hosts.
> > +Cross compile DPDK for aarch64 and aarch32
> > +==========================================
> > +This chapter describes how to cross compile DPDK for aarch64 from x86
> > +build hosts and compile 32-bit aarch32 DPDK from aarch64 build hosts.
> >
> >  .. note::
> >
> > -   Whilst it is recommended to natively build DPDK on ARM64 (just
> > -   like with x86), it is also possible to cross-build DPDK for ARM64. An
> > -   ARM64 cross compile GNU toolchain is used for this.
> > +   Whilst it is recommended to natively build DPDK on aarch64 (just
> > +   like with x86), it is also possible to cross-build DPDK for aarch64.
> > +   An aarch64 cross compile GNU toolchain is used for this.
> >
> >  Obtain the cross tool chain
> >  ---------------------------
> > @@ -88,18 +89,31 @@ To install it in Ubuntu::
> >
> >     sudo apt-get install pkg-config-aarch64-linux-gnu
> >
> > -To cross-compile DPDK on a desired target machine we can use the
> > following
> > -command::
> > +.. note::
> > +
> > +    Some aarch64 platforms support EL0 aarch32 mode, which means the 32-
> bit aarch32 applications
> > +    can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-
> gnueabihf`` is required
> > +    for aarch32 on aarch64. To install it in Ubuntu::
> > +
> > +       sudo dpkg --add-architecture armhf
> > +       sudo apt-get update
> > +       sudo apt-get install -y gcc-arm-linux-gnueabihf libc6:armhf
> > + binutils
> > +
> > +To cross-compile DPDK on a desired target machine use the following
> command::
> >
> >  	meson cross-build --cross-file <target_machine_configuration>
> >  	ninja -C cross-build
> >
> > -For example if the target machine is arm64 we can use the following
> > -command::
> > +For example if the target machine is aarch64 use the following command::
> >
> >  	meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
> >  	ninja -C arm64-build
> >
> > +If the target machine is aarch32 use the following command::
> > +
> > +	meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
> > +	ninja -C arm32-build
> > +
> >  Configure and Cross Compile DPDK using Make
> >  -------------------------------------------
> >  To configure a build, choose one of the target configurations, like arm64-
> dpaa-linux-gcc and arm64-thunderx-linux-gcc.
>
  

Patch

diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index c5875a6d5..fd0405d6d 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -1,15 +1,16 @@ 
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2018 ARM Corporation.
 
-Cross compile DPDK for ARM64
-============================
-This chapter describes how to cross compile DPDK for ARM64 from x86 build hosts.
+Cross compile DPDK for aarch64 and aarch32
+==========================================
+This chapter describes how to cross compile DPDK for aarch64 from x86 build hosts and compile
+32-bit aarch32 DPDK from aarch64 build hosts.
 
 .. note::
 
-   Whilst it is recommended to natively build DPDK on ARM64 (just
-   like with x86), it is also possible to cross-build DPDK for ARM64. An
-   ARM64 cross compile GNU toolchain is used for this.
+   Whilst it is recommended to natively build DPDK on aarch64 (just
+   like with x86), it is also possible to cross-build DPDK for aarch64.
+   An aarch64 cross compile GNU toolchain is used for this.
 
 Obtain the cross tool chain
 ---------------------------
@@ -88,18 +89,31 @@  To install it in Ubuntu::
 
    sudo apt-get install pkg-config-aarch64-linux-gnu
 
-To cross-compile DPDK on a desired target machine we can use the following
-command::
+.. note::
+
+    Some aarch64 platforms support EL0 aarch32 mode, which means the 32-bit aarch32 applications
+    can run on aarch64. The armhf architecture toolchain ``gcc-arm-linux-gnueabihf`` is required
+    for aarch32 on aarch64. To install it in Ubuntu::
+
+       sudo dpkg --add-architecture armhf
+       sudo apt-get update
+       sudo apt-get install -y gcc-arm-linux-gnueabihf libc6:armhf binutils
+
+To cross-compile DPDK on a desired target machine use the following command::
 
 	meson cross-build --cross-file <target_machine_configuration>
 	ninja -C cross-build
 
-For example if the target machine is arm64 we can use the following
-command::
+For example if the target machine is aarch64 use the following command::
 
 	meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
 	ninja -C arm64-build
 
+If the target machine is aarch32 use the following command::
+
+	meson arm32-build --cross-file config/arm/arm32_armv8a_linux_gcc
+	ninja -C arm32-build
+
 Configure and Cross Compile DPDK using Make
 -------------------------------------------
 To configure a build, choose one of the target configurations, like arm64-dpaa-linux-gcc and arm64-thunderx-linux-gcc.