From patchwork Thu Aug 3 11:48:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Zhangjin Wu X-Patchwork-Id: 130530 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1099433vqx; Thu, 3 Aug 2023 05:06:26 -0700 (PDT) X-Google-Smtp-Source: APBJJlETIFa9UYKeN007rA4XPUPKoAsWxWdZyq5Aso2XKDgct6TuHqffCXmsOAUzjDw+5np0eEf5 X-Received: by 2002:a05:6a20:160b:b0:133:bf18:ef7b with SMTP id l11-20020a056a20160b00b00133bf18ef7bmr23990192pzj.24.1691064385995; Thu, 03 Aug 2023 05:06:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691064385; cv=none; d=google.com; s=arc-20160816; b=Rl1pBNkj8hLMYP1Qz8KmAOS1Zm1lvvix2d2WOH3Gm2OVbB65jMhZ+67d8edKQeuOnG GY56NbcBnY3fYs9aR4BnQ51LRGdJjN/F2+v+3N/fLcD6+FQDyuEYqsMPKEx8iv1h2cYd 3CE0OFGctY874pQ3bsOtCLCdCuUV6SFheXXA90B2aOp5qLOR0XYmpL6FPHbEKEscOdK6 KPbSbjXVyPUZemnBtXSUV7O41houttQEImhOIiuqUkerPARoAV7xFOv/Kf4gaO0b/G0b KfHWEwKWvRLu07k5k7II2XBkzM8dqJSmzTwuAZZUHXuyj2TVALpeDWlwvBD4hOszfC6n T79Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=q1uvto/wStjnuT8052Z1gXsiHng0Owmn9qBcyiCRJuQ=; fh=tASeuIQHteoNQCzEpqxQcSlYcvsywztgoQaVg5gEA5g=; b=YzZFygxKJUeZdyWQysjpH3MpfsalD+uldt+76e+DmyNcU5RG6TFb8Y1KFJbhnZerHm IGwtw1VrueT7anbCniPjD+hVFcOd0Aik/gqSCHwSMrJ25kVvjpKy4vQZ0qB7eLDhyKRI 6ls9uCaLbGs45/3enfYHZJwfK8KSR/dHcNoYT7hvTTLUVmCg4/Tj+xX0WMxqpYGTHGR7 CxtEZzNPj7XwLukMOX1woTGkT2U9BnFXT61OXw8Oxs2POfeqsJRzBBLNV9qEy4vLQULy vetQOFstvptWTyyw/xDJlB1qbULlQ+xoPwyiSaigQQ1hPDnDMMPI/UyQ0iC+8jyrPmBN Hugg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t13-20020a056a0021cd00b0068717cf7f22si3625449pfj.31.2023.08.03.05.05.56; Thu, 03 Aug 2023 05:06:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233772AbjHCLsx (ORCPT + 99 others); Thu, 3 Aug 2023 07:48:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231496AbjHCLsv (ORCPT ); Thu, 3 Aug 2023 07:48:51 -0400 Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.155.65.254]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4CF0E6F; Thu, 3 Aug 2023 04:48:49 -0700 (PDT) X-QQ-mid: bizesmtp74t1691063319tvuri5m6 Received: from linux-lab-host.localdomain ( [116.30.131.233]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 03 Aug 2023 19:48:38 +0800 (CST) X-QQ-SSF: 00200000000000E0X000000A0000000 X-QQ-FEAT: K2/klV1qoGlgQFITSGxVBRsam1EKtASy9rInE71XVAB8zAK2aUOgM8zIkBgPb qCkgBtzdB/GZNd3ylQkg97OMTBSQGw/YDbKnvSsEgQ0NhDoWX6cJDd6tJ4NfDZco9Nu3y0n OAcZ4Mqt1qB9xQLNNF/hOwQnD229SSjnQhhY7GkcEz1YmYPXVj0YrnJcoe5SFwO4xZdYST2 dZVlaODubiG8laWFZXtAuPLQ525EYkfGXOO3ZFJPqvnGJxPadd9JJTIjMp3OkXNBwe5Jklj Z7yiksAP3xGvOMhCeG9s47xZ9EziebpRjLvLOO3HpmPmPbF4+gqBQjlRqSWa/2qM0oGpopz jwcWDTB8t33onImHcRUhfRBtJ4zwEsa2iX33EFMsj8KFL0Okdyfz0jl9NkaCH3HAA+TOwgB RJDd4Vz96rFcPWavDkVRig== X-QQ-GoodBg: 0 X-BIZMAIL-ID: 560584784227893315 From: Zhangjin Wu To: thomas@t-8ch.de, w@1wt.eu Cc: falcon@tinylab.org, arnd@arndb.de, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tanyuan@tinylab.org, =?utf-8?q?Thomas_Wei?= =?utf-8?q?=C3=9Fschuh?= Subject: [PATCH v5 5/8] selftests/nolibc: add test support for ppc64le Date: Thu, 3 Aug 2023 19:48:38 +0800 Message-Id: <54b1ac710baee8750c4328c65da0fdcb7f06eae4.1691062722.git.falcon@tinylab.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:tinylab.org:qybglogicsvrgz:qybglogicsvrgz5a-1 X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773209529149180101 X-GMAIL-MSGID: 1773209529149180101 Kernel uses ARCH=powerpc for both 32-bit and 64-bit PowerPC, here adds a ppc64le variant for little endian 64-bit PowerPC, users can pass XARCH=ppc64le to test it. The powernv machine of qemu-system-ppc64le is used for there is just a working powernv_defconfig. As the document [1] shows: PowerNV (as Non-Virtualized) is the “bare metal” platform using the OPAL firmware. It runs Linux on IBM and OpenPOWER systems and it can be used as an hypervisor OS, running KVM guests, or simply as a host OS. Notes, - since the VSX support may be disabled in kernel side, to avoid "illegal instruction" errors due to missing VSX kernel support, let's simply let compiler not generate vector/scalar (VSX) instructions via the '-mno-vsx' option. - little endian ppc64 prefers elfv2 to elfv1 if the toolchain (e.g. gcc 13.1.0) supports it, let's align with kernel, otherwise, our elfv1 binary will not run on kernel with elfv2 ABI. [1]: https://qemu.readthedocs.io/en/latest/system/ppc/powernv.html Suggested-by: Willy Tarreau Link: https://lore.kernel.org/lkml/20230722120747.GC17311@1wt.eu/ Reviewed-by: Thomas Weißschuh Signed-off-by: Zhangjin Wu --- tools/testing/selftests/nolibc/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile index 53f55aad8f5c..4d71393e75ef 100644 --- a/tools/testing/selftests/nolibc/Makefile +++ b/tools/testing/selftests/nolibc/Makefile @@ -35,6 +35,7 @@ XARCH = $(or $(XARCH_$(ARCH)),$(ARCH)) # map from user input variants to their kernel supported architectures ARCH_ppc = powerpc +ARCH_ppc64le = powerpc ARCH := $(or $(ARCH_$(XARCH)),$(XARCH)) # kernel image names by architecture @@ -45,6 +46,7 @@ IMAGE_arm64 = arch/arm64/boot/Image IMAGE_arm = arch/arm/boot/zImage IMAGE_mips = vmlinuz IMAGE_ppc = vmlinux +IMAGE_ppc64le = arch/powerpc/boot/zImage IMAGE_riscv = arch/riscv/boot/Image IMAGE_s390 = arch/s390/boot/bzImage IMAGE_loongarch = arch/loongarch/boot/vmlinuz.efi @@ -59,6 +61,7 @@ DEFCONFIG_arm64 = defconfig DEFCONFIG_arm = multi_v7_defconfig DEFCONFIG_mips = malta_defconfig DEFCONFIG_ppc = pmac32_defconfig +DEFCONFIG_ppc64le = powernv_defconfig DEFCONFIG_riscv = defconfig DEFCONFIG_s390 = defconfig DEFCONFIG_loongarch = defconfig @@ -75,6 +78,7 @@ QEMU_ARCH_arm64 = aarch64 QEMU_ARCH_arm = arm QEMU_ARCH_mips = mipsel # works with malta_defconfig QEMU_ARCH_ppc = ppc +QEMU_ARCH_ppc64le = ppc64le QEMU_ARCH_riscv = riscv64 QEMU_ARCH_s390 = s390x QEMU_ARCH_loongarch = loongarch64 @@ -88,6 +92,7 @@ QEMU_ARGS_arm64 = -M virt -cpu cortex-a53 -append "panic=-1 $(TEST:%=NOLIBC QEMU_ARGS_arm = -M virt -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_mips = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_ppc = -M g3beige -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" +QEMU_ARGS_ppc64le = -M powernv -append "console=hvc0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_riscv = -M virt -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_s390 = -M s390-ccw-virtio -m 1G -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_loongarch = -M virt -append "console=ttyS0,115200 panic=-1 $(TEST:%=NOLIBC_TEST=%)" @@ -104,6 +109,7 @@ Q=@ endif CFLAGS_ppc = -m32 -mbig-endian -Wl,-EB,-melf32ppc -mmultiple -mno-vsx +CFLAGS_ppc64le = -m64 -mlittle-endian -Wl,-EL,-melf64lppc -mno-vsx $(call cc-option,-mabi=elfv2) CFLAGS_s390 = -m64 CFLAGS_mips = -EL CFLAGS_STACKPROTECTOR ?= $(call cc-option,-mstack-protector-guard=global $(call cc-option,-fstack-protector-all))