Skip to contentSkip to conversation

powerpc: powerpc64 and powerpc64le support

PATCH Superseded Cody P Schafer 2 participants 11 messages May 13, 2014 Kbuild

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v4 cover powerpc: powerpc64 and powerpc64le support

This enables powerpc64 and powerpc64le, adds support for some new cpus, and cleans up some of the powerpc dependency cruft.

The one thing that dependencies aren't added to prevent:

Only linux kernel-3.12 and later support building for powerpc64le, but any of the linux headers choices in buildroot work as headers.

--

since v3:
- split gdb-set-default-to-7.6 out

since v2:
- split out patches
- prevent using too old glibc/binutils/gcc/gdb (2.19/???/4.8.2/7.7.1 are the earliest working versions, respectively)
- remove BR2_POWERPC
- add an extra '\n'
- remove some powerpc dep cruft that wasn't needed

since v1:
- remove altivec from generic + 64bit (power4 & 5 break that)
- filter ppc64le first.
- SPE config is a bool.

Cody P Schafer (9):
package/gdb: add gdb 7.7.x (7.7.1) and 7.6.x (7.6.2) package/gdb: change default gdb from 7.5 to 7.6 package/binutils: add depends for powerpc64le (only 2.24 works)
powerpc: add BR2_POWERPC_CPU_HAS_SPE to replace adhoc deps/checks
powerpc: add BR2_POWERPC_CPU_HAS_ALTIVEC to replace adhoc deps/checks
powerpc: mark 32-bit only powerpc cpus to prep for adding powerpc64
support
powerpc: add power{4,5,6,7,8} cpus
powerpc: remove unneeded dependencies
powerpc: add powerpc64 and powerpc64le support

 Makefile                                    |  3 +-
 arch/Config.in                              | 21 ++++++++-
 arch/Config.in.powerpc                      | 71 ++++++++++++++++++++++++++---
 linux/Config.in                             |  3 +-
 package/Makefile.in                         |  2 +-
 package/binutils/Config.in.host             | 14 +++---
 package/efl/libevas/libevas.mk              |  2 +-
 package/ffmpeg/ffmpeg.mk                    |  5 +-
 package/gcc/Config.in.host                  | 10 ++--
 package/gdb/Config.in.host                  | 17 +++++--
 package/glibc/Config.in                     |  8 ++--
 package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk  |  5 +-
 package/gstreamer1/gst1-libav/gst1-libav.mk |  5 +-
 package/libatomic_ops/Config.in             |  2 +-
 package/mpg123/mpg123.mk                    |  4 +-
 package/openssl/openssl.mk                  |  6 +++
 package/systemd/Config.in                   |  3 +-
 package/vlc/vlc.mk                          |  3 +-
 toolchain/toolchain-buildroot/Config.in     |  5 +-
 19 files changed, 138 insertions(+), 51 deletions(-)
Signature · 1 line
1.9.3
#1 lore raw

PATCH v4 1/9 package/gdb: add gdb 7.7.x (7.7.1) and 7.6.x (7.6.2)

To prep for powerpc64le, we also disable gdb prior to 7.7.1 on powerpc64le.

The default gdb on powerpc64le is set to 7.7.
7.6.

---
 package/gdb/Config.in.host | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
package/gdb/Config.in.host +13 -2
index e853469..9f6b880 100644
@@ -19,6 +19,7 @@ choice
 	depends on !BR2_microblaze
 	default BR2_GDB_VERSION_6_6 if BR2_bfin
 	default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
+	default BR2_GDB_VERSION_7_7 if BR2_powerpc64le
 	default BR2_GDB_VERSION_7_5
 	help
 	  Select the version of gdb you wish to use.
@@ -33,10 +34,18 @@ choice
 
 	config BR2_GDB_VERSION_7_4
 		bool "gdb 7.4.x"
-		depends on !BR2_bfin
+		depends on !BR2_bfin && !BR2_powerpc64le
 
 	config BR2_GDB_VERSION_7_5
 		bool "gdb 7.5.x"
+		depends on !BR2_bfin && !BR2_powerpc64le
+
+	config BR2_GDB_VERSION_7_6
+		bool "gdb 7.6.x"
+		depends on !BR2_bfin && !BR2_powerpc64le
+
+	config BR2_GDB_VERSION_7_7
+		bool "gdb 7.7.x"
 		depends on !BR2_bfin
 
 endchoice
