Skip to contentSkip to conversation

IBM s390x and Z architecture support

PATCH New Alexander Egorenkov 2 participants 17 messages Sep 17, 2020 – Sep 25, 2020 Kbuild

lore
Share & tools
lore
#0 lore raw

v4 cover IBM s390x and Z architecture support

This series of patches adds support for IBM s390x and Z architectures to buildroot.

v3 -> v4:
* Addressed all review findings by Romain Naour
* package/qemu
- Added s390x support for host
* qemu s390x board
- Cleaned up defconfig
- Enabled host qemu

v2 -> v3:
* Addressed all review findings by Romain Naour
* qemu s390x board
- Linux kernel needs host OpenSSL
* makedumpfile
- Cosmetic improvement of dependencies
* s390-tools
- Clean up redundant dependencies which are brought in already by glibc

v1 -> v2:
* Addressed all review findings by Yann E. Morin
* Split up into smaller patches to ease further review process
* qemu s390x board
- Clean up of qemu_s390x_defconfig
- Use fixed Linux kernel version
- Use in-tree Linux kernel config
- Add defconfig comment to readme.txt for CI testing
* s390-tools package
- Improve Makefile
- Add dependency on C++ toolchain (due to libvmdump)
- uClibc-ng is not supported

Alexander Egorenkov (12):
arch: add the basic IBM s390x and Z arch support
toolchain: add support for the internal IBM s390x and Z toolchain
linux: add bzImage support for IBM s390x and Z arch package/qemu: add IBM s390x and Z arch support board/qemu: add IBM s390x and Z arch support package/systemd: add support for IBM s390x and Z arch package/cmake: add support for IBM s390x and Z arch package/liburcu: add support for IBM s390x and Z arch package/kexec: add support for IBM s390x and Z arch package/go: add support for IBM s390x and Z arch package/makedumpfile: add support for IBM s390x and Z arch package/s390-tools: new package

 DEVELOPERS                              |  6 ++
 Makefile                                |  1 +
 arch/Config.in                          | 13 ++++
 arch/Config.in.s390x                    | 34 +++++++++
 board/qemu/s390x/post-build.sh          | 11 +++
 board/qemu/s390x/readme.txt             |  8 +++
 configs/qemu_s390x_defconfig            | 24 +++++++
 linux/Config.in                         |  2 +-
 package/Config.in                       |  1 +
 package/cmake/Config.in                 |  3 +-
 package/gcc/gcc.mk                      |  5 ++
 package/go/Config.in.host               |  2 +-
 package/kexec/Config.in                 |  2 +-
 package/liburcu/Config.in               |  2 +-
 package/makedumpfile/Config.in          |  1 +
 package/qemu/Config.in.host             |  1 +
 package/s390-tools/Config.in            | 13 ++++
 package/s390-tools/s390-tools.hash      |  3 +
 package/s390-tools/s390-tools.mk        | 91 +++++++++++++++++++++++++
 package/systemd/Config.in               |  1 +
 toolchain/toolchain-buildroot/Config.in |  6 +-
 21 files changed, 222 insertions(+), 8 deletions(-)
 create mode 100644 arch/Config.in.s390x
 create mode 100755 board/qemu/s390x/post-build.sh
 create mode 100644 board/qemu/s390x/readme.txt
 create mode 100644 configs/qemu_s390x_defconfig
 create mode 100644 package/s390-tools/Config.in
 create mode 100644 package/s390-tools/s390-tools.hash
 create mode 100644 package/s390-tools/s390-tools.mk
Signature · 1 line
2.26.2
#1 lore raw

PATCH v4 1/12 arch: add the basic IBM s390x and Z arch support

---
 DEVELOPERS           |  3 +++
 Makefile             |  1 +
 arch/Config.in       | 14 ++++++++++++++
 arch/Config.in.s390x | 34 ++++++++++++++++++++++++++++++++++
 4 files changed, 52 insertions(+)
 create mode 100644 arch/Config.in.s390x
