From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <vivkong@gmail.com>
Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com
 [209.85.160.194]) by dpdk.org (Postfix) with ESMTP id A51EF4F98
 for <dev@dpdk.org>; Tue,  9 Apr 2019 21:06:34 +0200 (CEST)
Received: by mail-qt1-f194.google.com with SMTP id w30so21163193qta.8
 for <dev@dpdk.org>; Tue, 09 Apr 2019 12:06:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:subject:date:message-id:in-reply-to:references:reply-to;
 bh=CYAh6sQQhk56ewt8zoEACUwsrBuZatwgtDFTv69ngxU=;
 b=L/l6ld2Gnq1wi+tbdz6OlhVvSUrWzZ55b7twEGF+wchn1GozpLxpTDsBATtIRl7aT/
 KdmQDetMLcs2GKY1G78fTCw9q+YQVBWmDgjqA83KoPU7g6aFKX1JOxENL+Gz1pxIK4Sd
 S4/P+88w4HQONSn9gDb+qFReQmG3MfIp7dE1WVBMjOrN7UN9TTsi5GS77CtGTzbPzrpu
 P3k3t24m7aZx+V1/wIWlZuWZiMQZalwqlk/6sdl49Jp1y3+7uUK9LcQFgbapgMT5C0xN
 tWMMi8OMpX45T7EPM/tiKdW88IjWSB2LqPW/2c+WPDy8B6UIeMSNMzUyQalNcZV2fKyW
 HttA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
 :references:reply-to;
 bh=CYAh6sQQhk56ewt8zoEACUwsrBuZatwgtDFTv69ngxU=;
 b=hPpXfaBe1uvlrbX5FOoerfsKMEGYab7EOD0nhNlMtOS3Zy1P0/D4eGLRh1JC2xxQ1P
 ayif0EyNyYv5Ukn9+xARmxDrjpdvbsueJGtNKpNbkxVsLRIqIRpZ76I1YKu9EHsmZRTP
 vfSvt0LrZSyyNXk2kSUJyk/SuDjEIXwDJ5sFs5+BWdxF0xzQf1eer8jSIa+qu4//Sjym
 trO8n4i2KnhT9eZVanW4F7dq06pGadA0IJd4ja1QoGAcNEsUidrO4gi6RlEhVxGvQO3d
 Om2QoP7Q+syS5iLh664/qFplBbh00o23863icfJ0AMLnMa5wy4L1CO5fOke206E/FGGg
 1VRA==
X-Gm-Message-State: APjAAAU0P0sfKaEfgYsmDS6q3vxSwnFj2UthqmDChKdQ9wAfPZMyQ5Mo
 EoxOOeHrZxJcAR06CVbq09h/RbmetXg=
X-Google-Smtp-Source: APXvYqx8KzONIb7lZiolXX2iY3Ob8/rSj2A/XkL7St11Kd9UhiUHutKjmFnbmaoQpqTUEolFfI+mBw==
X-Received: by 2002:ac8:3696:: with SMTP id a22mr30860327qtc.191.1554836793572; 
 Tue, 09 Apr 2019 12:06:33 -0700 (PDT)
Received: from csz25116.canlab.ibm.com ([199.246.40.57])
 by smtp.gmail.com with ESMTPSA id q23sm17934789qkc.16.2019.04.09.12.06.32
 for <dev@dpdk.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 09 Apr 2019 12:06:32 -0700 (PDT)
From: Vivian Kong <vivkong@gmail.com>
X-Google-Original-From: Vivian Kong <vivkong@ca.ibm.com>
To: dev@dpdk.org
Date: Tue,  9 Apr 2019 15:06:19 -0400
Message-Id: <20190409190630.31975-2-vivkong@ca.ibm.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20190409190630.31975-1-vivkong@ca.ibm.com>
References: <20190409190630.31975-1-vivkong@ca.ibm.com>
Subject: [dpdk-dev] [RFC 01/12] mk: introduce s390x architecture
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: vivkong@ca.ibm.com
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Apr 2019 19:06:35 -0000

Add config and mk files to build DPDK on Linux on IBM Z (s390x).

Signed-off-by: Vivian Kong <vivkong@ca.ibm.com>
---
 config/defconfig_s390x-native-linux-gcc    |  1 +
 config/defconfig_s390x-native-linuxapp-gcc | 33 ++++++++++++++++++++++
 mk/arch/s390x/rte.vars.mk                  | 16 +++++++++++
 mk/rte.cpuflags.mk                         |  5 ++++
 4 files changed, 55 insertions(+)
 create mode 120000 config/defconfig_s390x-native-linux-gcc
 create mode 100644 config/defconfig_s390x-native-linuxapp-gcc
 create mode 100644 mk/arch/s390x/rte.vars.mk

diff --git a/config/defconfig_s390x-native-linux-gcc b/config/defconfig_s390x-native-linux-gcc
new file mode 120000
index 000000000..28b9275cf
--- /dev/null
+++ b/config/defconfig_s390x-native-linux-gcc
@@ -0,0 +1 @@
+defconfig_s390x-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_s390x-native-linuxapp-gcc b/config/defconfig_s390x-native-linuxapp-gcc
new file mode 100644
index 000000000..1241157d9
--- /dev/null
+++ b/config/defconfig_s390x-native-linuxapp-gcc
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# (c) Copyright IBM Corp. 2018, 2019
+
+#include "common_linux"
+
+CONFIG_RTE_MACHINE="z13"
+
+CONFIG_RTE_ARCH="s390x"
+CONFIG_RTE_ARCH_64=y
+CONFIG_RTE_ARCH_S390X=y
+
+#CONFIG_RTE_MAX_LCORE=256
+#CONFIG_RTE_MAX_NUMA_NODES=32
+#CONFIG_RTE_CACHE_LINE_SIZE=128
+
+CONFIG_RTE_TOOLCHAIN="gcc"
+CONFIG_RTE_TOOLCHAIN_GCC=y
+CONFIG_RTE_FORCE_INTRINSICS=y
+# Note: Power doesn't have this support
+CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
+
+# Note: Initially, all of the PMD drivers compilation are turned off on s390x
+# Will turn on them only after the successful testing on s390x
+CONFIG_RTE_LIBRTE_IXGBE_PMD=n
+CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
+CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
+CONFIG_RTE_LIBRTE_ENIC_PMD=n
+CONFIG_RTE_LIBRTE_FM10K_PMD=n
+CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
+CONFIG_RTE_LIBRTE_AVP_PMD=n
+CONFIG_RTE_LIBRTE_BNXT_PMD=n
+CONFIG_RTE_LIBRTE_ENETC_PMD=n
diff --git a/mk/arch/s390x/rte.vars.mk b/mk/arch/s390x/rte.vars.mk
new file mode 100644
index 000000000..9740c5684
--- /dev/null
+++ b/mk/arch/s390x/rte.vars.mk
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# (c) Copyright IBM Corp. 2018, 2019
+
+ARCH  ?= s390
+CROSS ?=
+
+CPU_CFLAGS  ?= -m64
+CPU_LDFLAGS ?=
+CPU_ASFLAGS ?= -felf64
+
+export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
+
+RTE_OBJCOPY_TARGET = elf64-s390
+RTE_OBJCOPY_ARCH = s390
+
+export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index 541211c61..195022926 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -93,6 +93,11 @@ ifneq ($(filter $(AUTO_CPUFLAGS),__builtin_vsx_xvnmaddadp),)
 CPUFLAGS += VSX
 endif
 
+# s390x
+ifneq ($(filter $(AUTO_CPUFLAGS),__s390x__),)
+CPUFLAGS += ZARCH
+endif
+
 # ARM flags
 ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
 CPUFLAGS += NEON