@@ -54,4 +63,6 @@ config BR2_GDB_VERSION
 	default "arc-4.8-R3" if BR2_arc
 	default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
 	default "7.4.1"    if BR2_GDB_VERSION_7_4
-	default "7.5.1"    if BR2_GDB_VERSION_7_5 || !BR2_PACKAGE_HOST_GDB
+	default "7.5.1"    if BR2_GDB_VERSION_7_5
+	default "7.6.2"    if BR2_GDB_VERSION_7_6 || !BR2_PACKAGE_HOST_GDB
+	default "7.7.1"    if BR2_GDB_VERSION_7_7 || BR2_powerpc64le
Signature · 1 line
1.9.3
#2 lore raw

PATCH v4 1/9 package/gdb: add gdb 7.7.x (7.7.1) and 7.6.x (7.6.2)

Hi Cody,

Quoted 5 lines · Cody P Schafer

To prep for powerpc64le, we also disable gdb prior to 7.7.1 on powerpc64le.

The default gdb on powerpc64le is set to 7.7.
7.6.

Seems like a leftover.

baruch

Quoted 48 lines
---
 package/gdb/Config.in.host | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
package/gdb/Config.in.host +13 -2
index e853469..9f6b880 100644
@@ -19,6 +19,7 @@ choice
 	depends on !BR2_microblaze
 	default BR2_GDB_VERSION_6_6 if BR2_bfin
 	default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
+	default BR2_GDB_VERSION_7_7 if BR2_powerpc64le
 	default BR2_GDB_VERSION_7_5
 	help
 	  Select the version of gdb you wish to use.
@@ -33,10 +34,18 @@ choice
 
 	config BR2_GDB_VERSION_7_4
 		bool "gdb 7.4.x"
-		depends on !BR2_bfin
+		depends on !BR2_bfin && !BR2_powerpc64le
 
 	config BR2_GDB_VERSION_7_5
 		bool "gdb 7.5.x"
+		depends on !BR2_bfin && !BR2_powerpc64le
+
+	config BR2_GDB_VERSION_7_6
+		bool "gdb 7.6.x"
+		depends on !BR2_bfin && !BR2_powerpc64le
+
+	config BR2_GDB_VERSION_7_7
+		bool "gdb 7.7.x"
 		depends on !BR2_bfin
 
 endchoice
@@ -54,4 +63,6 @@ config BR2_GDB_VERSION
 	default "arc-4.8-R3" if BR2_arc
 	default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
 	default "7.4.1"    if BR2_GDB_VERSION_7_4
-	default "7.5.1"    if BR2_GDB_VERSION_7_5 || !BR2_PACKAGE_HOST_GDB
+	default "7.5.1"    if BR2_GDB_VERSION_7_5
+	default "7.6.2"    if BR2_GDB_VERSION_7_6 || !BR2_PACKAGE_HOST_GDB
+	default "7.7.1"    if BR2_GDB_VERSION_7_7 || BR2_powerpc64le
Signature · 1 line
1.9.3
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#3 lore raw

PATCH v4 2/9 package/gdb: change default gdb from 7.5 to 7.6

In reply to Cody P Schafer
---
 package/gdb/Config.in.host | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/gdb/Config.in.host +1 -1
index 9f6b880..16a7291 100644
@@ -20,7 +20,7 @@ choice
 	default BR2_GDB_VERSION_6_6 if BR2_bfin
 	default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
 	default BR2_GDB_VERSION_7_7 if BR2_powerpc64le
-	default BR2_GDB_VERSION_7_5
+	default BR2_GDB_VERSION_7_6
 	help
 	  Select the version of gdb you wish to use.
 
Signature · 1 line
1.9.3
#4 lore raw

PATCH v4 3/9 package/binutils: add depends for powerpc64le (only 2.24 works)

In reply to Cody P Schafer
---
 package/binutils/Config.in.host | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
package/binutils/Config.in.host +7 -7
index 15def13..08540a3 100644
@@ -4,7 +4,7 @@ choice
 	prompt "Binutils Version"
 	depends on !BR2_arc
 	default BR2_BINUTILS_VERSION_2_21 if (BR2_mips || BR2_mipsel || BR2_sh)
-	default BR2_BINUTILS_VERSION_2_24 if BR2_microblaze
+	default BR2_BINUTILS_VERSION_2_24 if BR2_microblaze || BR2_powerpc64le
 	default BR2_BINUTILS_VERSION_2_22
 	help
 	  Select the version of binutils you wish to use.
