> -----Original Message----- > From: Morten Brørup <m...@smartsharesystems.com> > Sent: Friday, November 6, 2020 9:23 AM > To: Juraj Linkeš <juraj.lin...@pantheon.tech>; bruce.richard...@intel.com; > ruifeng.w...@arm.com; honnappa.nagaraha...@arm.com; > phil.y...@arm.com; vcchu...@amazon.com; dharmik.thak...@arm.com; > jerinjac...@gmail.com; hemant.agra...@nxp.com; > ajit.khapa...@broadcom.com; ferruh.yi...@intel.com; acon...@redhat.com > Cc: dev@dpdk.org > Subject: RE: [dpdk-dev] [PATCH v8 00/14] Arm build options rework > > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Juraj Linkeš > > Sent: Friday, November 6, 2020 9:03 AM > > > > The current way of specifying Arm configuration options is > > insufficient since we can't identify the SoC we're building for from > > the MIDR information. For example, we can't distinguish between N1SDP, > > Graviton2 or Ampere Altra. > > > > Add a way to specify the cpu count and numa node count for cross > > builds. > > > > We also want to be able to disable which drivers (and possibly > > libraries) are built without user input. This is useful when building: > > 1. on an SoC that is slow and we want to build only what is necessary > > without the user having to check which libraries they have installed > > 2. a cross build on a fast aarch64 machine but with target SoC which > > differs in capabilities or libraries. > > This is achieved by specifying the drivers in cross files. > > > > Among libraries, only libnuma can be now disabled. > > > > Also add an optional way to discover cpu count a numa node count. Fix > > -Dmax_lcores and -Dmax_numa_nodes for arm builds. > > > > The current implementation adds/supports the following: > > * x86 -> aarch64 cross build with added config options/disabled > > drivers/libs > > * aarch64 -> aarch64 builds for a different SoCs must be done using > > cross-files > > * max numa nodes and max lcore may be specified on the command line to > > overwrite the values for any (native or cross) build > > > > We are cross building our application firmware x86 -> x86. Our firmware > repository includes the cross compiler source code, target libc source code, > and > so on. This ensures that the entire firmware is exactly the same, > independently > of which host it was built on. > > Back in the days, before we started using DPDK, we validated our cross > building > environment by building the complete firmware for our appliance (including > bootloader, Linux kernel, libraries, applications, root file system, etc.) > PPC -> > x86. It worked. > > The DPDK cross building system should work in any X -> Y environment, > including > X -> X cross building. >
The series only modifies aarch64 aspect of the build system. So anything else that worked before should be working as it was. The wording should've been more clearer - The series adds/supports those bullet points. > > v2: > > Major rework of the whole series. > > > > v3: > > Added numa and core count defaults for x86 default build. > > Removed numa and core count defaults. Now requiring defaults to be > > specified in a cross file or on the cmdline. > > Added FreeBDS support for numa count discovery. > > > > v4: > > Make automatic numa and cpu counts discovery optional. > > > > v5: > > Split the refactor patch into smaller patches. > > Simplify buildtools/get_numa_count.py. > > Add more explanation to cover letter. > > > > v6: > > Apply cross file options arch agnostically, not just in Arm cross > > builds. > > Streamline Arm build setup and machine args: always use native args in > > native builds, require implementer ID and part number for cross builds. > > > > v7: > > Arm config options are now organized in one dictionary. > > Removed unsupported implementers and removed fallback to generic > > implementer/part number for unknown implementer/part number. > > Added meson config option arm_soc which can be used to specify > > configuration to be used, useful for aarch64 -> aarch64 builds. > > > > v8: > > Rebase. > >