* [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores)
@ 2018-12-30 14:16 Yann E. MORIN
2018-12-30 14:16 ` [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores Yann E. MORIN
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Yann E. MORIN @ 2018-12-30 14:16 UTC (permalink / raw)
To: buildroot
Hello All!
This small series:
- fixes the conditions under which some of the existing cores may
be selected,
- extends our choice of ARM cores, that were added with gcc-8.
Those four new cores have been verified to at least alow building the
toolchain, with uClibc-ng, glibc, and musl:
https://gitlab.com/ymorin/buildroot/pipelines/41680241
Regards,
Yann E. MORIN.
The following changes since commit cd6c2f41ef0e58d0b797039512d5c0f07c7239ab
package/php: bump version to 7.3.0 (2018-12-28 14:04:00 +0100)
are available in the git repository at:
git://git.buildroot.org/~ymorin/git/buildroot.git
for you to fetch changes up to c6db960a999901cb0beaac68b264e7c9b82e8891
arch/arm: add an armv8.3a core (2018-12-30 15:15:44 +0100)
----------------------------------------------------------------
Yann E. MORIN (4):
arch/arm: drop useless conditional dependencies for 64-bit-only cores
arch/arm: restrict more armv8a cores to aarch64
arch/arm: add armv8.2a cortex-based cores
arch/arm: add an armv8.3a core
arch/Config.in.arm | 55 ++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 39 insertions(+), 16 deletions(-)
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores 2018-12-30 14:16 [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores) Yann E. MORIN @ 2018-12-30 14:16 ` Yann E. MORIN 2018-12-30 14:29 ` Thomas Petazzoni 2018-12-30 14:16 ` [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 Yann E. MORIN ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Yann E. MORIN @ 2018-12-30 14:16 UTC (permalink / raw) To: buildroot Those cores are already guarded by a 64-bit-only condition, so they can't even select additional options in non-64-bit mode anyway... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- arch/Config.in.arm | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/Config.in.arm b/arch/Config.in.arm index f0488b4685..83813d96f5 100644 --- a/arch/Config.in.arm +++ b/arch/Config.in.arm @@ -440,27 +440,18 @@ if BR2_ARCH_IS_64 comment "armv8.1a cores" config BR2_thunderx2t99 bool "thunderx2t99" - select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_thunderx2t99p1 bool "thunderx2t99p1" - select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_vulcan bool "vulcan" - select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL -- 2.14.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores 2018-12-30 14:16 ` [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores Yann E. MORIN @ 2018-12-30 14:29 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2018-12-30 14:29 UTC (permalink / raw) To: buildroot Hello, On Sun, 30 Dec 2018 15:16:10 +0100, Yann E. MORIN wrote: > Those cores are already guarded by a 64-bit-only condition, so they > can't even select additional options in non-64-bit mode anyway... > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > --- > arch/Config.in.arm | 9 --------- > 1 file changed, 9 deletions(-) Applied to master, thanks. Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 2018-12-30 14:16 [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores) Yann E. MORIN 2018-12-30 14:16 ` [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores Yann E. MORIN @ 2018-12-30 14:16 ` Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni 2019-01-18 14:55 ` Peter Korsgaard 2018-12-30 14:16 ` [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores Yann E. MORIN 2018-12-30 14:16 ` [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core Yann E. MORIN 3 siblings, 2 replies; 10+ messages in thread From: Yann E. MORIN @ 2018-12-30 14:16 UTC (permalink / raw) To: buildroot Since gcc-8, falkor and qdf24xx have been available only as AArch64. Although we could support building in 32-bit for older gcc versions, we decided not to, in the sake of simplicity. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- arch/Config.in.arm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/arch/Config.in.arm b/arch/Config.in.arm index 83813d96f5..bc1bb26582 100644 --- a/arch/Config.in.arm +++ b/arch/Config.in.arm @@ -376,25 +376,19 @@ config BR2_exynos_m1 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 +if BR2_ARCH_IS_64 config BR2_falkor bool "falkor" - select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 config BR2_qdf24xx bool "qdf24xx" - select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 - select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_ARMV8A select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 -if BR2_ARCH_IS_64 config BR2_thunderx bool "thunderx" select BR2_ARM_CPU_HAS_FP_ARMV8 -- 2.14.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 2018-12-30 14:16 ` [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 Yann E. MORIN @ 2018-12-30 15:11 ` Thomas Petazzoni 2019-01-18 14:55 ` Peter Korsgaard 1 sibling, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2018-12-30 15:11 UTC (permalink / raw) To: buildroot Hello, On Sun, 30 Dec 2018 15:16:11 +0100, Yann E. MORIN wrote: > Since gcc-8, falkor and qdf24xx have been available only as AArch64. > > Although we could support building in 32-bit for older gcc versions, we > decided not to, in the sake of simplicity. > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > --- > arch/Config.in.arm | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) Applied to master after reworking the commit log to mention the exact gcc commit that dropped falkor and qdf24xx availability for ARM32. Since it was due to the released HW never supporting AArch32, it does not make sense to support these cores in AArch32 with older gcc versions. Best regards, Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 2018-12-30 14:16 ` [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni @ 2019-01-18 14:55 ` Peter Korsgaard 1 sibling, 0 replies; 10+ messages in thread From: Peter Korsgaard @ 2019-01-18 14:55 UTC (permalink / raw) To: buildroot >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > Since gcc-8, falkor and qdf24xx have been available only as AArch64. > Although we could support building in 32-bit for older gcc versions, we > decided not to, in the sake of simplicity. > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Committed to 2018.02.x and 2018.11.x, thanks. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores 2018-12-30 14:16 [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores) Yann E. MORIN 2018-12-30 14:16 ` [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores Yann E. MORIN 2018-12-30 14:16 ` [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 Yann E. MORIN @ 2018-12-30 14:16 ` Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni 2018-12-30 14:16 ` [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core Yann E. MORIN 3 siblings, 1 reply; 10+ messages in thread From: Yann E. MORIN @ 2018-12-30 14:16 UTC (permalink / raw) To: buildroot The armv8.2a generation is a cumulative extension to armv8.1a. Since gcc correctly enables the appropriate extensions based on the core name, we don't really need to introduce a separate config for armv8.2a, and we can piggyback on armv8a. In theory, gcc supports those cores in arm mode. However, configuring gcc thusly generates a non-working gcc that constantly whines: cc1: warning: switch -mcpu=cortex-a55 conflicts with -march=armv8.2-a switch It is to be noted that the -march flag is internal to gcc. It is not something that Buildroot did set when configuring gcc; Buildroot only ever sets --with-cpu (not --with-arch). Additionally, uClibc fails to build entirely (unsure if this is caused by the above, or if it is a separate issue, though), with: #### Your compiler does not support TLS and you are trying to build uClibc-ng #### with NPTL support. Upgrade your binutils and gcc to versions which #### support TLS for your architecture. Do not contact uClibc-ng maintainers #### about this problem. Glibc and musl have not been tested in arm mode, so maybe we could have a toolchain that eventually works (or at least, pretends to be working), but we decided it was not worth the effort. Thus, we restrict those cores to AArch64 mode only. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- Notes: those few packages that have a cortex-dependent option have been checked to not require extending the list: at91bootstrap3, gst-omapfb, kodi, nvidia-tegra23, and openblas. Only kvm-unit-tests may need it, but it has not been done by lack of testing possibility. --- arch/Config.in.arm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/Config.in.arm b/arch/Config.in.arm index bc1bb26582..e3c64d12ab 100644 --- a/arch/Config.in.arm +++ b/arch/Config.in.arm @@ -451,6 +451,28 @@ config BR2_vulcan select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 endif # BR2_ARCH_IS_64 + +if BR2_ARCH_IS_64 +comment "armv8.2a cores" +config BR2_cortex_a55 + bool "cortex-A55" + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_HAS_MMU_OPTIONAL + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_cortex_a75 + bool "cortex-A75" + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_HAS_MMU_OPTIONAL + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +config BR2_cortex_a75_a55 + bool "cortex-A75/A55 big.LITTLE" + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_HAS_MMU_OPTIONAL + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +endif # BR2_ARCH_IS_64 endchoice config BR2_ARM_ENABLE_NEON @@ -796,6 +818,10 @@ config BR2_GCC_TARGET_CPU default "thunderx2t99" if BR2_thunderx2t99 default "thunderx2t99p1" if BR2_thunderx2t99p1 default "vulcan" if BR2_vulcan + # armv8.2a + default "cortex-a55" if BR2_cortex_a55 + default "cortex-a75" if BR2_cortex_a75 + default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55 config BR2_GCC_TARGET_ABI default "aapcs-linux" if BR2_arm || BR2_armeb -- 2.14.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores 2018-12-30 14:16 ` [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores Yann E. MORIN @ 2018-12-30 15:11 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2018-12-30 15:11 UTC (permalink / raw) To: buildroot Hello, On Sun, 30 Dec 2018 15:16:12 +0100, Yann E. MORIN wrote: > The armv8.2a generation is a cumulative extension to armv8.1a. > > Since gcc correctly enables the appropriate extensions based on the core > name, we don't really need to introduce a separate config for armv8.2a, > and we can piggyback on armv8a. > > In theory, gcc supports those cores in arm mode. However, configuring > gcc thusly generates a non-working gcc that constantly whines: > cc1: warning: switch -mcpu=cortex-a55 conflicts with -march=armv8.2-a switch > > It is to be noted that the -march flag is internal to gcc. It is not > something that Buildroot did set when configuring gcc; Buildroot only > ever sets --with-cpu (not --with-arch). > > Additionally, uClibc fails to build entirely (unsure if this is caused > by the above, or if it is a separate issue, though), with: > #### Your compiler does not support TLS and you are trying to build uClibc-ng > #### with NPTL support. Upgrade your binutils and gcc to versions which > #### support TLS for your architecture. Do not contact uClibc-ng maintainers > #### about this problem. > > Glibc and musl have not been tested in arm mode, so maybe we could have > a toolchain that eventually works (or at least, pretends to be working), > but we decided it was not worth the effort. > > Thus, we restrict those cores to AArch64 mode only. > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > > --- > Notes: those few packages that have a cortex-dependent option have been > checked to not require extending the list: at91bootstrap3, gst-omapfb, > kodi, nvidia-tegra23, and openblas. Only kvm-unit-tests may need it, but > it has not been done by lack of testing possibility. > --- > arch/Config.in.arm | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) Applied to master, thanks. Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core 2018-12-30 14:16 [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores) Yann E. MORIN ` (2 preceding siblings ...) 2018-12-30 14:16 ` [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores Yann E. MORIN @ 2018-12-30 14:16 ` Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni 3 siblings, 1 reply; 10+ messages in thread From: Yann E. MORIN @ 2018-12-30 14:16 UTC (permalink / raw) To: buildroot The armv8.3a generation is a cumulative extension to armv8.2a. Since gcc correctly enables the appropriate extensions based on the core name, we don't really need to introduce a separate config for armv8.3a, and we can piggyback on armv8a. This new core is AArch64 only. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- arch/Config.in.arm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/Config.in.arm b/arch/Config.in.arm index e3c64d12ab..a9972978d4 100644 --- a/arch/Config.in.arm +++ b/arch/Config.in.arm @@ -473,6 +473,16 @@ config BR2_cortex_a75_a55 select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 endif # BR2_ARCH_IS_64 + +if BR2_ARCH_IS_64 +comment "armv8.3a cores" +config BR2_saphira + bool "saphira" + select BR2_ARM_CPU_HAS_FP_ARMV8 + select BR2_ARM_CPU_ARMV8A + select BR2_ARCH_HAS_MMU_OPTIONAL + select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 +endif # BR2_ARCH_IS_64 endchoice config BR2_ARM_ENABLE_NEON @@ -822,6 +832,8 @@ config BR2_GCC_TARGET_CPU default "cortex-a55" if BR2_cortex_a55 default "cortex-a75" if BR2_cortex_a75 default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55 + # armv8.3a + default "saphira" if BR2_saphira config BR2_GCC_TARGET_ABI default "aapcs-linux" if BR2_arm || BR2_armeb -- 2.14.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core 2018-12-30 14:16 ` [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core Yann E. MORIN @ 2018-12-30 15:11 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2018-12-30 15:11 UTC (permalink / raw) To: buildroot Hello, On Sun, 30 Dec 2018 15:16:13 +0100, Yann E. MORIN wrote: > The armv8.3a generation is a cumulative extension to armv8.2a. > > Since gcc correctly enables the appropriate extensions based on the core > name, we don't really need to introduce a separate config for armv8.3a, > and we can piggyback on armv8a. > > This new core is AArch64 only. > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > --- > arch/Config.in.arm | 12 ++++++++++++ > 1 file changed, 12 insertions(+) Applied to master, thanks. Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-01-18 14:55 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-30 14:16 [Buildroot] [PATCH 0/4] arch/arm: add more cores (branch yem/aarch64-new-cores) Yann E. MORIN 2018-12-30 14:16 ` [Buildroot] [PATCH 1/4] arch/arm: drop useless conditional dependencies for 64-bit-only cores Yann E. MORIN 2018-12-30 14:29 ` Thomas Petazzoni 2018-12-30 14:16 ` [Buildroot] [PATCH 2/4] arch/arm: restrict more armv8a cores to aarch64 Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni 2019-01-18 14:55 ` Peter Korsgaard 2018-12-30 14:16 ` [Buildroot] [PATCH 3/4] arch/arm: add armv8.2a cortex-based cores Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni 2018-12-30 14:16 ` [Buildroot] [PATCH 4/4] arch/arm: add an armv8.3a core Yann E. MORIN 2018-12-30 15:11 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox