From patchwork Sat Aug 5 18:43:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Zhangjin Wu X-Patchwork-Id: 131535 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c44e:0:b0:3f2:4152:657d with SMTP id w14csp613449vqr; Sat, 5 Aug 2023 12:59:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGZ4Y2AF2VQA6kxBNHDJdLuO93v3fVXo916tL4vkH7xMYWhotmGTe8CA7fAyBLMcl6wqhtd X-Received: by 2002:aa7:d6d2:0:b0:522:37fc:71fb with SMTP id x18-20020aa7d6d2000000b0052237fc71fbmr4301765edr.37.1691265549062; Sat, 05 Aug 2023 12:59:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691265549; cv=none; d=google.com; s=arc-20160816; b=GSrafgKY5/VrPlJdW/6LCusFqQ4cLmyZB2EZVkJFxMTRFY1Pz4R2fFNUCoEL0cBImI aKUlM5uD/R4GiafVm+NMo6WbsubDeVUQUIhqR4W/bi2jOFvhlhwnlRjniaYieflzQcUi +9cD5Sl/S79NVrJzAkvHZBsPCtY4PbOthFOohvGm3p1MlksJYax1GNIjQTzDlg9YH4a6 o6bfaQUEmE773mWvJOZu8gbTBeVRSRHsmenP9PmTW7iId6T9aEkMV//rT6PsIVRJGxjp 6dHLShMDidXZvjrpv8DkM+QSqmGvxILhdz7NQvV4fUYoDiU9LRwqhEHyveAhvF5mDPuG WD5g== 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=tbyhH7ZkFQbCXfLxGBGuiu9Uz2/60Vm3FM5UFmKdgZ4=; fh=qDuYiBigcDB5OOi2VEjvZowinM7+A028kB0vdTLYbmY=; b=RtUgjeHv5Vl0W2PUSXKe1x0VNioInMeptXEU/iAF3CoHWtAo7HvgHibbfm6H7i80qY 3OSt/VgEBWih1Dnjm3hkoq5ebXdMqnrBAWv8ggV899aGIQ7rdm/Ud6STkrj1UV4FfiPw YhcWr5Sg7aFj6DEg5XUM9u49rh0QZL29eimGJuYYPwBV+FXZtcvoHEmAW5CEGTEq+NhE jhntuNF75v89M9RRJr+PYuNMfunHNZZbTFWH29RQL6GhrA2h8yVzoCkaDBG8IJASsJkD RPX9q1LZBzEhUYxjrMH3pi0diNqfAo5pPFK99LrdVP1Xk3ti7fB7b0LIzAYFXqn6XDb3 KLSA== 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 o18-20020aa7c512000000b005230d2fde4bsi3321057edq.639.2023.08.05.12.58.45; Sat, 05 Aug 2023 12:59:09 -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 S230178AbjHESoO (ORCPT + 99 others); Sat, 5 Aug 2023 14:44:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbjHESoM (ORCPT ); Sat, 5 Aug 2023 14:44:12 -0400 Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 166F81BE4; Sat, 5 Aug 2023 11:44:09 -0700 (PDT) X-QQ-mid: bizesmtp81t1691261034tbgrmf1h Received: from linux-lab-host.localdomain ( [116.30.131.233]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 06 Aug 2023 02:43:53 +0800 (CST) X-QQ-SSF: 00200000000000E0X000B00A0000000 X-QQ-FEAT: aRJAvSRewFYU4SW2XrRMbeVjTtmWizIV2aT4qPHNUwsXnhy5ooszTAXsDyuid KPxZh/k6Tu3wnF7+7MSV1i5DmzWuqjNsXVelJGMecR+8kSgpDKQH9bNwbwA6S0aOTT+wOJ6 r7yLn7NoBe0D0B56Z2bzxKLLQaN7Rr37cw4gapbooNST8jmWoG11rkfZw719q4kn73iLugy TQP2xKPdKaGem6Sz8Mi2mJjTmh//kcx3M3Xuf+fZSnq/fQv4OrHnlf/9kxCY2CnswtfAkVt ishKI8baPY9FDdWBzpCV1+rPtWizDnW86rlHYF0Fpin9oXU9016SLZ6TAjwFIS2e+/h0Fxc tr5b5xRceoo8EimWJ5BV2DE92VcyVb4ZK/xUXwG7aZp+CWxr3g96R8Ai80kmRCcjJGIXHF+ ltxAbgVXkFU= X-QQ-GoodBg: 0 X-BIZMAIL-ID: 10814934079519102711 From: Zhangjin Wu To: w@1wt.eu Cc: falcon@tinylab.org, arnd@arndb.de, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tanyuan@tinylab.org, thomas@t-8ch.de, =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Subject: [PATCH v6 5/8] selftests/nolibc: add test support for ppc64le Date: Sun, 6 Aug 2023 02:43:53 +0800 Message-Id: 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=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,SPF_PASS,URIBL_BLOCKED autolearn=ham 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: 1773420464302067314 X-GMAIL-MSGID: 1773420464302067314 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 cac501e0c7cf..586f278ddd66 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 -mno-vsx $(call cc-option,-mmultiple) +CFLAGS_ppc64le = -m64 -mlittle-endian -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))