-- 
2.17.1

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 9E432A0096
	for <public@inbox.dpdk.org>; Tue,  9 Apr 2019 21:06:45 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 7FFA954AE;
	Tue,  9 Apr 2019 21:06:38 +0200 (CEST)
Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com
 [209.85.160.194]) by dpdk.org (Postfix) with ESMTP id A51EF4F98
 for <dev@dpdk.org>; Tue,  9 Apr 2019 21:06:34 +0200 (CEST)
Received: by mail-qt1-f194.google.com with SMTP id w30so21163193qta.8
 for <dev@dpdk.org>; Tue, 09 Apr 2019 12:06:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:subject:date:message-id:in-reply-to:references:reply-to;
 bh=CYAh6sQQhk56ewt8zoEACUwsrBuZatwgtDFTv69ngxU=;
 b=L/l6ld2Gnq1wi+tbdz6OlhVvSUrWzZ55b7twEGF+wchn1GozpLxpTDsBATtIRl7aT/
 KdmQDetMLcs2GKY1G78fTCw9q+YQVBWmDgjqA83KoPU7g6aFKX1JOxENL+Gz1pxIK4Sd
 S4/P+88w4HQONSn9gDb+qFReQmG3MfIp7dE1WVBMjOrN7UN9TTsi5GS77CtGTzbPzrpu
 P3k3t24m7aZx+V1/wIWlZuWZiMQZalwqlk/6sdl49Jp1y3+7uUK9LcQFgbapgMT5C0xN
 tWMMi8OMpX45T7EPM/tiKdW88IjWSB2LqPW/2c+WPDy8B6UIeMSNMzUyQalNcZV2fKyW
 HttA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
 :references:reply-to;
 bh=CYAh6sQQhk56ewt8zoEACUwsrBuZatwgtDFTv69ngxU=;
 b=hPpXfaBe1uvlrbX5FOoerfsKMEGYab7EOD0nhNlMtOS3Zy1P0/D4eGLRh1JC2xxQ1P
 ayif0EyNyYv5Ukn9+xARmxDrjpdvbsueJGtNKpNbkxVsLRIqIRpZ76I1YKu9EHsmZRTP
 vfSvt0LrZSyyNXk2kSUJyk/SuDjEIXwDJ5sFs5+BWdxF0xzQf1eer8jSIa+qu4//Sjym
 trO8n4i2KnhT9eZVanW4F7dq06pGadA0IJd4ja1QoGAcNEsUidrO4gi6RlEhVxGvQO3d
 Om2QoP7Q+syS5iLh664/qFplBbh00o23863icfJ0AMLnMa5wy4L1CO5fOke206E/FGGg
 1VRA==
X-Gm-Message-State: APjAAAU0P0sfKaEfgYsmDS6q3vxSwnFj2UthqmDChKdQ9wAfPZMyQ5Mo
 EoxOOeHrZxJcAR06CVbq09h/RbmetXg=
X-Google-Smtp-Source: APXvYqx8KzONIb7lZiolXX2iY3Ob8/rSj2A/XkL7St11Kd9UhiUHutKjmFnbmaoQpqTUEolFfI+mBw==
X-Received: by 2002:ac8:3696:: with SMTP id a22mr30860327qtc.191.1554836793572; 
 Tue, 09 Apr 2019 12:06:33 -0700 (PDT)
Received: from csz25116.canlab.ibm.com ([199.246.40.57])
 by smtp.gmail.com with ESMTPSA id q23sm17934789qkc.16.2019.04.09.12.06.32
 for <dev@dpdk.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 09 Apr 2019 12:06:32 -0700 (PDT)
From: Vivian Kong <vivkong@gmail.com>
X-Google-Original-From: Vivian Kong <vivkong@ca.ibm.com>
To: dev@dpdk.org
Date: Tue,  9 Apr 2019 15:06:19 -0400
Message-Id: <20190409190630.31975-2-vivkong@ca.ibm.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20190409190630.31975-1-vivkong@ca.ibm.com>
References: <20190409190630.31975-1-vivkong@ca.ibm.com>
Subject: [dpdk-dev] [RFC 01/12] mk: introduce s390x architecture
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: vivkong@ca.ibm.com
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Content-Type: text/plain; charset="UTF-8"
Message-ID: <20190409190619.lpYAGTO-Yxox8D5KdUyIyEm8qcBJ0lbgYqjd1RCnK1I@z>