@@ -14,30 +14,30 @@ choice
 		bool "binutils 2.18-avr32-1.0.1"
 
 	config BR2_BINUTILS_VERSION_2_20_1
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		depends on !BR2_ARM_EABIHF
 		bool "binutils 2.20.1"
 
 	config BR2_BINUTILS_VERSION_2_21
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		depends on !BR2_ARM_EABIHF
 		bool "binutils 2.21"
 
 	config BR2_BINUTILS_VERSION_2_21_1
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		depends on !BR2_ARM_EABIHF
 		bool "binutils 2.21.1"
 
 	config BR2_BINUTILS_VERSION_2_22
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		bool "binutils 2.22"
 
 	config BR2_BINUTILS_VERSION_2_23_1
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		bool "binutils 2.23.1"
 
 	config BR2_BINUTILS_VERSION_2_23_2
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze
+		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
 		bool "binutils 2.23.2"
 
 	config BR2_BINUTILS_VERSION_2_24
Signature · 1 line
1.9.3
#5 lore raw

PATCH v4 4/9 powerpc: add BR2_POWERPC_CPU_HAS_SPE to replace adhoc deps/checks

In reply to Cody P Schafer
---
 arch/Config.in.powerpc | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
arch/Config.in.powerpc +8 -3
index ae70a8a..56360d7 100644
@@ -1,3 +1,6 @@
+config BR2_POWERPC_CPU_HAS_SPE
+	bool
+
 choice
 	prompt "Target Architecture Variant"
 	depends on BR2_powerpc
@@ -62,8 +65,10 @@ config BR2_powerpc_970
 	bool "970"
 config BR2_powerpc_8540
 	bool "8540 / e500v1"
+	select BR2_POWERPC_CPU_HAS_SPE
 config BR2_powerpc_8548
 	bool "8548 / e500v2"
+	select BR2_POWERPC_CPU_HAS_SPE
 config BR2_powerpc_e300c2
 	bool "e300c2"
 config BR2_powerpc_e300c3
@@ -75,17 +80,17 @@ endchoice
 choice
 	prompt "Target ABI"
 	depends on BR2_powerpc
-	default BR2_powerpc_SPE if BR2_powerpc_8540 || BR2_powerpc_8548
+	default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
 	default BR2_powerpc_CLASSIC
 	help
 	  Application Binary Interface to use
 
 config BR2_powerpc_CLASSIC
 	bool "Classic"
-	depends on !(BR2_powerpc_8540 || BR2_powerpc_8548)
+	depends on !BR2_POWERPC_CPU_HAS_SPE
 config BR2_powerpc_SPE
 	bool "SPE"
-	depends on BR2_powerpc_8540 || BR2_powerpc_8548
+	depends on BR2_POWERPC_CPU_HAS_SPE
 endchoice
 
 config BR2_POWERPC_SOFT_FLOAT
Signature · 1 line
1.9.3
#6 lore raw

PATCH v4 5/9 powerpc: add BR2_POWERPC_CPU_HAS_ALTIVEC to replace adhoc deps/checks

In reply to Cody P Schafer
---
 arch/Config.in.powerpc                      | 6 ++++++
 package/efl/libevas/libevas.mk              | 2 +-
 package/ffmpeg/ffmpeg.mk                    | 5 +----
 package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk  | 5 +----
 package/gstreamer1/gst1-libav/gst1-libav.mk | 5 +----
 package/mpg123/mpg123.mk                    | 4 +---
 package/vlc/vlc.mk                          | 3 +--
 7 files changed, 12 insertions(+), 18 deletions(-)
arch/Config.in.powerpc +6 -0
index 56360d7..813b49f 100644
@@ -1,3 +1,6 @@
+config BR2_POWERPC_CPU_HAS_ALTIVEC
+	bool
+
 config BR2_POWERPC_CPU_HAS_SPE
 	bool
 
@@ -51,8 +54,10 @@ config BR2_powerpc_740
 	bool "740"
 config BR2_powerpc_7400
 	bool "7400"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_7450
 	bool "7450"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_750
 	bool "750"
 config BR2_powerpc_821
@@ -63,6 +68,7 @@ config BR2_powerpc_860
 	bool "860"
 config BR2_powerpc_970
 	bool "970"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
 config BR2_powerpc_8540
 	bool "8540 / e500v1"
 	select BR2_POWERPC_CPU_HAS_SPE
package/efl/libevas/libevas.mk +1 -1
index 41ceb49..71f1aeb 100644
@@ -136,7 +136,7 @@ else
 LIBEVAS_CONF_OPT += --disable-cpu-sse3
 endif
 
-ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
 LIBEVAS_CONF_OPT += --enable-cpu-altivec
 else
 LIBEVAS_CONF_OPT += --disable-cpu-altivec
package/ffmpeg/ffmpeg.mk +1 -4
index f8c1526..b14f678 100644
@@ -299,14 +299,11 @@ FFMPEG_CONF_OPT += \
 	--disable-mipsdspr2
 endif
 
-# Set powerpc altivec appropriately
-ifeq ($(BR2_powerpc),y)
-ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
 FFMPEG_CONF_OPT += --enable-altivec
 else
 FFMPEG_CONF_OPT += --disable-altivec
 endif
-endif
 
 ifeq ($(BR2_PREFER_STATIC_LIB),)
 FFMPEG_CONF_OPT += --enable-pic
package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk +1 -4
index f18ab18..5c4b754 100644
@@ -63,14 +63,11 @@ ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
 GST_FFMPEG_CONF_EXTRA_OPT += --enable-neon
 endif
 
-# Set powerpc altivec appropriately
-ifeq ($(BR2_powerpc),y)
-ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
 GST_FFMPEG_CONF_EXTRA_OPT += --enable-altivec
 else
 GST_FFMPEG_CONF_EXTRA_OPT += --disable-altivec
 endif
-endif
 
 ifeq ($(BR2_PREFER_STATIC_LIB),)
 GST_FFMPEG_CONF_EXTRA_OPT += --enable-pic
package/gstreamer1/gst1-libav/gst1-libav.mk +1 -4
index 7a0182e..f84bcb2 100644
@@ -71,14 +71,11 @@ else
 GST1_LIBAV_CONF_EXTRA_OPT += --disable-vfp
 endif
 
-# Set powerpc altivec appropriately
-ifeq ($(BR2_powerpc),y)
-ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+ifeq ($(BR2_POWERPC_CPU_HASH_ALTIVEC),y)
 GST1_LIBAV_CONF_EXTRA_OPT += --enable-altivec
 else
 GST1_LIBAV_CONF_EXTRA_OPT += --disable-altivec
 endif
-endif
 
 GST1_LIBAV_CONF_OPT = \
 	--with-libav-extra-configure="$(GST1_LIBAV_CONF_EXTRA_OPT)"
package/mpg123/mpg123.mk +1 -3
index a950813..d66592c 100644
@@ -22,14 +22,12 @@ ifeq ($(BR2_i386),y)
 MPG123_CPU = x86
 endif
 
-ifeq ($(BR2_powerpc),y)
-ifneq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),)
+ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
 MPG123_CPU = altivec
 endif
 ifeq ($(BR2_SOFT_FLOAT),y)
 MPG123_CPU = ppc_nofpu
 endif
-endif
 
 ifeq ($(BR2_x86_64),y)
 MPG123_CPU = x86-64
package/vlc/vlc.mk +1 -2
index e14c9c3..6eb7eea 100644
@@ -49,8 +49,7 @@ ifeq ($(BR2_PREFER_STATIC_LIB),)
 VLC_CONF_OPT += --disable-static
 endif
 
-# Set powerpc altivec appropriately
-ifeq ($(BR2_powerpc_7400)$(BR2_powerpc_7450)$(BR2_powerpc_970),y)
+ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
 VCL_CONF_OPT += --enable-altivec
 else
 VLC_CONF_OPT += --disable-altivec
Signature · 1 line
1.9.3
#7 lore raw

PATCH v4 6/9 powerpc: mark 32-bit only powerpc cpus to prep for adding powerpc64 support

In reply to Cody P Schafer
---
 arch/Config.in.powerpc | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
arch/Config.in.powerpc +29 -0
index 813b49f..ef33e6e 100644
@@ -14,73 +14,102 @@ config BR2_generic_powerpc
 	bool "generic"
 config BR2_powerpc_401
 	bool "401"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_403
 	bool "403"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_405
 	bool "405"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_405fp
 	bool "405 with FPU"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_440
 	bool "440"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_440fp
 	bool "440 with FPU"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_464
 	bool "464"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_464fp
 	bool "464 with FPU"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_476
 	bool "476"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_476fp
 	bool "476 with FPU"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_505
 	bool "505"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_601
 	bool "601"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_602
 	bool "602"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_603
 	bool "603"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_603e
 	bool "603e"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_604
 	bool "604"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_604e
 	bool "604e"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_620
 	bool "620"
 config BR2_powerpc_630
 	bool "630"
 config BR2_powerpc_740
 	bool "740"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_7400
 	bool "7400"
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_7450
 	bool "7450"
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_750
 	bool "750"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_821
 	bool "821"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_823
 	bool "823"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_860
 	bool "860"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_970
 	bool "970"
 	select BR2_POWERPC_CPU_HAS_ALTIVEC
 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
 config BR2_powerpc_e300c2
 	bool "e300c2"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_e300c3
 	bool "e300c3"
+	depends on !BR2_ARCH_IS_64
 config BR2_powerpc_e500mc
 	bool "e500mc"
+	depends on !BR2_ARCH_IS_64
 endchoice
 
 choice
Signature · 1 line
1.9.3
#8 lore raw

PATCH v4 7/9 powerpc: add power{4,5,6,7,8} cpus

In reply to Cody P Schafer
---
 arch/Config.in.powerpc | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
arch/Config.in.powerpc +18 -0
index ef33e6e..6b9a56f 100644
@@ -110,6 +110,19 @@ config BR2_powerpc_e300c3
 config BR2_powerpc_e500mc
 	bool "e500mc"
 	depends on !BR2_ARCH_IS_64
+config BR2_powerpc_power4
+	bool "power4"
+config BR2_powerpc_power5
+	bool "power5"
+config BR2_powerpc_power6
+	bool "power6"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
+config BR2_powerpc_power7
+	bool "power7"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
+config BR2_powerpc_power8
+	bool "power8"
+	select BR2_POWERPC_CPU_HAS_ALTIVEC
 endchoice
 
 choice
@@ -176,6 +189,11 @@ config BR2_GCC_TARGET_TUNE
 	default "e300c2"	if BR2_powerpc_e300c2
 	default "e300c3"	if BR2_powerpc_e300c3
 	default "e500mc"	if BR2_powerpc_e500mc
+	default "power4"	if BR2_powerpc_power4
+	default "power5"	if BR2_powerpc_power5
+	default "power6"	if BR2_powerpc_power6
+	default "power7"	if BR2_powerpc_power7
+	default "power8"	if BR2_powerpc_power8
 
 config BR2_GCC_TARGET_ABI
 	default "altivec"		if BR2_PPC_ABI_altivec
Signature · 1 line
1.9.3
#9 lore raw

PATCH v4 8/9 powerpc: remove unneeded dependencies

In reply to Cody P Schafer
---
 arch/Config.in.powerpc | 2 --
 1 file changed, 2 deletions(-)
arch/Config.in.powerpc +0 -2
index 6b9a56f..b2f0555 100644
@@ -6,7 +6,6 @@ config BR2_POWERPC_CPU_HAS_SPE
 
 choice
 	prompt "Target Architecture Variant"
-	depends on BR2_powerpc
 	default BR2_generic_powerpc
 	help
 	  Specific CPU variant to use
@@ -127,7 +126,6 @@ endchoice
 
 choice
 	prompt "Target ABI"
-	depends on BR2_powerpc
 	default BR2_powerpc_SPE if BR2_POWERPC_CPU_HAS_SPE
 	default BR2_powerpc_CLASSIC
 	help
Signature · 1 line
1.9.3
#10 lore raw

PATCH v4 9/9 powerpc: add powerpc64 and powerpc64le support

In reply to Cody P Schafer

This enables powerpc64 and powerpc64le. Currently, le needs at least glibc 2.19 and gcc 4.9.0. For gdb, 7.7.1 works (added in an earlier patch).

---
 Makefile                                |  3 ++-
 arch/Config.in                          | 21 ++++++++++++++++++++-
 arch/Config.in.powerpc                  |  5 ++++-
 linux/Config.in                         |  3 +--
 package/Makefile.in                     |  2 +-
 package/gcc/Config.in.host              | 10 +++++-----
 package/glibc/Config.in                 |  8 +++++---
 package/libatomic_ops/Config.in         |  2 +-
 package/openssl/openssl.mk              |  6 ++++++
 package/systemd/Config.in               |  3 ++-
 toolchain/toolchain-buildroot/Config.in |  5 +++--
 11 files changed, 50 insertions(+), 18 deletions(-)
Makefile +2 -1
index 2f18aab..395a1b0 100644
@@ -38,7 +38,7 @@ export HOSTARCH := $(shell uname -m | \
 	    -e s/sun4u/sparc64/ \
 	    -e s/arm.*/arm/ \
 	    -e s/sa110/arm/ \
-	    -e s/ppc64/powerpc/ \
+	    -e s/ppc64/powerpc64/ \
 	    -e s/ppc/powerpc/ \
 	    -e s/macppc/powerpc/\
 	    -e s/sh.*/sh/)
@@ -310,6 +310,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
 	-e s/aarch64/arm64/ \
 	-e s/bfin/blackfin/ \
 	-e s/parisc64/parisc/ \
+	-e s/powerpc64le/powerpc/ \
 	-e s/powerpc64/powerpc/ \
 	-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
 	-e s/sh.*/sh/ \
arch/Config.in +20 -1
index bc81dac..808dbd8 100644
@@ -140,6 +140,25 @@ config BR2_powerpc
 	bool "PowerPC"
 	help
 	  PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
+	  Big endian.
+	  http://www.power.org/
+	  http://en.wikipedia.org/wiki/Powerpc
+
+config BR2_powerpc64
+	bool "PowerPC 64 (big endian)"
+	select BR2_ARCH_IS_64
+	help
+	  PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
+	  Big endian.
+	  http://www.power.org/
+	  http://en.wikipedia.org/wiki/Powerpc
+
+config BR2_powerpc64le
+	bool "PowerPC 64 (little endian)"
+	select BR2_ARCH_IS_64
+	help
+	  PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
+	  Little endian.
 	  http://www.power.org/
 	  http://en.wikipedia.org/wiki/Powerpc
 
@@ -321,7 +340,7 @@ if BR2_nios2
 source "arch/Config.in.nios2"
 endif
 
-if BR2_powerpc
+if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
 source "arch/Config.in.powerpc"
 endif
 
arch/Config.in.powerpc +4 -1
index b2f0555..84b15d4 100644
@@ -150,9 +150,12 @@ config BR2_POWERPC_SOFT_FLOAT
 
 config BR2_ARCH
 	default "powerpc"	if BR2_powerpc
+	default "powerpc64"	if BR2_powerpc64
+	default "powerpc64le"	if BR2_powerpc64le
 
 config BR2_ENDIAN
-	default "BIG"
+	default "BIG" if BR2_powerpc || BR2_powerpc64
+	default "LITTLE" if BR2_powerpc64le
 
 config BR2_GCC_TARGET_TUNE
 	default "401"		if BR2_powerpc_401
linux/Config.in +1 -2
index cc1127a..9830aa4 100644
@@ -184,8 +184,7 @@ config BR2_LINUX_KERNEL_BZIMAGE
 
 config BR2_LINUX_KERNEL_ZIMAGE
 	bool "zImage"
-	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_sparc || \
-		   BR2_sh || BR2_sh64 || BR2_xtensa
+	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || BR2_sh || BR2_sh64 || BR2_xtensa
 
 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
 	bool "zImage with appended DT"
package/Makefile.in +1 -1
index 2fc3aa7..0233506 100644
@@ -321,7 +321,7 @@ endif
 ifeq ($(BR2_m68k),y)
 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
 endif
-ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG)
+ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y)
 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
 endif
 
package/gcc/Config.in.host +5 -5
index d0aa699..ea6957e 100644
@@ -20,14 +20,14 @@ choice
 		bool "gcc 4.2.2-avr32-2.1.5"
 
 	config BR2_GCC_VERSION_4_3_X
-		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_atom && !BR2_x86_jaguar && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
+		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_atom && !BR2_x86_jaguar && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4 && !BR2_powerpc64le
 		depends on !BR2_ARM_EABIHF
 		bool "gcc 4.3.x"
 		# musl patches only for gcc 4.7+
 		depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL
 
 	config BR2_GCC_VERSION_4_4_X
-		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_atom && !BR2_x86_jaguar && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
+		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_atom && !BR2_x86_jaguar && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4 && !BR2_powerpc64le
 		bool "gcc 4.4.x"
 		# ARM EABIhf support appeared in gcc 4.6
 		depends on !BR2_ARM_EABIHF