DEVELOPERS +3 -0
index c5124f97ef..2285694f66 100644
@@ -146,6 +146,9 @@ N:	Alexander Egorenkov <[email protected]>
 F:	package/makedumpfile/
 F:	package/multipath-tools/
 
+N:	Alexander Egorenkov <[email protected]>
+F:	arch/Config.in.s390x
+
 N:	Alexander Kurz <[email protected]>
 F:	package/minimodem/
 
Makefile +1 -0
index 9648fa58d8..384bfe3fe9 100644
@@ -445,6 +445,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
 	-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
 	-e s/riscv.*/riscv/ \
 	-e s/sh.*/sh/ \
+	-e s/s390x/s390/ \
 	-e s/microblazeel/microblaze/)
 
 ZCAT := $(call qstrip,$(BR2_ZCAT))
arch/Config.in +14 -0
index 0707c076e2..eb9b6007c9 100644
@@ -219,6 +219,16 @@ config BR2_riscv
 	  https://riscv.org/
 	  https://en.wikipedia.org/wiki/RISC-V
 
+config BR2_s390x
+	bool "s390x"
+	select BR2_ARCH_IS_64
+	select BR2_ARCH_HAS_MMU_MANDATORY
+	select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
+	help
+	  s390x is a big-endian architecture made by IBM.
+	  http://www.ibm.com/
+	  http://en.wikipedia.org/wiki/IBM_System/390
+
 config BR2_sh
 	bool "SuperH"
 	select BR2_ARCH_HAS_MMU_OPTIONAL
@@ -457,6 +467,10 @@ if BR2_riscv
 source "arch/Config.in.riscv"
 endif
 
+if BR2_s390x
+source "arch/Config.in.s390x"
+endif
+
 if BR2_sh
 source "arch/Config.in.sh"
 endif
arch/Config.in.s390x new file +34 -0
new file mode 100644
index 0000000000..39d2f58aa9
@@ -0,0 +1,34 @@
+
+choice
+	prompt "Target Architecture Variant"
+	depends on BR2_s390x
+	help
+	  Specific CPU variant to use
+
+config BR2_s390x_z13
+	bool "z13"
+	depends on BR2_s390x
+
+config BR2_s390x_z14
+	bool "z14"
+	depends on BR2_s390x
+
+config BR2_s390x_z15
+	bool "z15"
+	depends on BR2_s390x
+
+endchoice
+
+config BR2_ARCH
+	default "s390x"	if BR2_s390x
+
+config BR2_ENDIAN
+	default "BIG"
+
+config BR2_GCC_TARGET_ARCH
+	default "arch11" if BR2_s390x_z13
+	default "arch12" if BR2_s390x_z14
+	default "arch13" if BR2_s390x_z15
+
+config BR2_READELF_ARCH_NAME
+	default "IBM S/390"	if BR2_s390x
Signature · 1 line
2.26.2
#2 lore raw

PATCH v4 1/12 arch: add the basic IBM s390x and Z arch support

Alexander, All,

On 2020-09-17 06:07 +0200, Alexander Egorenkov spake thusly:

Quoted 2 lines

---

[--SNIP--]

arch/Config.in

Quoted 3 lines

index 0707c076e2..eb9b6007c9 100644

arch/Config.in +0 -0

[--SNIP--]

arch/Config.in if BR2_riscv · line 472

Quoted 7 lines
arch/Config.in +3 -0
@@ -457,6 +467,10 @@ if BR2_riscv
 source "arch/Config.in.riscv"
 endif
 
+if BR2_s390x
+source "arch/Config.in.s390x"
+endif

Here, we already have a dependency on s390x, by way of the if-block condition, so...

arch/Config.in.s390x line 4

Quoted 10 lines
arch/Config.in.s390x new file +4 -0
new file mode 100644
index 0000000000..39d2f58aa9
@@ -0,0 +1,34 @@
+
+choice
+	prompt "Target Architecture Variant"
+	depends on BR2_s390x

...here we do not need the dependency on s390x, so I dropped it and applied to master. Thanks!

Regards,
Yann E. MORIN.

