On Fri, Apr 9, 2021 at 2:11 PM Juraj Linkeš <juraj.lin...@pantheon.tech> wrote: > > 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. > > We also want to be able to enable/disable which drivers 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 SoC configuration. > > The current implementation adds/supports the following: > * x86 -> aarch64 cross build with added config options/enabled or > disabled drivers/libs > * aarch64 -> aarch64 builds for a different SoCs using meson -Dplatform > option or using a cross file > > v16: > Only three commits remaining - updated the cover letter. > Renamed the 'soc' meson option to 'platform'. > Added the support for enabling a particular set of drivers. > Aligned enabling and disabling with the command line option so that > wildcards can be used. > > v17: > Removed unnecessary comments in "build: disable/enable drivers in Arm > builds". Also always enabled two drivers which break the build if > disabled. > > v18: > Rebased. > > v19: > Updated 3/3 with more up to date MAX_LCORE and MAX_NUMA_NODES for > neoverse-n1.
There are other SoC target addition patches are blocked by this series. This series looks good to me. Request to merge this before RC1. Tested for octeontx2/Thunderx. Series-Tested-by: Jerin Jacob <jer...@marvell.com> > > Juraj Linkeš (3): > build: disable/enable drivers in Arm builds > build: add 'platform' meson option and Arm SoC config > config: fix Arm implementer and its SoCs > > config/arm/arm64_armada_linux_gcc | 6 +- > config/arm/arm64_armv8_linux_clang_ubuntu1804 | 3 +- > config/arm/arm64_armv8_linux_gcc | 5 +- > config/arm/arm64_bluefield_linux_gcc | 6 +- > config/arm/arm64_dpaa_linux_gcc | 6 +- > config/arm/arm64_emag_linux_gcc | 5 +- > config/arm/arm64_graviton2_linux_gcc | 6 +- > config/arm/arm64_n1sdp_linux_gcc | 6 +- > config/arm/arm64_n2_linux_gcc | 6 +- > config/arm/arm64_octeontx2_linux_gcc | 6 +- > config/arm/arm64_stingray_linux_gcc | 6 +- > config/arm/arm64_thunderx2_linux_gcc | 5 +- > config/arm/arm64_thunderxt88_linux_gcc | 5 +- > config/arm/meson.build | 180 +++++++++++++++--- > .../linux_gsg/cross_build_dpdk_for_arm64.rst | 76 +++----- > drivers/meson.build | 49 ++++- > meson.build | 2 + > meson_options.txt | 4 + > 18 files changed, 242 insertions(+), 140 deletions(-) > > -- > 2.20.1 >