All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations
@ 2022-07-29  0:08 Joel Stanley
  2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
                   ` (9 more replies)
  0 siblings, 10 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:08 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

The autobuilder has detected a bunch of powerpc build failures in recent
months, leading to workarounds applied to various packages. Many of these
failures were caused by invalid GCC configurations: building GCC in
little endian or 64-bit mode for CPUs that don't support that
configuration.

The first few patches clarify the menuconfig options for powerpc.

The third patch "arch/powerpc: Enable powerpc64le only on CPUs that
support it" should stop a user from selecting a ppc64le config for a CPU
that doesn't support it. The list of supported configurations can be
cross referenced from the kernel Kconfig:

 https://elixir.bootlin.com/linux/v5.18/source/arch/powerpc/platforms/Kconfig.cputype#L157

Patches 4-5 add new Power server CPUs from IBM.

The final three patches remove workarounds applied for power8, which
are unnecessary now. This should enable packages to be built with
optimisations for p9/p10 where applicable.

I've boot tested all of the in-tree configs, and tested the p9 and p10
cpu types.

Joel Stanley (9):
  arch/powerpc: Hide SPE ABI behind CPU type
  arch/powerpc: Clarify generic CPUs
  arch/powerpc: Enable powerpc64le only on CPUs that support it
  package/glibc: Use powerpc64le instead of power8
  arch/powerpc: Add Power9 CPU type
  arch/powerpc: Add Power10 CPU type
  package/mesa3d: Remove force disable of power8
  package/zlib-ng: Revert Power8 special casing
  package/openblas: Add Power9 and Power10 targets

 arch/Config.in.powerpc     | 40 +++++++++++++++++++++++++++++++-------
 package/glibc/Config.in    |  2 +-
 package/mesa3d/mesa3d.mk   |  3 +--
 package/openblas/Config.in |  2 ++
 package/zlib-ng/zlib-ng.mk |  6 ------
 5 files changed, 37 insertions(+), 16 deletions(-)

-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
@ 2022-07-29  0:08 ` Joel Stanley
  2022-07-29  6:48   ` Cédric Le Goater
  2022-07-29 21:17   ` Yann E. MORIN
  2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
                   ` (8 subsequent siblings)
  9 siblings, 2 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:08 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

The target ABI option for PowerPC is for selecting the SPE ABI, not the
ELF ABI that users may expect.

Hide it when there is no option available to make it clearer when
browsing menuconfig.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/Config.in.powerpc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index c48edd3bb40c..ef0e85fec680 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -143,6 +143,7 @@ config BR2_powerpc_power8
 	select BR2_POWERPC_CPU_HAS_VSX
 endchoice
 
+if BR2_POWERPC_CPU_HAS_SPE
 choice
 	prompt "Target ABI"
 	default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
@@ -157,6 +158,7 @@ config BR2_powerpc_SPE
 	bool "SPE"
 	depends on BR2_POWERPC_CPU_HAS_SPE
 endchoice
+endif
 
 config BR2_POWERPC_SOFT_FLOAT
 	bool "Use soft-float"
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
  2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
@ 2022-07-29  0:08 ` Joel Stanley
  2022-07-29  6:48   ` Cédric Le Goater
                     ` (2 more replies)
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
                   ` (7 subsequent siblings)
  9 siblings, 3 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:08 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

In the case where a specific CPU is not selected, set an appropriate
gcc target for the architecture.

For clarity this introduces a BR2_generic_powerpc64 as a generic 64 bit
CPU as this makes the it clearer when browsing menuconfig.

We can't have a generic ppc64le GCC, as attempting to configure glibc
for powerpc64le fails:

 configure: error: ***  POWER8 or newer is required on powerpc64le.
 __builtin_signbit is broken.  GCC 7.4 or newer is required to resolve
 (PR83862). The compiler must support -mabi=ieeelongdouble and
 -mlong-double-128 simultaneously.

Hence set Power8 as the default CPU for powerpc64le.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/Config.in.powerpc | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index ef0e85fec680..8d392bfde814 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -9,12 +9,17 @@ config BR2_POWERPC_CPU_HAS_SPE
 
 choice
 	prompt "Target Architecture Variant"
-	default BR2_generic_powerpc
+	default BR2_generic_powerpc if !BR2_ARCH_IS_64
+	default BR2_generic_powerpc64 if BR2_ARCH_IS_64
+	default BR2_powerpc_power8 if BR2_powerpc64le
 	help
 	  Specific CPU variant to use
 config BR2_generic_powerpc
-	bool "generic"
-	# No C library supports this variant on ppc64le
+	bool "generic (32 bit)"
+	depends on !BR2_ARCH_IS_64
+config BR2_generic_powerpc64
+	bool "generic (64 bit)"
+	depends on BR2_ARCH_IS_64
 	depends on !BR2_powerpc64le
 config BR2_powerpc_401
 	bool "401"
@@ -220,6 +225,8 @@ config BR2_GCC_TARGET_CPU
 	default "power6"	if BR2_powerpc_power6
 	default "power7"	if BR2_powerpc_power7
 	default "power8"	if BR2_powerpc_power8
+	default "powerpc64"	if BR2_generic_powerpc64
+	default "powerpc"	if BR2_generic_powerpc
 
 config BR2_READELF_ARCH_NAME
 	default "PowerPC"	if BR2_powerpc
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
  2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
  2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
@ 2022-07-29  0:08 ` Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
                     ` (4 more replies)
  2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
                   ` (6 subsequent siblings)
  9 siblings, 5 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:08 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

Invalid configurations lead to build failures, such as trying to enable
ppc64le for the ppc970:

  http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/

In order to run a ppc64le userspace a kernel that runs in this mode is
required. The only CPU supported in buildroot that can boot a ppc64le
kernel is Power8, so mark all of the other 64-bit capable CPUs as not
supporting ppc64le.

This drops the comment about libc, which is true but doesn't tell the
whole story.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/Config.in.powerpc | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index 8d392bfde814..7c6ae84348e9 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -71,11 +71,9 @@ config BR2_powerpc_604e
 	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_620
 	bool "620"
-	# No C library supports this variant on ppc64le
 	depends on !BR2_powerpc64le
 config BR2_powerpc_630
 	bool "630"
-	# No C library supports this variant on ppc64le
 	depends on !BR2_powerpc64le
 config BR2_powerpc_740
 	bool "740"
@@ -102,6 +100,7 @@ config BR2_powerpc_860
 	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_970
 	bool "970"
+	depends on !BR2_powerpc64le
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_8540
 	bool "8540 / e500v1"
@@ -129,21 +128,25 @@ config BR2_powerpc_e6500
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_power4
 	bool "power4"
-	# No C library supports this variant on ppc64le
 	depends on !BR2_powerpc64le
 config BR2_powerpc_power5
 	bool "power5"
-	# No C library supports this variant on ppc64le
 	depends on !BR2_powerpc64le
+	depends on BR2_ARCH_IS_64
 config BR2_powerpc_power6
 	bool "power6"
+	depends on !BR2_powerpc64le
+	depends on BR2_ARCH_IS_64
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_power7
 	bool "power7"
+	depends on !BR2_powerpc64le
+	depends on BR2_ARCH_IS_64
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 	select BR2_POWERPC_CPU_HAS_VSX
 config BR2_powerpc_power8
 	bool "power8"
+	depends on BR2_ARCH_IS_64
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 	select BR2_POWERPC_CPU_HAS_VSX
 endchoice
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (2 preceding siblings ...)
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
@ 2022-07-29  0:08 ` Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
                     ` (2 more replies)
  2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
                   ` (5 subsequent siblings)
  9 siblings, 3 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:08 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
we can use this symbol to indicate the CPU is supported by glibc.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 package/glibc/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index 23cbfcd9aa4f..e0ce46968278 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -12,7 +12,7 @@ config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
 	default y if BR2_or1k
 	default y if BR2_powerpc
 	default y if BR2_powerpc64
-	default y if BR2_powerpc_power8
+	default y if BR2_powerpc64le
 	default y if BR2_riscv
 	default y if BR2_s390x
 	default y if BR2_sh
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (3 preceding siblings ...)
  2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
@ 2022-07-29  0:09 ` Joel Stanley
  2022-07-29  6:53   ` Cédric Le Goater
                     ` (2 more replies)
  2022-07-29  0:09 ` [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 " Joel Stanley
                   ` (4 subsequent siblings)
  9 siblings, 3 replies; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:09 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

The Power9 CPU was released by IBM in 2016. It is a 64-bit CPU
implementing ISA v3.0. It runs in big and little endian modes, and
supports VSX and AltiVec.

Power9 is supported as of GCC 6.1 and Binutils 2.26.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/Config.in.powerpc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index 7c6ae84348e9..4c633c338d86 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -149,6 +149,12 @@ config BR2_powerpc_power8
 	depends on BR2_ARCH_IS_64
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 	select BR2_POWERPC_CPU_HAS_VSX
+config BR2_powerpc_power9
+	bool "power9"
+	depends on BR2_ARCH_IS_64
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
+	select BR2_POWERPC_CPU_HAS_VSX
+	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
 endchoice
 
 if BR2_POWERPC_CPU_HAS_SPE
@@ -228,6 +234,7 @@ config BR2_GCC_TARGET_CPU
 	default "power6"	if BR2_powerpc_power6
 	default "power7"	if BR2_powerpc_power7
 	default "power8"	if BR2_powerpc_power8
+	default "power9"	if BR2_powerpc_power9
 	default "powerpc64"	if BR2_generic_powerpc64
 	default "powerpc"	if BR2_generic_powerpc
 
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 CPU type
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (4 preceding siblings ...)
  2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