Quoted 37 lines
arch/Config.in.s390x new file +30 -0
+	help
+	  Specific CPU variant to use
+
+config BR2_s390x_z13
+	bool "z13"
+	depends on BR2_s390x
+
+config BR2_s390x_z14
+	bool "z14"
+	depends on BR2_s390x
+
+config BR2_s390x_z15
+	bool "z15"
+	depends on BR2_s390x
+
+endchoice
+
+config BR2_ARCH
+	default "s390x"	if BR2_s390x
+
+config BR2_ENDIAN
+	default "BIG"
+
+config BR2_GCC_TARGET_ARCH
+	default "arch11" if BR2_s390x_z13
+	default "arch12" if BR2_s390x_z14
+	default "arch13" if BR2_s390x_z15
+
+config BR2_READELF_ARCH_NAME
+	default "IBM S/390"	if BR2_s390x
Signature · 6 lines
2.26.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH v4 2/12 toolchain: add support for the internal IBM s390x and Z toolchain

In reply to Alexander Egorenkov
---
 arch/Config.in                          | 1 -
 package/gcc/gcc.mk                      | 5 +++++
 toolchain/toolchain-buildroot/Config.in | 6 +++---
 3 files changed, 8 insertions(+), 4 deletions(-)
arch/Config.in +0 -1
index eb9b6007c9..155403c363 100644
@@ -223,7 +223,6 @@ config BR2_s390x
 	bool "s390x"
 	select BR2_ARCH_IS_64
 	select BR2_ARCH_HAS_MMU_MANDATORY
-	select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
 	help
 	  s390x is a big-endian architecture made by IBM.
 	  http://www.ibm.com/
package/gcc/gcc.mk +5 -0
index b834269adc..0912c07a71 100644
@@ -241,6 +241,11 @@ HOST_GCC_COMMON_CONF_OPTS += \
 	--with-long-double-128
 endif
 
+ifeq ($(BR2_s390x),y)
+HOST_GCC_COMMON_CONF_OPTS += \
+	--with-long-double-128
+endif
+
 HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CROSS_PATH_SUFFIX='".br_real"'
 
 # For gcc-initial, we need to tell gcc that the C library will be
toolchain/toolchain-buildroot/Config.in +3 -3
index 418d5cb387..1c4705600e 100644
@@ -46,9 +46,9 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_aarch64_be  || BR2_i386       || BR2_mips    || \
 		   BR2_mipsel      || BR2_mips64     || BR2_mips64el|| \
 		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
-		   BR2_riscv       || BR2_sh         || BR2_sparc64     || \
-		   BR2_x86_64      || BR2_microblaze || BR2_nios2       || \
-		   (BR2_arc && BR2_ARC_ATOMIC_EXT)   || BR2_csky
+		   BR2_riscv       || BR2_s390x      || BR2_sh          || \
+		   BR2_sparc64     || BR2_x86_64     || BR2_microblaze  || \
+		   BR2_nios2       || (BR2_arc && BR2_ARC_ATOMIC_EXT)   || BR2_csky
 	depends on BR2_USE_MMU
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
Signature · 1 line
2.26.2
#4 lore raw

PATCH v4 3/12 linux: add bzImage support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 linux/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
linux/Config.in +1 -1
index 49da2b81b2..ec74e1e65a 100644
@@ -226,7 +226,7 @@ config BR2_LINUX_KERNEL_APPENDED_UIMAGE
 
 config BR2_LINUX_KERNEL_BZIMAGE
 	bool "bzImage"
-	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_i386 || BR2_x86_64 || BR2_s390x
 
 config BR2_LINUX_KERNEL_ZIMAGE
 	bool "zImage"
Signature · 1 line
2.26.2
#5 lore raw

PATCH v4 4/12 package/qemu: add IBM s390x and Z arch support

In reply to Alexander Egorenkov
---
 package/qemu/Config.in.host | 1 +
 1 file changed, 1 insertion(+)
package/qemu/Config.in.host +1 -0
index 7ccf768d15..a7c0f7bf59 100644
@@ -15,6 +15,7 @@ config BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS
 	default y if BR2_powerpc64
 	default y if BR2_powerpc64le
 	default y if BR2_riscv
+	default y if BR2_s390x
 	default y if BR2_sh
 	default y if BR2_sparc
 	default y if BR2_sparc64
Signature · 1 line
2.26.2
#6 lore raw

PATCH v4 5/12 board/qemu: add IBM s390x and Z arch support

In reply to Alexander Egorenkov
---
 DEVELOPERS                     |  2 ++
 board/qemu/s390x/post-build.sh | 11 +++++++++++
 board/qemu/s390x/readme.txt    |  8 ++++++++
 configs/qemu_s390x_defconfig   | 24 ++++++++++++++++++++++++
 4 files changed, 45 insertions(+)
 create mode 100755 board/qemu/s390x/post-build.sh
 create mode 100644 board/qemu/s390x/readme.txt
 create mode 100644 configs/qemu_s390x_defconfig
DEVELOPERS +2 -0
index 2285694f66..2c6cc45d45 100644
@@ -148,6 +148,8 @@ F:	package/multipath-tools/
 
 N:	Alexander Egorenkov <[email protected]>
 F:	arch/Config.in.s390x
+F:	board/qemu/s390x/
+F:	configs/qemu_s390x_defconfig
 
 N:	Alexander Kurz <[email protected]>
 F:	package/minimodem/
board/qemu/s390x/post-build.sh new file +11 -0
new file mode 100755
index 0000000000..bf83a002c2
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -u
+set -e
+
+# Add a console on tty1
+if [ -e ${TARGET_DIR}/etc/inittab ]; then
+    grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \
+	sed -i '/GENERIC_SERIAL/a\
+tty1::respawn:/sbin/getty -L  tty1 0 vt100 # QEMU graphical window' ${TARGET_DIR}/etc/inittab
+fi
board/qemu/s390x/readme.txt new file +8 -0
new file mode 100644
index 0000000000..7fa41640c0
@@ -0,0 +1,8 @@
+Run the emulation with:
+
+  qemu-system-s390x -M s390-ccw-virtio -cpu max,zpci=on -m 4G -smp 2 \
+    -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
+    -append "rootwait root=/dev/vda net.ifnames=0 biosdevname=0" -display none -serial mon:stdio \
+    -net nic,model=virtio -net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10021-:22 # qemu_s390x_defconfig
+
+The login prompt will appear in the terminal that started Qemu.
configs/qemu_s390x_defconfig new file +24 -0
new file mode 100644
index 0000000000..8e25d64e15
@@ -0,0 +1,24 @@
+# Architecture
+BR2_s390x=y
+
+# System
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_SYSTEM_DHCP="eth0"
+
+# Filesystem
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/s390x/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.7"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+
+# host-qemu for gitlab testing
+BR2_PACKAGE_HOST_QEMU=y
+BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
Signature · 1 line
2.26.2
#7 lore raw

PATCH v4 5/12 board/qemu: add IBM s390x and Z arch support

Alexander, All,

On 2020-09-17 06:07 +0200, Alexander Egorenkov spake thusly:

Quoted 1 line

[--SNIP--]

Quoted 6 lines
board/qemu/s390x/post-build.sh new file +0 -0
new file mode 100755
index 0000000000..bf83a002c2

board/qemu/s390x/post-build.sh line 10

Quoted 10 lines
board/qemu/s390x/post-build.sh new file +10 -0
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -u
+set -e
+
+# Add a console on tty1
+if [ -e ${TARGET_DIR}/etc/inittab ]; then
+    grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \
+	sed -i '/GENERIC_SERIAL/a\
+tty1::respawn:/sbin/getty -L  tty1 0 vt100 # QEMU graphical window' ${TARGET_DIR}/etc/inittab

I was not too fond of this, so i dropped it and we still get a login prompt in the terminal that started qemu.

Also, since qemu is not spawning a window to emulate a graphics card (of sorts), then the tty1 will not really be usable anyway.