@@ -37,7 +37,7 @@ choice
 		depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL
 
 	config BR2_GCC_VERSION_4_5_X
-		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4
+		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_cortex_a15 && !BR2_x86_corei7 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4 && !BR2_powerpc64le
 		select BR2_GCC_NEEDS_MPC
 		# ARM EABIhf support appeared in gcc 4.6
 		depends on !BR2_ARM_EABIHF
@@ -46,14 +46,14 @@ choice
 		bool "gcc 4.5.x"
 
 	config BR2_GCC_VERSION_4_6_X
-		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
+		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a7 && !BR2_cortex_a12 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4 && !BR2_powerpc64le
 		select BR2_GCC_NEEDS_MPC
 		# musl patches only for gcc 4.7+
 		depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL
 		bool "gcc 4.6.x"
 
 	config BR2_GCC_VERSION_4_7_X
-		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a12 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
+		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a12 && !BR2_x86_jaguar && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4 && !BR2_powerpc64le
 		select BR2_GCC_NEEDS_MPC
 		bool "gcc 4.7.x"
 
package/glibc/Config.in +5 -3
index 693a33e..a2d6a27 100644
@@ -8,13 +8,15 @@ choice
 		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
 		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
 		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
-		   BR2_x86_64 || BR2_microblaze
+		   BR2_x86_64 || BR2_microblaze || BR2_powerpc64 || \
+		   BR2_powerpc64le
 
 config BR2_GLIBC_VERSION_2_18
-       bool "2.18"
+	bool "2.18"
+	depends on !BR2_powerpc64le
 
 config BR2_GLIBC_VERSION_2_19
-       bool "2.19"
+	bool "2.19"
 
 endchoice
 
package/libatomic_ops/Config.in +1 -1
index f0a55a4..fe1efd4 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS
 	bool
-	default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_powerpc || BR2_x86_64
+	default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_x86_64
 
 config BR2_PACKAGE_LIBATOMIC_OPS
 	bool "libatomic_ops"
package/openssl/openssl.mk +6 -0
index 52abb46..87bc2ef 100644
@@ -42,6 +42,12 @@ ifeq ($(BR2_powerpc_401)$(BR2_powerpc_403)$(BR2_powerpc_405)$(BR2_powerpc_405fp)
 	OPENSSL_TARGET_ARCH = ppc
 endif
 endif
+ifeq ($(ARCH),powerpc64)
+	OPENSSL_TARGET_ARCH = ppc64
+endif
+ifeq ($(ARCH),powerpc64le)
+	OPENSSL_TARGET_ARCH = ppc64le
+endif
 ifeq ($(ARCH),x86_64)
 	OPENSSL_TARGET_ARCH = x86_64
 endif
package/systemd/Config.in +2 -1
index f10637a..05f4680 100644
@@ -2,7 +2,8 @@ config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
 	bool
 	# see src/shared/architecture.h
 	default y if BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || \
-		BR2_mipsel || BR2_powerpc || BR2_sh4 || BR2_sh4eb || \
+		BR2_mipsel || BR2_powerpc || BR2_powerpc64 || \
+		BR2_powerpc64le  || BR2_sh4 || BR2_sh4eb || \
 		BR2_sh4a || BR2_sh4aeb || BR2_sparc || BR2_x86_64 || \
 		BR2_aarch64 || BR2_m68k
 
toolchain/toolchain-buildroot/Config.in +3 -2
index 216f9db..91ff705 100644
@@ -45,7 +45,7 @@ config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
 		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
 		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
 		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
-		   BR2_x86_64 || BR2_microblaze
+		   BR2_x86_64 || BR2_microblaze || BR2_powerpc64
 	depends on BR2_USE_MMU
 	depends on !BR2_PREFER_STATIC_LIB
 	select BR2_TOOLCHAIN_USES_GLIBC
@@ -63,7 +63,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
 		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
 		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
-		   BR2_x86_64 || BR2_microblaze
+		   BR2_x86_64 || BR2_microblaze || BR2_powerpc64 || \
+		   BR2_powerpc64le
 	depends on BR2_USE_MMU
 	depends on !BR2_PREFER_STATIC_LIB
 	select BR2_TOOLCHAIN_USES_GLIBC
Signature · 1 line
1.9.3