@ 2022-07-29  0:09 ` Joel Stanley
  2022-07-29  6:53   ` Cédric Le Goater
  2022-07-29  0:09 ` [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8 Joel Stanley
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:09 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

The Power10 CPU was released by IBM in 2021. It is a 64-bit CPU
implementing ISA v3.1. It runs in big and little endian modes, and
supports VSX and AltiVec.

It introduces prefix (8 byte) instructions along side the existing 4
byte instructions, and new SIMD MMA instructions.

Power10 is supported as of GCC 10 and Binutils 2.35.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/Config.in.powerpc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
index 4c633c338d86..002998d079ee 100644
--- a/arch/Config.in.powerpc
+++ b/arch/Config.in.powerpc
@@ -155,6 +155,12 @@ config BR2_powerpc_power9
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 	select BR2_POWERPC_CPU_HAS_VSX
 	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
+config BR2_powerpc_power10
+	bool "power10"
+	depends on BR2_ARCH_IS_64
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
+	select BR2_POWERPC_CPU_HAS_VSX
+	select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
 endchoice
 
 if BR2_POWERPC_CPU_HAS_SPE
@@ -235,6 +241,7 @@ config BR2_GCC_TARGET_CPU
 	default "power7"	if BR2_powerpc_power7
 	default "power8"	if BR2_powerpc_power8
 	default "power9"	if BR2_powerpc_power9
+	default "power10"	if BR2_powerpc_power10
 	default "powerpc64"	if BR2_generic_powerpc64
 	default "powerpc"	if BR2_generic_powerpc
 
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (5 preceding siblings ...)
  2022-07-29  0:09 ` [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 " Joel Stanley
@ 2022-07-29  0:09 ` Joel Stanley
  2022-07-29  6:54   ` Cédric Le Goater
  2022-07-29  0:09 ` [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing Joel Stanley
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:09 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
buildroot will no longer build a toolchain that has broken VMX support.

Remove the special casing so the build system can do feature detection.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 package/mesa3d/mesa3d.mk | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 96520e2efd23..955402dbb7dd 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -26,8 +26,7 @@ MESA3D_DEPENDENCIES = \
 	zlib
 
 MESA3D_CONF_OPTS = \
-	-Dgallium-omx=disabled \
-	-Dpower8=disabled
+	-Dgallium-omx=disabled
 
 # Codesourcery ARM 2014.05 fail to link libmesa_dri_drivers.so with --as-needed linker
 # flag due to a linker bug between binutils 2.24 and 2.25 (2.24.51.20140217).
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (6 preceding siblings ...)
  2022-07-29  0:09 ` [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8 Joel Stanley
@ 2022-07-29  0:09 ` Joel Stanley
  2022-07-29  6:55   ` Cédric Le Goater
  2022-07-29  0:09 ` [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets Joel Stanley
  2022-08-03 21:07 ` [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Yann E. MORIN
  9 siblings, 1 reply; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:09 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
buildroot will no longer build a toolchain that breaks feature
detection.

Remove the special casing so the build system can do feature detection.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 package/zlib-ng/zlib-ng.mk | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/package/zlib-ng/zlib-ng.mk b/package/zlib-ng/zlib-ng.mk
index 938acd4181a6..fb497b8c11d0 100644
--- a/package/zlib-ng/zlib-ng.mk
+++ b/package/zlib-ng/zlib-ng.mk
@@ -23,10 +23,4 @@ ifeq ($(BR2_arm),y)
 ZLIB_NG_CONF_OPTS += -DWITH_ACLE=1 -DWITH_NEON=1
 endif
 
-ifeq ($(BR2_powerpc_power8),y)
-ZLIB_NG_CONF_OPTS += -DWITH_POWER8=ON
-else
-ZLIB_NG_CONF_OPTS += -DWITH_POWER8=OFF
-endif
-
 $(eval $(cmake-package))
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (7 preceding siblings ...)
  2022-07-29  0:09 ` [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing Joel Stanley
@ 2022-07-29  0:09 ` Joel Stanley
  2022-07-29  6:55   ` Cédric Le Goater
  2022-08-03 21:07 ` [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Yann E. MORIN
  9 siblings, 1 reply; 39+ messages in thread
From: Joel Stanley @ 2022-07-29  0:09 UTC (permalink / raw)
  To: buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater

Now that buildroot supports these CPUs set the target type.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 package/openblas/Config.in | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/openblas/Config.in b/package/openblas/Config.in
index 0144e93a3faf..1d403c432e88 100644
--- a/package/openblas/Config.in
+++ b/package/openblas/Config.in
@@ -22,6 +22,8 @@ config BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
 	default "POWER6"       if BR2_powerpc_power6
 	default "POWER7"       if BR2_powerpc_power7
 	default "POWER8"       if BR2_powerpc_power8
+	default "POWER9"       if BR2_powerpc_power9
+	default "POWER10"      if BR2_powerpc_power10
 	default "PPCG4"        if BR2_powerpc_7400 || BR2_powerpc_7450
 	default "PPC970"       if BR2_powerpc_970
 	default "PPC440"       if BR2_powerpc_440
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs
  2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
@ 2022-07-29  6:48   ` Cédric Le Goater
  2022-07-29 21:25   ` Yann E. MORIN
  2022-08-03 21:28   ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:48 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:08, Joel Stanley wrote:
> In the case where a specific CPU is not selected, set an appropriate
> gcc target for the architecture.
> 
> For clarity this introduces a BR2_generic_powerpc64 as a generic 64 bit
> CPU as this makes the it clearer when browsing menuconfig.
> 
> We can't have a generic ppc64le GCC, as attempting to configure glibc
> for powerpc64le fails:
> 
>   configure: error: ***  POWER8 or newer is required on powerpc64le.
>   __builtin_signbit is broken.  GCC 7.4 or newer is required to resolve
>   (PR83862). The compiler must support -mabi=ieeelongdouble and
>   -mlong-double-128 simultaneously.
> 
> Hence set Power8 as the default CPU for powerpc64le.

power8 is now 8 years old. Is there any value in adding a power9
target ?

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>   arch/Config.in.powerpc | 13 ++++++++++---
>   1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index ef0e85fec680..8d392bfde814 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -9,12 +9,17 @@ config BR2_POWERPC_CPU_HAS_SPE
>   
>   choice
>   	prompt "Target Architecture Variant"
> -	default BR2_generic_powerpc
> +	default BR2_generic_powerpc if !BR2_ARCH_IS_64
> +	default BR2_generic_powerpc64 if BR2_ARCH_IS_64
> +	default BR2_powerpc_power8 if BR2_powerpc64le
>
>   	help
>   	  Specific CPU variant to use
>   config BR2_generic_powerpc
> -	bool "generic"
> -	# No C library supports this variant on ppc64le
> +	bool "generic (32 bit)"
> +	depends on !BR2_ARCH_IS_64
> +config BR2_generic_powerpc64
> +	bool "generic (64 bit)"
> +	depends on BR2_ARCH_IS_64
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_401
>   	bool "401"
> @@ -220,6 +225,8 @@ config BR2_GCC_TARGET_CPU
>   	default "power6"	if BR2_powerpc_power6
>   	default "power7"	if BR2_powerpc_power7
>   	default "power8"	if BR2_powerpc_power8
> +	default "powerpc64"	if BR2_generic_powerpc64
> +	default "powerpc"	if BR2_generic_powerpc
>   
>   config BR2_READELF_ARCH_NAME
>   	default "PowerPC"	if BR2_powerpc

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
@ 2022-07-29  6:48   ` Cédric Le Goater
  2022-07-29 21:17   ` Yann E. MORIN
  1 sibling, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:48 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:08, Joel Stanley wrote:
> The target ABI option for PowerPC is for selecting the SPE ABI, not the
> ELF ABI that users may expect.
> 
> Hide it when there is no option available to make it clearer when
> browsing menuconfig.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>   arch/Config.in.powerpc | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index c48edd3bb40c..ef0e85fec680 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -143,6 +143,7 @@ config BR2_powerpc_power8
>   	select BR2_POWERPC_CPU_HAS_VSX
>   endchoice
>   
> +if BR2_POWERPC_CPU_HAS_SPE
>   choice
>   	prompt "Target ABI"
>   	default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
> @@ -157,6 +158,7 @@ config BR2_powerpc_SPE
>   	bool "SPE"
>   	depends on BR2_POWERPC_CPU_HAS_SPE
>   endchoice
> +endif
>   
>   config BR2_POWERPC_SOFT_FLOAT
>   	bool "Use soft-float"

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
@ 2022-07-29  6:52   ` Cédric Le Goater
  2022-07-29 21:37     ` Yann E. MORIN
  2022-07-29 21:33   ` Yann E. MORIN
                     ` (3 subsequent siblings)
  4 siblings, 1 reply; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:52 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:08, Joel Stanley wrote:
> Invalid configurations lead to build failures, such as trying to enable
> ppc64le for the ppc970:
> 
>    http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
> 
> In order to run a ppc64le userspace a kernel that runs in this mode is
> required. The only CPU supported in buildroot that can boot a ppc64le
> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> supporting ppc64le.

I don't think we care much but Power7 could run also in LE.

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> 
> This drops the comment about libc, which is true but doesn't tell the
> whole story.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>   arch/Config.in.powerpc | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 8d392bfde814..7c6ae84348e9 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>   	depends on !BR2_ARCH_IS_64
>   config BR2_powerpc_620
>   	bool "620"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_630
>   	bool "630"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_740
>   	bool "740"
> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>   	depends on !BR2_ARCH_IS_64
>   config BR2_powerpc_970
>   	bool "970"
> +	depends on !BR2_powerpc64le
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_8540
>   	bool "8540 / e500v1"
> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_power4
>   	bool "power4"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_power5
>   	bool "power5"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64
>   config BR2_powerpc_power6
>   	bool "power6"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_power7
>   	bool "power7"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64>
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
>   config BR2_powerpc_power8
>   	bool "power8"
> +	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
>   endchoice

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8
  2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
@ 2022-07-29  6:52   ` Cédric Le Goater
  2022-07-29 21:41   ` Yann E. MORIN
  2022-09-18 10:42   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:52 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:08, Joel Stanley wrote:
> With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
> we can use this symbol to indicate the CPU is supported by glibc.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>   package/glibc/Config.in | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/glibc/Config.in b/package/glibc/Config.in
> index 23cbfcd9aa4f..e0ce46968278 100644
> --- a/package/glibc/Config.in
> +++ b/package/glibc/Config.in
> @@ -12,7 +12,7 @@ config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
>   	default y if BR2_or1k
>   	default y if BR2_powerpc
>   	default y if BR2_powerpc64
> -	default y if BR2_powerpc_power8
> +	default y if BR2_powerpc64le
>   	default y if BR2_riscv
>   	default y if BR2_s390x
>   	default y if BR2_sh

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type
  2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
@ 2022-07-29  6:53   ` Cédric Le Goater
  2022-07-29 21:42   ` Yann E. MORIN
  2022-09-18 10:43   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:53 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:09, Joel Stanley wrote:
> The Power9 CPU was released by IBM in 2016. It is a 64-bit CPU
> implementing ISA v3.0. It runs in big and little endian modes, and
> supports VSX and AltiVec.
> 
> Power9 is supported as of GCC 6.1 and Binutils 2.26.

Ah. That's what I was asking for !

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>   arch/Config.in.powerpc | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 7c6ae84348e9..4c633c338d86 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -149,6 +149,12 @@ config BR2_powerpc_power8
>   	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
> +config BR2_powerpc_power9
> +	bool "power9"
> +	depends on BR2_ARCH_IS_64
> +	select BR2_POWERPC_CPU_HAS_ALTIVEC
> +	select BR2_POWERPC_CPU_HAS_VSX
> +	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
>   endchoice
>   
>   if BR2_POWERPC_CPU_HAS_SPE
> @@ -228,6 +234,7 @@ config BR2_GCC_TARGET_CPU
>   	default "power6"	if BR2_powerpc_power6
>   	default "power7"	if BR2_powerpc_power7
>   	default "power8"	if BR2_powerpc_power8
> +	default "power9"	if BR2_powerpc_power9
>   	default "powerpc64"	if BR2_generic_powerpc64
>   	default "powerpc"	if BR2_generic_powerpc
>   

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 CPU type
  2022-07-29  0:09 ` [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 " Joel Stanley
@ 2022-07-29  6:53   ` Cédric Le Goater
  0 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:53 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:09, Joel Stanley wrote:
> The Power10 CPU was released by IBM in 2021. It is a 64-bit CPU
> implementing ISA v3.1. It runs in big and little endian modes, and
> supports VSX and AltiVec.
> 
> It introduces prefix (8 byte) instructions along side the existing 4
> byte instructions, and new SIMD MMA instructions.
> 
> Power10 is supported as of GCC 10 and Binutils 2.35.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>


Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>   arch/Config.in.powerpc | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 4c633c338d86..002998d079ee 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -155,6 +155,12 @@ config BR2_powerpc_power9
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
>   	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
> +config BR2_powerpc_power10
> +	bool "power10"
> +	depends on BR2_ARCH_IS_64
> +	select BR2_POWERPC_CPU_HAS_ALTIVEC
> +	select BR2_POWERPC_CPU_HAS_VSX
> +	select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
>   endchoice
>   
>   if BR2_POWERPC_CPU_HAS_SPE
> @@ -235,6 +241,7 @@ config BR2_GCC_TARGET_CPU
>   	default "power7"	if BR2_powerpc_power7
>   	default "power8"	if BR2_powerpc_power8
>   	default "power9"	if BR2_powerpc_power9
> +	default "power10"	if BR2_powerpc_power10
>   	default "powerpc64"	if BR2_generic_powerpc64
>   	default "powerpc"	if BR2_generic_powerpc
>   

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8
  2022-07-29  0:09 ` [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8 Joel Stanley
@ 2022-07-29  6:54   ` Cédric Le Goater
  0 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:54 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:09, Joel Stanley wrote:
> With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
> buildroot will no longer build a toolchain that has broken VMX support.
> 
> Remove the special casing so the build system can do feature detection.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>   package/mesa3d/mesa3d.mk | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index 96520e2efd23..955402dbb7dd 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -26,8 +26,7 @@ MESA3D_DEPENDENCIES = \
>   	zlib
>   
>   MESA3D_CONF_OPTS = \
> -	-Dgallium-omx=disabled \
> -	-Dpower8=disabled
> +	-Dgallium-omx=disabled
>   
>   # Codesourcery ARM 2014.05 fail to link libmesa_dri_drivers.so with --as-needed linker
>   # flag due to a linker bug between binutils 2.24 and 2.25 (2.24.51.20140217).

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing
  2022-07-29  0:09 ` [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing Joel Stanley
@ 2022-07-29  6:55   ` Cédric Le Goater
  0 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:55 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:09, Joel Stanley wrote:
> With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
> buildroot will no longer build a toolchain that breaks feature
> detection.
> 
> Remove the special casing so the build system can do feature detection.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>



Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.
> ---
>   package/zlib-ng/zlib-ng.mk | 6 ------
>   1 file changed, 6 deletions(-)
> 
> diff --git a/package/zlib-ng/zlib-ng.mk b/package/zlib-ng/zlib-ng.mk
> index 938acd4181a6..fb497b8c11d0 100644
> --- a/package/zlib-ng/zlib-ng.mk
> +++ b/package/zlib-ng/zlib-ng.mk
> @@ -23,10 +23,4 @@ ifeq ($(BR2_arm),y)
>   ZLIB_NG_CONF_OPTS += -DWITH_ACLE=1 -DWITH_NEON=1
>   endif
>   
> -ifeq ($(BR2_powerpc_power8),y)
> -ZLIB_NG_CONF_OPTS += -DWITH_POWER8=ON
> -else
> -ZLIB_NG_CONF_OPTS += -DWITH_POWER8=OFF
> -endif
> -
>   $(eval $(cmake-package))

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets
  2022-07-29  0:09 ` [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets Joel Stanley
@ 2022-07-29  6:55   ` Cédric Le Goater
  0 siblings, 0 replies; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-29  6:55 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 7/29/22 02:09, Joel Stanley wrote:
> Now that buildroot supports these CPUs set the target type.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>   package/openblas/Config.in | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/package/openblas/Config.in b/package/openblas/Config.in
> index 0144e93a3faf..1d403c432e88 100644
> --- a/package/openblas/Config.in
> +++ b/package/openblas/Config.in
> @@ -22,6 +22,8 @@ config BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
>   	default "POWER6"       if BR2_powerpc_power6
>   	default "POWER7"       if BR2_powerpc_power7
>   	default "POWER8"       if BR2_powerpc_power8
> +	default "POWER9"       if BR2_powerpc_power9
> +	default "POWER10"      if BR2_powerpc_power10
>   	default "PPCG4"        if BR2_powerpc_7400 || BR2_powerpc_7450
>   	default "PPC970"       if BR2_powerpc_970
>   	default "PPC440"       if BR2_powerpc_440

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
  2022-07-29  6:48   ` Cédric Le Goater
@ 2022-07-29 21:17   ` Yann E. MORIN
  2022-08-03 21:22     ` Thomas Petazzoni via buildroot
  1 sibling, 1 reply; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:17 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:38 +0930, Joel Stanley spake thusly:
> The target ABI option for PowerPC is for selecting the SPE ABI, not the
> ELF ABI that users may expect.
> 
> Hide it when there is no option available to make it clearer when
> browsing menuconfig.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  arch/Config.in.powerpc | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index c48edd3bb40c..ef0e85fec680 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -143,6 +143,7 @@ config BR2_powerpc_power8
>  	select BR2_POWERPC_CPU_HAS_VSX
>  endchoice
>  
> +if BR2_POWERPC_CPU_HAS_SPE
>  choice
>  	prompt "Target ABI"
>  	default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
> @@ -157,6 +158,7 @@ config BR2_powerpc_SPE
>  	bool "SPE"
>  	depends on BR2_POWERPC_CPU_HAS_SPE
>  endchoice
> +endif

I don't understand this change. Currently we have:

 1. If BR2_POWERPC_CPU_HAS_SPE=y:
    BR2_powerpc_CLASSIC is not selectable
    BR2_powerpc_SPE is the only choice

  2. if BR2_POWERPC_CPU_HAS_SPE is not set:
    BR2_powerpc_CLASSIC is the only choice
    BR2_powerpc_SPE is not selectable

This means that the choice was really nt a choice, because the value of
HAS_SPE implies which option is settable or not.

With your change, the BR2_powerpc_CLASSIC will never be selectable at
all, and BR2_powerpc_SPE will be forcibly set when
BR2_POWERPC_CPU_HAS_SPE=y

So we should just drop the choice altogether, and use the SPE ABI when
the CPu has SPE.

Is that what your patch was aiming at?

Regards,
Yann E. MORIN.

>  config BR2_POWERPC_SOFT_FLOAT
>  	bool "Use soft-float"
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs
  2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
  2022-07-29  6:48   ` Cédric Le Goater
@ 2022-07-29 21:25   ` Yann E. MORIN
  2022-08-03 21:28   ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:25 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:38 +0930, Joel Stanley spake thusly:
> In the case where a specific CPU is not selected, set an appropriate
> gcc target for the architecture.

Sorry, I am not sure I understood this. Currently, there is always at
least one CPU variant that is available in the variant choice; it is
never empty.

So, how come we can have a situation where "a specific CPU is not
selected"?

> For clarity this introduces a BR2_generic_powerpc64 as a generic 64 bit
> CPU as this makes the it clearer when browsing menuconfig.
> 
> We can't have a generic ppc64le GCC, as attempting to configure glibc
> for powerpc64le fails:
> 
>  configure: error: ***  POWER8 or newer is required on powerpc64le.
>  __builtin_signbit is broken.  GCC 7.4 or newer is required to resolve
>  (PR83862). The compiler must support -mabi=ieeelongdouble and
>  -mlong-double-128 simultaneously.
> 
> Hence set Power8 as the default CPU for powerpc64le.

If the other CPUs are not valid for ppc64le, then they should not be
selectable, like is already dine e.g. for e5500 or e6500 (among others).
Currently, ppc64le allows:
    970
    power6
    power7
    power8

So, maybe all but power8 should be hidden?

Also, it looks like it should be a separate, previous patch in the
series.

Regards,
Yann E. MORIN.

> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  arch/Config.in.powerpc | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index ef0e85fec680..8d392bfde814 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -9,12 +9,17 @@ config BR2_POWERPC_CPU_HAS_SPE
>  
>  choice
>  	prompt "Target Architecture Variant"
> -	default BR2_generic_powerpc
> +	default BR2_generic_powerpc if !BR2_ARCH_IS_64
> +	default BR2_generic_powerpc64 if BR2_ARCH_IS_64
> +	default BR2_powerpc_power8 if BR2_powerpc64le
>  	help
>  	  Specific CPU variant to use
>  config BR2_generic_powerpc
> -	bool "generic"
> -	# No C library supports this variant on ppc64le
> +	bool "generic (32 bit)"
> +	depends on !BR2_ARCH_IS_64
> +config BR2_generic_powerpc64
> +	bool "generic (64 bit)"
> +	depends on BR2_ARCH_IS_64
>  	depends on !BR2_powerpc64le
>  config BR2_powerpc_401
>  	bool "401"
> @@ -220,6 +225,8 @@ config BR2_GCC_TARGET_CPU
>  	default "power6"	if BR2_powerpc_power6
>  	default "power7"	if BR2_powerpc_power7
>  	default "power8"	if BR2_powerpc_power8
> +	default "powerpc64"	if BR2_generic_powerpc64
> +	default "powerpc"	if BR2_generic_powerpc
>  
>  config BR2_READELF_ARCH_NAME
>  	default "PowerPC"	if BR2_powerpc
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
@ 2022-07-29 21:33   ` Yann E. MORIN
  2022-08-03 21:32   ` Thomas Petazzoni via buildroot
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:33 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:38 +0930, Joel Stanley spake thusly:
> Invalid configurations lead to build failures, such as trying to enable
> ppc64le for the ppc970:
> 
>   http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
> 
> In order to run a ppc64le userspace a kernel that runs in this mode is
> required. The only CPU supported in buildroot that can boot a ppc64le
> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> supporting ppc64le.

Ah, this is where you hide incomatible CPUs for ppc64le. Good. This
should go before your generic CPU patch (patch 2).

Regards,
Yann E. MORIN.

> This drops the comment about libc, which is true but doesn't tell the
> whole story.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  arch/Config.in.powerpc | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 8d392bfde814..7c6ae84348e9 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>  	depends on !BR2_ARCH_IS_64
>  config BR2_powerpc_620
>  	bool "620"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
>  config BR2_powerpc_630
>  	bool "630"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
>  config BR2_powerpc_740
>  	bool "740"
> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>  	depends on !BR2_ARCH_IS_64
>  config BR2_powerpc_970
>  	bool "970"
> +	depends on !BR2_powerpc64le
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_8540
>  	bool "8540 / e500v1"
> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_power4
>  	bool "power4"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
>  config BR2_powerpc_power5
>  	bool "power5"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

This one is not strictly aout ppc64le. I.e. power5 is not an 32-bit CPU
at all.

Not: I am fine if the change is done in a single patch, but then the
commit should probably be a bit more generic, like

    arch/powerpc: fix variants dependencies

    Only allow variants in the case they are really workable:

      * the only variant in Buildroot that can be a ppc64le is power8

      * 970, power5, power6, and power7, pwer8 are 64-bit only

>  config BR2_powerpc_power6
>  	bool "power6"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

Ditto, and for the rest too.

>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_power7
>  	bool "power7"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  	select BR2_POWERPC_CPU_HAS_VSX
>  config BR2_powerpc_power8
>  	bool "power8"
> +	depends on BR2_ARCH_IS_64
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  	select BR2_POWERPC_CPU_HAS_VSX
>  endchoice
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  6:52   ` Cédric Le Goater
@ 2022-07-29 21:37     ` Yann E. MORIN
  2022-07-30 21:18       ` Cédric Le Goater
  0 siblings, 1 reply; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:37 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: Bernd Kuhls, Michael Ellerman, Joel Stanley, Thomas Petazzoni,
	buildroot, Romain Naour

Cédric, Joel, All,

On 2022-07-29 08:52 +0200, Cédric Le Goater spake thusly:
> On 7/29/22 02:08, Joel Stanley wrote:
> >Invalid configurations lead to build failures, such as trying to enable
> >ppc64le for the ppc970:
> >
> >   http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
> >
> >In order to run a ppc64le userspace a kernel that runs in this mode is
> >required. The only CPU supported in buildroot that can boot a ppc64le
> >kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> >supporting ppc64le.
> I don't think we care much but Power7 could run also in LE.

Joel seemed to state that only the power8 can be LE, so who's right? ;-)

In any case, if maore variants turn out to be LE-compatible, it is still
possible to enable htem in followup patches.

Regards,
Yann E. MORIN.

> Reviewed-by: Cédric Le Goater <clg@kaod.org>
> 
> Thanks,
> 
> C.
> 
> >
> >This drops the comment about libc, which is true but doesn't tell the
> >whole story.
> >
> >Signed-off-by: Joel Stanley <joel@jms.id.au>
> >---
> >  arch/Config.in.powerpc | 11 +++++++----
> >  1 file changed, 7 insertions(+), 4 deletions(-)
> >
> >diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> >index 8d392bfde814..7c6ae84348e9 100644
> >--- a/arch/Config.in.powerpc
> >+++ b/arch/Config.in.powerpc
> >@@ -71,11 +71,9 @@ config BR2_powerpc_604e
> >  	depends on !BR2_ARCH_IS_64
> >  config BR2_powerpc_620
> >  	bool "620"
> >-	# No C library supports this variant on ppc64le
> >  	depends on !BR2_powerpc64le
> >  config BR2_powerpc_630
> >  	bool "630"
> >-	# No C library supports this variant on ppc64le
> >  	depends on !BR2_powerpc64le
> >  config BR2_powerpc_740
> >  	bool "740"
> >@@ -102,6 +100,7 @@ config BR2_powerpc_860
> >  	depends on !BR2_ARCH_IS_64
> >  config BR2_powerpc_970
> >  	bool "970"
> >+	depends on !BR2_powerpc64le
> >  	select BR2_POWERPC_CPU_HAS_ALTIVEC
> >  config BR2_powerpc_8540
> >  	bool "8540 / e500v1"
> >@@ -129,21 +128,25 @@ config BR2_powerpc_e6500
> >  	select BR2_POWERPC_CPU_HAS_ALTIVEC
> >  config BR2_powerpc_power4
> >  	bool "power4"
> >-	# No C library supports this variant on ppc64le
> >  	depends on !BR2_powerpc64le
> >  config BR2_powerpc_power5
> >  	bool "power5"
> >-	# No C library supports this variant on ppc64le
> >  	depends on !BR2_powerpc64le
> >+	depends on BR2_ARCH_IS_64
> >  config BR2_powerpc_power6
> >  	bool "power6"
> >+	depends on !BR2_powerpc64le
> >+	depends on BR2_ARCH_IS_64
> >  	select BR2_POWERPC_CPU_HAS_ALTIVEC
> >  config BR2_powerpc_power7
> >  	bool "power7"
> >+	depends on !BR2_powerpc64le
> >+	depends on BR2_ARCH_IS_64>
> >  	select BR2_POWERPC_CPU_HAS_ALTIVEC
> >  	select BR2_POWERPC_CPU_HAS_VSX
> >  config BR2_powerpc_power8
> >  	bool "power8"
> >+	depends on BR2_ARCH_IS_64
> >  	select BR2_POWERPC_CPU_HAS_ALTIVEC
> >  	select BR2_POWERPC_CPU_HAS_VSX
> >  endchoice
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8
  2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
@ 2022-07-29 21:41   ` Yann E. MORIN
  2022-09-18 10:42   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:41 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:38 +0930, Joel Stanley spake thusly:
> With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
> we can use this symbol to indicate the CPU is supported by glibc.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  package/glibc/Config.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/glibc/Config.in b/package/glibc/Config.in
> index 23cbfcd9aa4f..e0ce46968278 100644
> --- a/package/glibc/Config.in
> +++ b/package/glibc/Config.in
> @@ -12,7 +12,7 @@ config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
>  	default y if BR2_or1k
>  	default y if BR2_powerpc
>  	default y if BR2_powerpc64
> -	default y if BR2_powerpc_power8
> +	default y if BR2_powerpc64le

This is indeed good, because it aligns it to the dependency to kernel
headers version, line 35. You could probably add that info to the commit
log when you respin the series.

Acked-by: Yann E. MORIN <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

>  	default y if BR2_riscv
>  	default y if BR2_s390x
>  	default y if BR2_sh
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type
  2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
  2022-07-29  6:53   ` Cédric Le Goater
@ 2022-07-29 21:42   ` Yann E. MORIN
  2022-09-18 10:43   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-29 21:42 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:39 +0930, Joel Stanley spake thusly:
> The Power9 CPU was released by IBM in 2016. It is a 64-bit CPU
> implementing ISA v3.0. It runs in big and little endian modes, and
> supports VSX and AltiVec.
> 
> Power9 is supported as of GCC 6.1 and Binutils 2.26.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Yann E. MORIN <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  arch/Config.in.powerpc | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 7c6ae84348e9..4c633c338d86 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -149,6 +149,12 @@ config BR2_powerpc_power8
>  	depends on BR2_ARCH_IS_64
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  	select BR2_POWERPC_CPU_HAS_VSX
> +config BR2_powerpc_power9
> +	bool "power9"
> +	depends on BR2_ARCH_IS_64
> +	select BR2_POWERPC_CPU_HAS_ALTIVEC
> +	select BR2_POWERPC_CPU_HAS_VSX
> +	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
>  endchoice
>  
>  if BR2_POWERPC_CPU_HAS_SPE
> @@ -228,6 +234,7 @@ config BR2_GCC_TARGET_CPU
>  	default "power6"	if BR2_powerpc_power6
>  	default "power7"	if BR2_powerpc_power7
>  	default "power8"	if BR2_powerpc_power8
> +	default "power9"	if BR2_powerpc_power9
>  	default "powerpc64"	if BR2_generic_powerpc64
>  	default "powerpc"	if BR2_generic_powerpc
>  
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29 21:37     ` Yann E. MORIN
@ 2022-07-30 21:18       ` Cédric Le Goater
  2022-07-31  6:43         ` Yann E. MORIN
  0 siblings, 1 reply; 39+ messages in thread
From: Cédric Le Goater @ 2022-07-30 21:18 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Bernd Kuhls, Michael Ellerman, Joel Stanley, Thomas Petazzoni,
	buildroot, Romain Naour

On 7/29/22 23:37, Yann E. MORIN wrote:
> Cédric, Joel, All,
> 
> On 2022-07-29 08:52 +0200, Cédric Le Goater spake thusly:
>> On 7/29/22 02:08, Joel Stanley wrote:
>>> Invalid configurations lead to build failures, such as trying to enable
>>> ppc64le for the ppc970:
>>>
>>>    http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
>>>
>>> In order to run a ppc64le userspace a kernel that runs in this mode is
>>> required. The only CPU supported in buildroot that can boot a ppc64le
>>> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
>>> supporting ppc64le.
>> I don't think we care much but Power7 could run also in LE.
> 
> Joel seemed to state that only the power8 can be LE, so who's right? ;-)
>
> In any case, if maore variants turn out to be LE-compatible, it is still
> possible to enable htem in followup patches.

Honestly we don't really care about Power7/LE. It never came out of
the lab. Power8 was the first released, let's keep it that way.

C.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-30 21:18       ` Cédric Le Goater
@ 2022-07-31  6:43         ` Yann E. MORIN
  0 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-07-31  6:43 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: Bernd Kuhls, Michael Ellerman, Joel Stanley, Thomas Petazzoni,
	buildroot, Romain Naour

Cédric, All,

On 2022-07-30 23:18 +0200, Cédric Le Goater spake thusly:
> On 7/29/22 23:37, Yann E. MORIN wrote:
> >On 2022-07-29 08:52 +0200, Cédric Le Goater spake thusly:
> >>On 7/29/22 02:08, Joel Stanley wrote:
> >>>In order to run a ppc64le userspace a kernel that runs in this mode is
> >>>required. The only CPU supported in buildroot that can boot a ppc64le
> >>>kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> >>>supporting ppc64le.
> >>I don't think we care much but Power7 could run also in LE.
> >Joel seemed to state that only the power8 can be LE, so who's right? ;-)
> Honestly we don't really care about Power7/LE. It never came out of
> the lab. Power8 was the first released, let's keep it that way.

That's perfectly fine with me. Thanks!

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations
  2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
                   ` (8 preceding siblings ...)
  2022-07-29  0:09 ` [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets Joel Stanley
@ 2022-08-03 21:07 ` Yann E. MORIN
  9 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-08-03 21:07 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-07-29 09:38 +0930, Joel Stanley spake thusly:
> The autobuilder has detected a bunch of powerpc build failures in recent
> months, leading to workarounds applied to various packages. Many of these
> failures were caused by invalid GCC configurations: building GCC in
> little endian or 64-bit mode for CPUs that don't support that
> configuration.

Thanks for tackling the issue! 👍

There has been some feedback on some patches in the series, which will
require either some of the patches to be reworked, and/or the commit
logs to be expanded with some more detailed explanations.

So I've marked this series as Changes-requested in patchwork.

Looking forward to seeing he next iteration to eventually fix the
issues!

Regards,
Yann E. MORIN.

> The first few patches clarify the menuconfig options for powerpc.
> 
> The third patch "arch/powerpc: Enable powerpc64le only on CPUs that
> support it" should stop a user from selecting a ppc64le config for a CPU
> that doesn't support it. The list of supported configurations can be
> cross referenced from the kernel Kconfig:
> 
>  https://elixir.bootlin.com/linux/v5.18/source/arch/powerpc/platforms/Kconfig.cputype#L157
> 
> Patches 4-5 add new Power server CPUs from IBM.
> 
> The final three patches remove workarounds applied for power8, which
> are unnecessary now. This should enable packages to be built with
> optimisations for p9/p10 where applicable.
> 
> I've boot tested all of the in-tree configs, and tested the p9 and p10
> cpu types.
> 
> Joel Stanley (9):
>   arch/powerpc: Hide SPE ABI behind CPU type
>   arch/powerpc: Clarify generic CPUs
>   arch/powerpc: Enable powerpc64le only on CPUs that support it
>   package/glibc: Use powerpc64le instead of power8
>   arch/powerpc: Add Power9 CPU type
>   arch/powerpc: Add Power10 CPU type
>   package/mesa3d: Remove force disable of power8
>   package/zlib-ng: Revert Power8 special casing
>   package/openblas: Add Power9 and Power10 targets
> 
>  arch/Config.in.powerpc     | 40 +++++++++++++++++++++++++++++++-------
>  package/glibc/Config.in    |  2 +-
>  package/mesa3d/mesa3d.mk   |  3 +--
>  package/openblas/Config.in |  2 ++
>  package/zlib-ng/zlib-ng.mk |  6 ------
>  5 files changed, 37 insertions(+), 16 deletions(-)
> 
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-07-29 21:17   ` Yann E. MORIN
@ 2022-08-03 21:22     ` Thomas Petazzoni via buildroot
  2022-08-05  6:05       ` Joel Stanley
  0 siblings, 1 reply; 39+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-03 21:22 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Bernd Kuhls, Michael Ellerman, Joel Stanley, buildroot,
	Romain Naour, Cédric Le Goater

Hello,

On Fri, 29 Jul 2022 23:17:55 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> I don't understand this change. Currently we have:
> 
>  1. If BR2_POWERPC_CPU_HAS_SPE=y:
>     BR2_powerpc_CLASSIC is not selectable
>     BR2_powerpc_SPE is the only choice
> 
>   2. if BR2_POWERPC_CPU_HAS_SPE is not set:
>     BR2_powerpc_CLASSIC is the only choice
>     BR2_powerpc_SPE is not selectable
> 
> This means that the choice was really nt a choice, because the value of
> HAS_SPE implies which option is settable or not.
> 
> With your change, the BR2_powerpc_CLASSIC will never be selectable at
> all, and BR2_powerpc_SPE will be forcibly set when
> BR2_POWERPC_CPU_HAS_SPE=y
> 
> So we should just drop the choice altogether, and use the SPE ABI when
> the CPu has SPE.

I agree with your analysis here. I would like to go one step further:
SPE is only used by two PowerPC cores:

config BR2_powerpc_8540
        bool "8540 / e500v1"
        depends on !BR2_ARCH_IS_64
        select BR2_POWERPC_CPU_HAS_SPE
config BR2_powerpc_8548
        bool "8548 / e500v2"
        depends on !BR2_ARCH_IS_64
        select BR2_POWERPC_CPU_HAS_SPE

and SPE is no longer supported by upstream GCC. For now, we have kept
GCC 8.x around just to support this SPE ABI, but it is clearly not a
future proof solution.

Can we drop support for SPE entirely?

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs
  2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
  2022-07-29  6:48   ` Cédric Le Goater
  2022-07-29 21:25   ` Yann E. MORIN
@ 2022-08-03 21:28   ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 39+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-03 21:28 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour,
	Cédric Le Goater, buildroot

On Fri, 29 Jul 2022 09:38:57 +0930
Joel Stanley <joel@jms.id.au> wrote:

> In the case where a specific CPU is not selected, set an appropriate
> gcc target for the architecture.
> 
> For clarity this introduces a BR2_generic_powerpc64 as a generic 64 bit
> CPU as this makes the it clearer when browsing menuconfig.
> 
> We can't have a generic ppc64le GCC, as attempting to configure glibc
> for powerpc64le fails:
> 
>  configure: error: ***  POWER8 or newer is required on powerpc64le.
>  __builtin_signbit is broken.  GCC 7.4 or newer is required to resolve
>  (PR83862). The compiler must support -mabi=ieeelongdouble and
>  -mlong-double-128 simultaneously.
> 
> Hence set Power8 as the default CPU for powerpc64le.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  arch/Config.in.powerpc | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index ef0e85fec680..8d392bfde814 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -9,12 +9,17 @@ config BR2_POWERPC_CPU_HAS_SPE
>  
>  choice
>  	prompt "Target Architecture Variant"
> -	default BR2_generic_powerpc
> +	default BR2_generic_powerpc if !BR2_ARCH_IS_64
> +	default BR2_generic_powerpc64 if BR2_ARCH_IS_64
> +	default BR2_powerpc_power8 if BR2_powerpc64le

This default will never be used, because BR2_ARCH_IS_64 is true when
BR2_powerpc64le is true. So on powerpc64le, "default
BR2_generic_powerpc64 if BR2_ARCH_IS_64" will match.

So a better solution is:

+	default BR2_generic_powerpc if BR2_powerpc
+	default BR2_generic_powerpc64 if BR2_powerpc64
+	default BR2_powerpc_power8 if BR2_powerpc64le

>  	help
>  	  Specific CPU variant to use
>  config BR2_generic_powerpc
> -	bool "generic"
> -	# No C library supports this variant on ppc64le
> +	bool "generic (32 bit)"
> +	depends on !BR2_ARCH_IS_64

I think the (32 bit) is useless, because this one will only show up on
32-bit powerpc.

> +config BR2_generic_powerpc64
> +	bool "generic (64 bit)"
> +	depends on BR2_ARCH_IS_64
>  	depends on !BR2_powerpc64le

Ditto here.

However, a help text for both of these options would be useful, as
these "generic" options are always a bit magic as to what CPUs they
support exactly. The help text should also say that they map to
-mcpu=powerpc and -mcpu=powerpc64 respectively.

As Yann requested, the commit log needs to be changed, as "In the case
where a specific CPU is not selected, set an appropriate gcc target for
the architecture." is incorrect, as a specific CPU is always selected.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
  2022-07-29 21:33   ` Yann E. MORIN
@ 2022-08-03 21:32   ` Thomas Petazzoni via buildroot
  2022-09-18 10:23   ` Arnout Vandecappelle
  2022-09-18 10:24   ` Arnout Vandecappelle
  4 siblings, 0 replies; 39+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-03 21:32 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour,
	Cédric Le Goater, buildroot

Hello,

Can we try to use positive logic here? See below what I mean.

On Fri, 29 Jul 2022 09:38:58 +0930
Joel Stanley <joel@jms.id.au> wrote:

> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 8d392bfde814..7c6ae84348e9 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>  	depends on !BR2_ARCH_IS_64
>  config BR2_powerpc_620
>  	bool "620"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le

So powerpc_620 is usable as PowerPC 32-bit, or PowerPC 64-bit BE ? If
so, then:

	depends on BR2_powerpc || BR2_powerpc64

>  config BR2_powerpc_630
>  	bool "630"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le

Ditto.

>  config BR2_powerpc_740
>  	bool "740"
> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>  	depends on !BR2_ARCH_IS_64

Ditto.

>  config BR2_powerpc_970
>  	bool "970"
> +	depends on !BR2_powerpc64le

Ditto.

>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_8540
>  	bool "8540 / e500v1"
> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_power4
>  	bool "power4"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
>  config BR2_powerpc_power5
>  	bool "power5"
> -	# No C library supports this variant on ppc64le
>  	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

And here:

	depends on BR2_powerpc64

>  config BR2_powerpc_power6
>  	bool "power6"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

Ditto:

	depends on BR2_powerpc64

>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  config BR2_powerpc_power7
>  	bool "power7"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

Ditto:

	depends on BR2_powerpc64

>  	select BR2_POWERPC_CPU_HAS_ALTIVEC
>  	select BR2_POWERPC_CPU_HAS_VSX
>  config BR2_powerpc_power8
>  	bool "power8"
> +	depends on BR2_ARCH_IS_64

And hgere:

	depends on BR2_powerpc64 || BR2_powerpc64le

It would be useful to do that in a consistent way for all PowerPC cores
in this choice, so that it is very clear for which of powerpc,
powerpc64 and powerpc64le each PowerPC core is valid.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-08-03 21:22     ` Thomas Petazzoni via buildroot
@ 2022-08-05  6:05       ` Joel Stanley
  2022-08-05 15:46         ` Yann E. MORIN
  0 siblings, 1 reply; 39+ messages in thread
From: Joel Stanley @ 2022-08-05  6:05 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater, buildroot,
	Romain Naour, Yann E. MORIN

On Wed, 3 Aug 2022 at 21:22, Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello,
>
> On Fri, 29 Jul 2022 23:17:55 +0200
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
>
> > I don't understand this change. Currently we have:
> >
> >  1. If BR2_POWERPC_CPU_HAS_SPE=y:
> >     BR2_powerpc_CLASSIC is not selectable
> >     BR2_powerpc_SPE is the only choice
> >
> >   2. if BR2_POWERPC_CPU_HAS_SPE is not set:
> >     BR2_powerpc_CLASSIC is the only choice
> >     BR2_powerpc_SPE is not selectable
> >
> > This means that the choice was really nt a choice, because the value of
> > HAS_SPE implies which option is settable or not.
> >
> > With your change, the BR2_powerpc_CLASSIC will never be selectable at
> > all, and BR2_powerpc_SPE will be forcibly set when
> > BR2_POWERPC_CPU_HAS_SPE=y
> >
> > So we should just drop the choice altogether, and use the SPE ABI when
> > the CPu has SPE.
>
> I agree with your analysis here. I would like to go one step further:
> SPE is only used by two PowerPC cores:
>
> config BR2_powerpc_8540
>         bool "8540 / e500v1"
>         depends on !BR2_ARCH_IS_64
>         select BR2_POWERPC_CPU_HAS_SPE
> config BR2_powerpc_8548
>         bool "8548 / e500v2"
>         depends on !BR2_ARCH_IS_64
>         select BR2_POWERPC_CPU_HAS_SPE
>
> and SPE is no longer supported by upstream GCC. For now, we have kept
> GCC 8.x around just to support this SPE ABI, but it is clearly not a
> future proof solution.
>
> Can we drop support for SPE entirely?

I vote for dropping support. Given the lack of GCC support it's only a
matter of time before our hand would be forced.

I'll drop this patch from my series for now, as it isn't related to
the ppc64le fixes.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type
  2022-08-05  6:05       ` Joel Stanley
@ 2022-08-05 15:46         ` Yann E. MORIN
  0 siblings, 0 replies; 39+ messages in thread
From: Yann E. MORIN @ 2022-08-05 15:46 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Bernd Kuhls, Michael Ellerman, Cédric Le Goater,
	Thomas Petazzoni, buildroot, Romain Naour

Joel, All,

On 2022-08-05 06:05 +0000, Joel Stanley spake thusly:
> On Wed, 3 Aug 2022 at 21:22, Thomas Petazzoni
> <thomas.petazzoni@bootlin.com> wrote:
> > On Fri, 29 Jul 2022 23:17:55 +0200
> > "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
[--SNIP--]
> > > So we should just drop the choice altogether, and use the SPE ABI when
> > > the CPu has SPE.
[--SNIP--]
> > and SPE is no longer supported by upstream GCC. For now, we have kept
> > GCC 8.x around just to support this SPE ABI, but it is clearly not a
> > future proof solution.
> > Can we drop support for SPE entirely?
> I vote for dropping support. Given the lack of GCC support it's only a
> matter of time before our hand would be forced.

That's totally fine by me, too, with a commit log that summarises this
discussion of course! ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
                     ` (2 preceding siblings ...)
  2022-08-03 21:32   ` Thomas Petazzoni via buildroot
@ 2022-09-18 10:23   ` Arnout Vandecappelle
  2022-09-20 17:09     ` Cédric Le Goater
  2022-09-18 10:24   ` Arnout Vandecappelle
  4 siblings, 1 reply; 39+ messages in thread
From: Arnout Vandecappelle @ 2022-09-18 10:23 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater



On 29/07/2022 02:08, Joel Stanley wrote:
> Invalid configurations lead to build failures, such as trying to enable
> ppc64le for the ppc970:
> 
>    http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
> 
> In order to run a ppc64le userspace a kernel that runs in this mode is
> required. The only CPU supported in buildroot that can boot a ppc64le
> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> supporting ppc64le.
> 
> This drops the comment about libc, which is true but doesn't tell the
> whole story.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

  Applied to master with some changes, see below.

> ---
>   arch/Config.in.powerpc | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 8d392bfde814..7c6ae84348e9 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>   	depends on !BR2_ARCH_IS_64
>   config BR2_powerpc_620
>   	bool "620"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_630
>   	bool "630"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_740
>   	bool "740"
> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>   	depends on !BR2_ARCH_IS_64
>   config BR2_powerpc_970
>   	bool "970"
> +	depends on !BR2_powerpc64le

  As suggested by Thomas, I changed this to positive logic. I'll also push a 
follow-up patch that changes the rest of the file to positive logic.

  Could you (or any other powerpc "expert") review the conditions to be sure the 
architecture selection options are correct now?

>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_8540
>   	bool "8540 / e500v1"
> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_power4
>   	bool "power4"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
>   config BR2_powerpc_power5
>   	bool "power5"
> -	# No C library supports this variant on ppc64le
>   	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

  AFAIU, all POWER CPUs are able to run in 32-bit mode and I believe it's even 
possible to run a 64-bit kernel with 32-bit userspace like on ARM. Is this not true?

  If POWER5+ really can't run in 32-bit mode (or this is not supported by the 
kernel), are you sure that this *is* possible on POWER4?

  In either case, if the current conditions are not correct, please send a 
follow-up patch to fix them even more.


>   config BR2_powerpc_power6
>   	bool "power6"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64

  So here I wrote the condition as

	depends on BR2_powerpc || BR2_powerpc64

because I do believe it supports 32-bit.

  Regards,
  Arnout

>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   config BR2_powerpc_power7
>   	bool "power7"
> +	depends on !BR2_powerpc64le
> +	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
>   config BR2_powerpc_power8
>   	bool "power8"
> +	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
>   endchoice
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
                     ` (3 preceding siblings ...)
  2022-09-18 10:23   ` Arnout Vandecappelle
@ 2022-09-18 10:24   ` Arnout Vandecappelle
  4 siblings, 0 replies; 39+ messages in thread
From: Arnout Vandecappelle @ 2022-09-18 10:24 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater



On 29/07/2022 02:08, Joel Stanley wrote:
> Invalid configurations lead to build failures, such as trying to enable
> ppc64le for the ppc970:
> 
>    http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
> 
> In order to run a ppc64le userspace a kernel that runs in this mode is
> required. The only CPU supported in buildroot that can boot a ppc64le
> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
> supporting ppc64le.
> 
> This drops the comment about libc, which is true but doesn't tell the
> whole story.

  One more thing: powerpc_generic still has that comment, shouldn't it be 
removed there as well?

  Regards,
  Arnout

> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
[snip]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8
  2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
  2022-07-29  6:52   ` Cédric Le Goater
  2022-07-29 21:41   ` Yann E. MORIN
@ 2022-09-18 10:42   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Arnout Vandecappelle @ 2022-09-18 10:42 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater



On 29/07/2022 02:08, Joel Stanley wrote:
> With "arch/powerpc: Enable powerpc64le only on CPUs that support it"
> we can use this symbol to indicate the CPU is supported by glibc.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

  Applied to master, after extending commit log as indicated by Yann, thanks.

  Regards,
  Arnout

> ---
>   package/glibc/Config.in | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/glibc/Config.in b/package/glibc/Config.in
> index 23cbfcd9aa4f..e0ce46968278 100644
> --- a/package/glibc/Config.in
> +++ b/package/glibc/Config.in
> @@ -12,7 +12,7 @@ config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
>   	default y if BR2_or1k
>   	default y if BR2_powerpc
>   	default y if BR2_powerpc64
> -	default y if BR2_powerpc_power8
> +	default y if BR2_powerpc64le
>   	default y if BR2_riscv
>   	default y if BR2_s390x
>   	default y if BR2_sh
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type
  2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
  2022-07-29  6:53   ` Cédric Le Goater
  2022-07-29 21:42   ` Yann E. MORIN
@ 2022-09-18 10:43   ` Arnout Vandecappelle
  2 siblings, 0 replies; 39+ messages in thread
From: Arnout Vandecappelle @ 2022-09-18 10:43 UTC (permalink / raw)
  To: Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour, Cédric Le Goater



On 29/07/2022 02:09, Joel Stanley wrote:
> The Power9 CPU was released by IBM in 2016. It is a 64-bit CPU
> implementing ISA v3.0. It runs in big and little endian modes, and
> supports VSX and AltiVec.
> 
> Power9 is supported as of GCC 6.1 and Binutils 2.26.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

  Applied to master, after removing the !64 condition, thanks.

  I didn't continue with the rest of the series - there are merge conflicts with 
the earlier changes I did. Can you please rebase and resend? And also take into 
account the comments on the first three patches of the series of course.

  Regards,
  Arnout

> ---
>   arch/Config.in.powerpc | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
> index 7c6ae84348e9..4c633c338d86 100644
> --- a/arch/Config.in.powerpc
> +++ b/arch/Config.in.powerpc
> @@ -149,6 +149,12 @@ config BR2_powerpc_power8
>   	depends on BR2_ARCH_IS_64
>   	select BR2_POWERPC_CPU_HAS_ALTIVEC
>   	select BR2_POWERPC_CPU_HAS_VSX
> +config BR2_powerpc_power9
> +	bool "power9"
> +	depends on BR2_ARCH_IS_64
> +	select BR2_POWERPC_CPU_HAS_ALTIVEC
> +	select BR2_POWERPC_CPU_HAS_VSX
> +	select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
>   endchoice
>   
>   if BR2_POWERPC_CPU_HAS_SPE
> @@ -228,6 +234,7 @@ config BR2_GCC_TARGET_CPU
>   	default "power6"	if BR2_powerpc_power6
>   	default "power7"	if BR2_powerpc_power7
>   	default "power8"	if BR2_powerpc_power8
> +	default "power9"	if BR2_powerpc_power9
>   	default "powerpc64"	if BR2_generic_powerpc64
>   	default "powerpc"	if BR2_generic_powerpc
>   
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-09-18 10:23   ` Arnout Vandecappelle
@ 2022-09-20 17:09     ` Cédric Le Goater
  2022-09-20 20:32       ` Arnout Vandecappelle
  0 siblings, 1 reply; 39+ messages in thread
From: Cédric Le Goater @ 2022-09-20 17:09 UTC (permalink / raw)
  To: Arnout Vandecappelle, Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour

On 9/18/22 12:23, Arnout Vandecappelle wrote:
> 
> 
> On 29/07/2022 02:08, Joel Stanley wrote:
>> Invalid configurations lead to build failures, such as trying to enable
>> ppc64le for the ppc970:
>>
>>    http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
>>
>> In order to run a ppc64le userspace a kernel that runs in this mode is
>> required. The only CPU supported in buildroot that can boot a ppc64le
>> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
>> supporting ppc64le.
>>
>> This drops the comment about libc, which is true but doesn't tell the
>> whole story.
>>
>> Signed-off-by: Joel Stanley <joel@jms.id.au>
> 
>   Applied to master with some changes, see below.
> 
>> ---
>>   arch/Config.in.powerpc | 11 +++++++----
>>   1 file changed, 7 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
>> index 8d392bfde814..7c6ae84348e9 100644
>> --- a/arch/Config.in.powerpc
>> +++ b/arch/Config.in.powerpc
>> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>>       depends on !BR2_ARCH_IS_64
>>   config BR2_powerpc_620
>>       bool "620"
>> -    # No C library supports this variant on ppc64le
>>       depends on !BR2_powerpc64le
>>   config BR2_powerpc_630
>>       bool "630"
>> -    # No C library supports this variant on ppc64le
>>       depends on !BR2_powerpc64le
>>   config BR2_powerpc_740
>>       bool "740"
>> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>>       depends on !BR2_ARCH_IS_64
>>   config BR2_powerpc_970
>>       bool "970"
>> +    depends on !BR2_powerpc64le
> 
>   As suggested by Thomas, I changed this to positive logic. I'll also push a follow-up patch that changes the rest of the file to positive logic.
> 
>   Could you (or any other powerpc "expert") review the conditions to be sure the architecture selection options are correct now?
> 
>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>   config BR2_powerpc_8540
>>       bool "8540 / e500v1"
>> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>   config BR2_powerpc_power4
>>       bool "power4"
>> -    # No C library supports this variant on ppc64le
>>       depends on !BR2_powerpc64le
>>   config BR2_powerpc_power5
>>       bool "power5"
>> -    # No C library supports this variant on ppc64le
>>       depends on !BR2_powerpc64le
>> +    depends on BR2_ARCH_IS_64
> 
>   AFAIU, all POWER CPUs are able to run in 32-bit mode 

yes. The question is more : can we generate correctly 32-bit software
for all these CPUs ? firmware, kernel and userspace. I doubt we have
correct support for older CPUs.

> and I believe it's even possible to run a 64-bit kernel with 32-bit userspace like on ARM. 
> Is this not true?

It is. This is checked on older CPUs, like G5, under QEMU but 32bit is
bit-rotting in many places.

> 
>   If POWER5+ really can't run in 32-bit mode (or this is not supported by the kernel), 

I think there is an issue with the use of the rfi instruction in 32-bit
mode which was removed from the ISA of server CPUs. You can not generate
a 32bit kernel for such CPUs AFAIR

> are you sure that this *is* possible on POWER4?

POWER4 support was removed from Linux ~4 years ago.
  
>   In either case, if the current conditions are not correct, please send 
> a follow-up patch to fix them even more.

It is safer to build all 64-bit (kernel + userspace) for server CPUs.
  
>>   config BR2_powerpc_power6
>>       bool "power6"
>> +    depends on !BR2_powerpc64le
>> +    depends on BR2_ARCH_IS_64
> 
>   So here I wrote the condition as
> 
>      depends on BR2_powerpc || BR2_powerpc64
> 
> because I do believe it supports 32-bit.

These definitions can be problematic :

   config BR2_powerpc_powerx
	  bool "powerx"
	  depends on BR2_powerpc || BR2_powerpc64

because they imply that the kernel could be built in 32bit. See above.

Thanks,

C.

> 
>   Regards,
>   Arnout
> 
>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>   config BR2_powerpc_power7
>>       bool "power7"
>> +    depends on !BR2_powerpc64le
>> +    depends on BR2_ARCH_IS_64
>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>       select BR2_POWERPC_CPU_HAS_VSX
>>   config BR2_powerpc_power8
>>       bool "power8"
>> +    depends on BR2_ARCH_IS_64
>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>       select BR2_POWERPC_CPU_HAS_VSX
>>   endchoice

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it
  2022-09-20 17:09     ` Cédric Le Goater
@ 2022-09-20 20:32       ` Arnout Vandecappelle
  0 siblings, 0 replies; 39+ messages in thread
From: Arnout Vandecappelle @ 2022-09-20 20:32 UTC (permalink / raw)
  To: Cédric Le Goater, Joel Stanley, buildroot, Thomas Petazzoni
  Cc: Bernd Kuhls, Michael Ellerman, Romain Naour



On 20/09/2022 19:09, Cédric Le Goater wrote:
> On 9/18/22 12:23, Arnout Vandecappelle wrote:
>>
>>
>> On 29/07/2022 02:08, Joel Stanley wrote:
>>> Invalid configurations lead to build failures, such as trying to enable
>>> ppc64le for the ppc970:
>>>
>>>    
>>> http://autobuild.buildroot.net/results/fda886768fce25ccd9b52b635ff5b13da7ba2d0c/
>>>
>>> In order to run a ppc64le userspace a kernel that runs in this mode is
>>> required. The only CPU supported in buildroot that can boot a ppc64le
>>> kernel is Power8, so mark all of the other 64-bit capable CPUs as not
>>> supporting ppc64le.
>>>
>>> This drops the comment about libc, which is true but doesn't tell the
>>> whole story.
>>>
>>> Signed-off-by: Joel Stanley <joel@jms.id.au>
>>
>>   Applied to master with some changes, see below.
>>
>>> ---
>>>   arch/Config.in.powerpc | 11 +++++++----
>>>   1 file changed, 7 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc
>>> index 8d392bfde814..7c6ae84348e9 100644
>>> --- a/arch/Config.in.powerpc
>>> +++ b/arch/Config.in.powerpc
>>> @@ -71,11 +71,9 @@ config BR2_powerpc_604e
>>>       depends on !BR2_ARCH_IS_64
>>>   config BR2_powerpc_620
>>>       bool "620"
>>> -    # No C library supports this variant on ppc64le
>>>       depends on !BR2_powerpc64le
>>>   config BR2_powerpc_630
>>>       bool "630"
>>> -    # No C library supports this variant on ppc64le
>>>       depends on !BR2_powerpc64le
>>>   config BR2_powerpc_740
>>>       bool "740"
>>> @@ -102,6 +100,7 @@ config BR2_powerpc_860
>>>       depends on !BR2_ARCH_IS_64
>>>   config BR2_powerpc_970
>>>       bool "970"
>>> +    depends on !BR2_powerpc64le
>>
>>   As suggested by Thomas, I changed this to positive logic. I'll also push a 
>> follow-up patch that changes the rest of the file to positive logic.
>>
>>   Could you (or any other powerpc "expert") review the conditions to be sure 
>> the architecture selection options are correct now?
>>
>>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>>   config BR2_powerpc_8540
>>>       bool "8540 / e500v1"
>>> @@ -129,21 +128,25 @@ config BR2_powerpc_e6500
>>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>>   config BR2_powerpc_power4
>>>       bool "power4"
>>> -    # No C library supports this variant on ppc64le
>>>       depends on !BR2_powerpc64le
>>>   config BR2_powerpc_power5
>>>       bool "power5"
>>> -    # No C library supports this variant on ppc64le
>>>       depends on !BR2_powerpc64le
>>> +    depends on BR2_ARCH_IS_64
>>
>>   AFAIU, all POWER CPUs are able to run in 32-bit mode 
> 
> yes. The question is more : can we generate correctly 32-bit software
> for all these CPUs ? firmware, kernel and userspace. I doubt we have
> correct support for older CPUs.

  That is indeed the question. However, we have offered this possibility for 
years. So if it is in fact working, people may be relying on it. So unless you 
have some actual evidence that it doesn't work, I don't think we should remove it.

  I also notice that you removed 32-bit support for the Power CPUs, but didn't 
touch the non-IBM CPUs like e5500 which is used in some Freescale/NXP SoCs. And 
indeed, IIRC I had a customer a few years ago who was running a 32-bit kernel 
and userspace on such a CPU.


>> and I believe it's even possible to run a 64-bit kernel with 32-bit userspace 
>> like on ARM. Is this not true?
> 
> It is. This is checked on older CPUs, like G5, under QEMU but 32bit is
> bit-rotting in many places.
> 
>>
>>   If POWER5+ really can't run in 32-bit mode (or this is not supported by the 
>> kernel), 
> 
> I think there is an issue with the use of the rfi instruction in 32-bit
> mode which was removed from the ISA of server CPUs. You can not generate
> a 32bit kernel for such CPUs AFAIR

  So if you're sure of this, feel free to send a patch removing the BR2_powerpc 
part of the relevant CPUs, with some evidence in the commit log why this 
wouldn't work anyway. Ideal evidence would be that the build of the kernel 
fails, but something less concrete can work as well.


>> are you sure that this *is* possible on POWER4?
> 
> POWER4 support was removed from Linux ~4 years ago.

  Ah, in that case we should probably remove POWER4 entirely.


  Regards,
  Arnout

>>   In either case, if the current conditions are not correct, please send a 
>> follow-up patch to fix them even more.
> 
> It is safer to build all 64-bit (kernel + userspace) for server CPUs.
> 
>>>   config BR2_powerpc_power6
>>>       bool "power6"
>>> +    depends on !BR2_powerpc64le
>>> +    depends on BR2_ARCH_IS_64
>>
>>   So here I wrote the condition as
>>
>>      depends on BR2_powerpc || BR2_powerpc64
>>
>> because I do believe it supports 32-bit.
> 
> These definitions can be problematic :
> 
>    config BR2_powerpc_powerx
>        bool "powerx"
>        depends on BR2_powerpc || BR2_powerpc64
> 
> because they imply that the kernel could be built in 32bit. See above.
> 
> Thanks,
> 
> C.
> 
>>
>>   Regards,
>>   Arnout
>>
>>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>>   config BR2_powerpc_power7
>>>       bool "power7"
>>> +    depends on !BR2_powerpc64le
>>> +    depends on BR2_ARCH_IS_64
>>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>>       select BR2_POWERPC_CPU_HAS_VSX
>>>   config BR2_powerpc_power8
>>>       bool "power8"
>>> +    depends on BR2_ARCH_IS_64
>>>       select BR2_POWERPC_CPU_HAS_ALTIVEC
>>>       select BR2_POWERPC_CPU_HAS_VSX
>>>   endchoice
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2022-09-20 20:39 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-29  0:08 [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Joel Stanley
2022-07-29  0:08 ` [Buildroot] [PATCH 1/9] arch/powerpc: Hide SPE ABI behind CPU type Joel Stanley
2022-07-29  6:48   ` Cédric Le Goater
2022-07-29 21:17   ` Yann E. MORIN
2022-08-03 21:22     ` Thomas Petazzoni via buildroot
2022-08-05  6:05       ` Joel Stanley
2022-08-05 15:46         ` Yann E. MORIN
2022-07-29  0:08 ` [Buildroot] [PATCH 2/9] arch/powerpc: Clarify generic CPUs Joel Stanley
2022-07-29  6:48   ` Cédric Le Goater
2022-07-29 21:25   ` Yann E. MORIN
2022-08-03 21:28   ` Thomas Petazzoni via buildroot
2022-07-29  0:08 ` [Buildroot] [PATCH 3/9] arch/powerpc: Enable powerpc64le only on CPUs that support it Joel Stanley
2022-07-29  6:52   ` Cédric Le Goater
2022-07-29 21:37     ` Yann E. MORIN
2022-07-30 21:18       ` Cédric Le Goater
2022-07-31  6:43         ` Yann E. MORIN
2022-07-29 21:33   ` Yann E. MORIN
2022-08-03 21:32   ` Thomas Petazzoni via buildroot
2022-09-18 10:23   ` Arnout Vandecappelle
2022-09-20 17:09     ` Cédric Le Goater
2022-09-20 20:32       ` Arnout Vandecappelle
2022-09-18 10:24   ` Arnout Vandecappelle
2022-07-29  0:08 ` [Buildroot] [PATCH 4/9] package/glibc: Use powerpc64le instead of power8 Joel Stanley
2022-07-29  6:52   ` Cédric Le Goater
2022-07-29 21:41   ` Yann E. MORIN
2022-09-18 10:42   ` Arnout Vandecappelle
2022-07-29  0:09 ` [Buildroot] [PATCH 5/9] arch/powerpc: Add Power9 CPU type Joel Stanley
2022-07-29  6:53   ` Cédric Le Goater
2022-07-29 21:42   ` Yann E. MORIN
2022-09-18 10:43   ` Arnout Vandecappelle
2022-07-29  0:09 ` [Buildroot] [PATCH 6/9] arch/powerpc: Add Power10 " Joel Stanley
2022-07-29  6:53   ` Cédric Le Goater
2022-07-29  0:09 ` [Buildroot] [PATCH 7/9] package/mesa3d: Remove force disable of power8 Joel Stanley
2022-07-29  6:54   ` Cédric Le Goater
2022-07-29  0:09 ` [Buildroot] [PATCH 8/9] package/zlib-ng: Revert Power8 special casing Joel Stanley
2022-07-29  6:55   ` Cédric Le Goater
2022-07-29  0:09 ` [Buildroot] [PATCH 9/9] package/openblas: Add Power9 and Power10 targets Joel Stanley
2022-07-29  6:55   ` Cédric Le Goater
2022-08-03 21:07 ` [Buildroot] [PATCH 0/9] powerpc: Fix ppc64le configurations Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.