So I dropped the post-build script.

board/qemu/s390x/readme.txt line 6

Quoted 13 lines
board/qemu/s390x/post-build.sh new file +1 -0
+fi
board/qemu/s390x/readme.txt new file +6 -0
new file mode 100644
index 0000000000..7fa41640c0
@@ -0,0 +1,8 @@
+Run the emulation with:
+
+  qemu-system-s390x -M s390-ccw-virtio -cpu max,zpci=on -m 4G -smp 2 \
+    -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
+    -append "rootwait root=/dev/vda net.ifnames=0 biosdevname=0" -display none -serial mon:stdio \
+    -net nic,model=virtio -net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10021-:22 # qemu_s390x_defconfig

I saw no reason to force the network IP,so I dropped it. Also, there is no sshd running, so there is no need to do a port forwarding either, so dropped too.

Applied to master with those minor fixes, thanks!

Regards,
Yann E. MORIN.

Quoted 38 lines
board/qemu/s390x/readme.txt new file +1 -0
+The login prompt will appear in the terminal that started Qemu.
configs/qemu_s390x_defconfig new file +24 -0
new file mode 100644
index 0000000000..8e25d64e15
@@ -0,0 +1,24 @@
+# Architecture
+BR2_s390x=y
+
+# System
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_SYSTEM_DHCP="eth0"
+
+# Filesystem
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/s390x/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
+BR2_TARGET_ROOTFS_EXT2=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.7"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+
+# host-qemu for gitlab testing
+BR2_PACKAGE_HOST_QEMU=y
+BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
Signature · 6 lines
2.26.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH v4 5/12 board/qemu: add IBM s390x and Z arch support

Hi Yann,

Quoted 13 lines · Yann E. MORIN

board/qemu/s390x/readme.txt line 6

Quoted 8 lines

+++ b/board/qemu/s390x/readme.txt

board/qemu/s390x/readme.txt new file +6 -0
@@ -0,0 +1,8 @@
+Run the emulation with:
+
+  qemu-system-s390x -M s390-ccw-virtio -cpu max,zpci=on -m 4G -smp 2 \
+    -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
+    -append "rootwait root=/dev/vda net.ifnames=0 biosdevname=0" -display none -serial mon:stdio \
+    -net nic,model=virtio -net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10021-:22 # qemu_s390x_defconfig

I saw no reason to force the network IP,so I dropped it. Also, there is no sshd running, so there is no need to do a port forwarding either, so dropped too.

Quoted 5 lines

Applied to master with those minor fixes, thanks!

Regards,
Yann E. MORIN.

Tested, works great :)
Thank you very much.

Regards
Alex

#9 lore raw

PATCH v4 6/12 package/systemd: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/systemd/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/systemd/Config.in +1 -0
index 74029aff05..7956370b83 100644
@@ -12,6 +12,7 @@ config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
 	default y if BR2_riscv
 	default y if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb
 	default y if BR2_sparc || BR2_sparc64
+	default y if BR2_s390x
 
 menuconfig BR2_PACKAGE_SYSTEMD
 	bool "systemd"
Signature · 1 line
2.26.2
#10 lore raw

PATCH v4 7/12 package/cmake: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/cmake/Config.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/cmake/Config.in +2 -1
index e7bd14e69a..3c47fdcb49 100644
@@ -5,7 +5,8 @@ config BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
 		BR2_m68k      || BR2_mips        || BR2_mips64   || \
 		BR2_mipsel    || BR2_mips64el    || BR2_powerpc  || \
 		BR2_powerpc64 || BR2_powerpc64le || BR2_sparc    || \
-		BR2_i386      || BR2_x86_64      || BR2_xtensa
+		BR2_i386      || BR2_x86_64      || BR2_xtensa   || \
+		BR2_s390x
 
 config BR2_PACKAGE_CMAKE
 	bool
Signature · 1 line
2.26.2
#11 lore raw