Add config and mk files to build DPDK on Linux on IBM Z (s390x).

Signed-off-by: Vivian Kong <vivkong@ca.ibm.com>
---
 config/defconfig_s390x-native-linux-gcc    |  1 +
 config/defconfig_s390x-native-linuxapp-gcc | 33 ++++++++++++++++++++++
 mk/arch/s390x/rte.vars.mk                  | 16 +++++++++++
 mk/rte.cpuflags.mk                         |  5 ++++
 4 files changed, 55 insertions(+)
 create mode 120000 config/defconfig_s390x-native-linux-gcc
 create mode 100644 config/defconfig_s390x-native-linuxapp-gcc
 create mode 100644 mk/arch/s390x/rte.vars.mk

diff --git a/config/defconfig_s390x-native-linux-gcc b/config/defconfig_s390x-native-linux-gcc
new file mode 120000
index 000000000..28b9275cf
--- /dev/null
+++ b/config/defconfig_s390x-native-linux-gcc
@@ -0,0 +1 @@
+defconfig_s390x-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_s390x-native-linuxapp-gcc b/config/defconfig_s390x-native-linuxapp-gcc
new file mode 100644
index 000000000..1241157d9
--- /dev/null
+++ b/config/defconfig_s390x-native-linuxapp-gcc
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# (c) Copyright IBM Corp. 2018, 2019
+
+#include "common_linux"
+
+CONFIG_RTE_MACHINE="z13"
+
+CONFIG_RTE_ARCH="s390x"
+CONFIG_RTE_ARCH_64=y
+CONFIG_RTE_ARCH_S390X=y
+
+#CONFIG_RTE_MAX_LCORE=256
+#CONFIG_RTE_MAX_NUMA_NODES=32
+#CONFIG_RTE_CACHE_LINE_SIZE=128
+
+CONFIG_RTE_TOOLCHAIN="gcc"
+CONFIG_RTE_TOOLCHAIN_GCC=y
+CONFIG_RTE_FORCE_INTRINSICS=y
+# Note: Power doesn't have this support
+CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
+
+# Note: Initially, all of the PMD drivers compilation are turned off on s390x
+# Will turn on them only after the successful testing on s390x
+CONFIG_RTE_LIBRTE_IXGBE_PMD=n
+CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
+CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
+CONFIG_RTE_LIBRTE_ENIC_PMD=n
+CONFIG_RTE_LIBRTE_FM10K_PMD=n
+CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
+CONFIG_RTE_LIBRTE_AVP_PMD=n
+CONFIG_RTE_LIBRTE_BNXT_PMD=n
+CONFIG_RTE_LIBRTE_ENETC_PMD=n
diff --git a/mk/arch/s390x/rte.vars.mk b/mk/arch/s390x/rte.vars.mk
new file mode 100644
index 000000000..9740c5684
--- /dev/null
+++ b/mk/arch/s390x/rte.vars.mk
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# (c) Copyright IBM Corp. 2018, 2019
+
+ARCH  ?= s390
+CROSS ?=
+
+CPU_CFLAGS  ?= -m64
+CPU_LDFLAGS ?=
+CPU_ASFLAGS ?= -felf64
+
+export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
+
+RTE_OBJCOPY_TARGET = elf64-s390
+RTE_OBJCOPY_ARCH = s390
+
+export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index 541211c61..195022926 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -93,6 +93,11 @@ ifneq ($(filter $(AUTO_CPUFLAGS),__builtin_vsx_xvnmaddadp),)
 CPUFLAGS += VSX
 endif
 
+# s390x
+ifneq ($(filter $(AUTO_CPUFLAGS),__s390x__),)
+CPUFLAGS += ZARCH
+endif
+
 # ARM flags
 ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
 CPUFLAGS += NEON
-- 
2.17.1