arch: add the basic IBM s390x and Z arch support
authorAlexander Egorenkov <egorenar@linux.ibm.com>
Thu, 17 Sep 2020 04:07:51 +0000 (06:07 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Thu, 24 Sep 2020 20:02:03 +0000 (22:02 +0200)
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
[yann.morin.1998@free.fr: drop supperfluous depends on s390x in choice]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
DEVELOPERS
Makefile
arch/Config.in
arch/Config.in.s390x [new file with mode: 0644]

index dcefb8f4dffd7f4dfb7ca8039bc64961abdc58a6..403e42b81e6b00fcaa7578a24d491f3c1a36f1c7 100644 (file)
@@ -147,6 +147,9 @@ N:  Alexander Egorenkov <egorenar-dev@posteo.net>
 F:     package/makedumpfile/
 F:     package/multipath-tools/
 
+N:     Alexander Egorenkov <egorenar@linux.ibm.com>
+F:     arch/Config.in.s390x
+
 N:     Alexander Kurz <akurz@blala.de>
 F:     package/minimodem/
 
index 9648fa58d8da5aa482d27711da314bc658d5dc89..384bfe3fe933e653620adcfaf27c7c329142e157 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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))
index 0707c076e2ab9af4edb824f9fda54e3e2c46d0a7..eb9b6007c9154859d975e462d87ef3843dcc5bc3 100644 (file)
@@ -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
diff --git a/arch/Config.in.s390x b/arch/Config.in.s390x
new file mode 100644 (file)
index 0000000..1d3079c
--- /dev/null
@@ -0,0 +1,33 @@
+
+choice
+       prompt "Target Architecture Variant"
+       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