PATCH v4 8/12 package/liburcu: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/liburcu/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/liburcu/Config.in +1 -1
index 7d29642084..5dc8528971 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
 	depends on BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be || \
 		BR2_i386 || BR2_mips || BR2_mips64 || BR2_mipsel || \
 		BR2_mips64el || BR2_nios2 || BR2_powerpc || BR2_powerpc64 || \
-		BR2_powerpc64le || BR2_riscv || BR2_sparc64 || BR2_x86_64
+		BR2_powerpc64le || BR2_riscv || BR2_sparc64 || BR2_s390x || BR2_x86_64
 	depends on BR2_USE_MMU # fork() in test
 
 config BR2_PACKAGE_LIBURCU
Signature · 1 line
2.26.2
#12 lore raw

PATCH v4 9/12 package/kexec: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/kexec/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/kexec/Config.in +1 -1
index 410e503d9e..90a7bc2672 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_KEXEC
 	depends on BR2_i386 || BR2_x86_64 || BR2_arm || BR2_armeb || \
 		BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el || \
 		BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
-		BR2_sh4 || BR2_sh4a || BR2_aarch64
+		BR2_sh4 || BR2_sh4a || BR2_aarch64 || BR2_s390x
 	help
 	  Kexec is a user space utility for loading another kernel
 	  and asking the currently running kernel to do something with
Signature · 1 line
2.26.2
#13 lore raw

PATCH v4 10/12 package/go: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/go/Config.in.host | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/go/Config.in.host +1 -1
index 3f16dbaec3..87942c7a1e 100644
@@ -6,7 +6,7 @@ config BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS
 	depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \
 		|| BR2_i386 || BR2_x86_64 || BR2_powerpc64le \
-		|| BR2_mips64 || BR2_mips64el
+		|| BR2_mips64 || BR2_mips64el || BR2_s390x
 	depends on !BR2_ARM_CPU_ARMV4
 	# MIPS R6 support in Go has not yet been developed.
 	depends on !BR2_MIPS_CPU_MIPS64R6
Signature · 1 line
2.26.2
#14 lore raw

PATCH v4 11/12 package/makedumpfile: add support for IBM s390x and Z arch

In reply to Alexander Egorenkov
---
 package/makedumpfile/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/makedumpfile/Config.in +1 -0
index a90ccbdf3c..e41c4641a2 100644
@@ -4,6 +4,7 @@ config BR2_PACKAGE_MAKEDUMPFILE_ARCH_SUPPORTS
 	default y if BR2_arm || BR2_armeb
 	default y if BR2_i386 || BR2_x86_64
 	default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
+	default y if BR2_s390x
 	default y if BR2_sparc64
 
 comment "makedumpfile needs a uClibc or glibc toolchain w/ wchar, dynamic library"
Signature · 1 line
2.26.2
#15 lore raw

PATCH v4 12/12 package/s390-tools: new package

In reply to Alexander Egorenkov

Collection of tools for the IBM s390x and Z architectures.

---
 DEVELOPERS                         |  1 +
 package/Config.in                  |  1 +
 package/s390-tools/Config.in       | 13 +++++
 package/s390-tools/s390-tools.hash |  3 +
 package/s390-tools/s390-tools.mk   | 91 ++++++++++++++++++++++++++++++
 5 files changed, 109 insertions(+)
 create mode 100644 package/s390-tools/Config.in
 create mode 100644 package/s390-tools/s390-tools.hash
 create mode 100644 package/s390-tools/s390-tools.mk
DEVELOPERS +1 -0
index 2c6cc45d45..ed315e80d7 100644
@@ -150,6 +150,7 @@ N:	Alexander Egorenkov <[email protected]>
 F:	arch/Config.in.s390x
 F:	board/qemu/s390x/
 F:	configs/qemu_s390x_defconfig
+F:	package/s390-tools/
 
 N:	Alexander Kurz <[email protected]>
 F:	package/minimodem/
package/Config.in +1 -0
index 7783c26dc6..3907978365 100644
@@ -2427,6 +2427,7 @@ menu "System tools"
 	source "package/rauc/Config.in"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
+	source "package/s390-tools/Config.in"
 	source "package/s6/Config.in"
 	source "package/s6-linux-init/Config.in"
 	source "package/s6-linux-utils/Config.in"
package/s390-tools/Config.in new file +13 -0
new file mode 100644
index 0000000000..a553b5eeab
@@ -0,0 +1,13 @@
+comment "s390-tools needs a glibc toolchain w/ C++, wchar, dynamic library"
+	depends on BR2_s390x
+	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_S390_TOOLS
+	bool "s390-tools"
+	depends on BR2_s390x
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	help
+	  Tools for use with the s390 Linux kernel and device drivers.
+
+	  https://github.com/ibm-s390-tools/s390-tools
package/s390-tools/s390-tools.hash new file +3 -0
new file mode 100644
index 0000000000..38c2431c25
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256  02171161c3f858e413f777dac542d37328b7b882a7919cfb966ea554bb6ac0b2  s390-tools-2.14.0.tar.gz
+sha256  cca17a9a944ebec769adee4aebd805c912c357785ff2705a99ffe68563021f75  COPYING
package/s390-tools/s390-tools.mk new file +91 -0

91 lines not on this page · raw message

Signature · 1 line
2.26.2
#16 lore raw

v4 cover IBM s390x and Z architecture support

In reply to Alexander Egorenkov

Alexander, All,

On 2020-09-17 06:07 +0200, Alexander Egorenkov spake thusly:

Quoted 16 lines

This series of patches adds support for IBM s390x and Z architectures to buildroot.

Alexander Egorenkov (12):
arch: add the basic IBM s390x and Z arch support
toolchain: add support for the internal IBM s390x and Z toolchain
linux: add bzImage support for IBM s390x and Z arch package/qemu: add IBM s390x and Z arch support board/qemu: add IBM s390x and Z arch support package/systemd: add support for IBM s390x and Z arch package/cmake: add support for IBM s390x and Z arch package/liburcu: add support for IBM s390x and Z arch package/kexec: add support for IBM s390x and Z arch package/go: add support for IBM s390x and Z arch package/makedumpfile: add support for IBM s390x and Z arch package/s390-tools: new package

Thanks for the sustained iterations. :-)

Ive now applied the series to master, with a few changes to some patches; I'll individually reply to the impacted ones.

Thanks!

Regards,
Yann E. MORIN.

Quoted 37 lines
 DEVELOPERS                              |  6 ++
 Makefile                                |  1 +
 arch/Config.in                          | 13 ++++
 arch/Config.in.s390x                    | 34 +++++++++
 board/qemu/s390x/post-build.sh          | 11 +++
 board/qemu/s390x/readme.txt             |  8 +++
 configs/qemu_s390x_defconfig            | 24 +++++++
 linux/Config.in                         |  2 +-
 package/Config.in                       |  1 +
 package/cmake/Config.in                 |  3 +-
 package/gcc/gcc.mk                      |  5 ++
 package/go/Config.in.host               |  2 +-
 package/kexec/Config.in                 |  2 +-
 package/liburcu/Config.in               |  2 +-
 package/makedumpfile/Config.in          |  1 +
 package/qemu/Config.in.host             |  1 +
 package/s390-tools/Config.in            | 13 ++++
 package/s390-tools/s390-tools.hash      |  3 +
 package/s390-tools/s390-tools.mk        | 91 +++++++++++++++++++++++++
 package/systemd/Config.in               |  1 +
 toolchain/toolchain-buildroot/Config.in |  6 +-
 21 files changed, 222 insertions(+), 8 deletions(-)
 create mode 100644 arch/Config.in.s390x
 create mode 100755 board/qemu/s390x/post-build.sh
 create mode 100644 board/qemu/s390x/readme.txt
 create mode 100644 configs/qemu_s390x_defconfig
 create mode 100644 package/s390-tools/Config.in
 create mode 100644 package/s390-tools/s390-tools.hash
 create mode 100644 package/s390-tools/s390-tools.mk
Signature · 6 lines
2.26.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'