lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230802052150.138283-1-falcon@tinylab.org>
Date:   Wed,  2 Aug 2023 13:21:50 +0800
From:   Zhangjin Wu <falcon@...ylab.org>
To:     thomas@...ch.de, w@....eu
Cc:     falcon@...ylab.org, arnd@...db.de, linux-kernel@...r.kernel.org,
        linux-kselftest@...r.kernel.org, linux@...ssschuh.net
Subject: [PATCH v4 08/12] selftests/nolibc: add test support for ppc

Hi, Willy, Thomas

Yuan is helping me to test this series and the tinyconfig series with
the latest compilers.

His first test found this ppc support failed with stackprotector when
using a newer compiler (I used an older compiler without stackprotector
for ppc), I'm debugging it, so, please ignore this revision too, of
course, if time allows, welcome to take a look at the other patches.

His other tests are trying to find out the exact poweroff support
options for every architecture one by one, let's fill this gap ...

Thanks,
Zhangjin

> Kernel uses ARCH=powerpc for both 32-bit and 64-bit PowerPC, here adds a
> ppc variant for 32-bit PowerPC and uses it as the default variant of
> powerpc architecture.
> 
> Users can pass ARCH=powerpc or XARCH=ppc to test 32-bit PowerPC.
> 
> The default qemu-system-ppc g3beige machine [1] is used to run 32-bit
> powerpc kernel.
> 
> The pmac32_defconfig is used with extra PMACZILOG console options to
> enable normal print.
> 
> Note, zImage doesn't boot due to "qemu-system-ppc: Some ROM regions are
> overlapping" error, so, vmlinux is used instead.
> 
> [1]: https://qemu.readthedocs.io/en/latest/system/ppc/powermac.html
> 
> Suggested-by: Willy Tarreau <w@....eu>
> Link: https://lore.kernel.org/lkml/ZL9leVOI25S2+0+g@1wt.eu/
> Reviewed-by: Thomas Weißschuh <linux@...ssschuh.net>
> Signed-off-by: Zhangjin Wu <falcon@...ylab.org>
> ---
>  tools/testing/selftests/nolibc/Makefile                     | 6 ++++++
>  .../testing/selftests/nolibc/configs/nolibc-test-ppc.config | 3 +++
>  2 files changed, 9 insertions(+)
>  create mode 100644 tools/testing/selftests/nolibc/configs/nolibc-test-ppc.config
> 
> diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> index 3c9e3963fbad..29e02b49903a 100644
> --- a/tools/testing/selftests/nolibc/Makefile
> +++ b/tools/testing/selftests/nolibc/Makefile
> @@ -33,9 +33,11 @@ endif
>  # architectures where both are equal.
>  
>  # configure default variants for target kernel supported architectures
> +XARCH_powerpc    = ppc
>  XARCH            = $(or $(XARCH_$(ARCH)),$(ARCH))
>  
>  # map from user input variants to their kernel supported architectures
> +ARCH_ppc         = powerpc
>  ARCH            := $(or $(ARCH_$(XARCH)),$(XARCH))
>  
>  # kernel image names by architecture
> @@ -45,6 +47,7 @@ IMAGE_x86        = arch/x86/boot/bzImage
>  IMAGE_arm64      = arch/arm64/boot/Image
>  IMAGE_arm        = arch/arm/boot/zImage
>  IMAGE_mips       = vmlinuz
> +IMAGE_ppc        = vmlinux
>  IMAGE_riscv      = arch/riscv/boot/Image
>  IMAGE_s390       = arch/s390/boot/bzImage
>  IMAGE_loongarch  = arch/loongarch/boot/vmlinuz.efi
> @@ -58,6 +61,7 @@ DEFCONFIG_x86        = defconfig
>  DEFCONFIG_arm64      = defconfig
>  DEFCONFIG_arm        = multi_v7_defconfig
>  DEFCONFIG_mips       = malta_defconfig
> +DEFCONFIG_ppc        = pmac32_defconfig
>  DEFCONFIG_riscv      = defconfig
>  DEFCONFIG_s390       = defconfig
>  DEFCONFIG_loongarch  = defconfig
> @@ -77,6 +81,7 @@ QEMU_ARCH_x86        = x86_64
>  QEMU_ARCH_arm64      = aarch64
>  QEMU_ARCH_arm        = arm
>  QEMU_ARCH_mips       = mipsel  # works with malta_defconfig
> +QEMU_ARCH_ppc        = ppc
>  QEMU_ARCH_riscv      = riscv64
>  QEMU_ARCH_s390       = s390x
>  QEMU_ARCH_loongarch  = loongarch64
> @@ -89,6 +94,7 @@ QEMU_ARGS_x86        = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(
>  QEMU_ARGS_arm64      = -M virt -cpu cortex-a53 -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
>  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_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=%)"
> diff --git a/tools/testing/selftests/nolibc/configs/nolibc-test-ppc.config b/tools/testing/selftests/nolibc/configs/nolibc-test-ppc.config
> new file mode 100644
> index 000000000000..b1975f8253f7
> --- /dev/null
> +++ b/tools/testing/selftests/nolibc/configs/nolibc-test-ppc.config
> @@ -0,0 +1,3 @@
> +CONFIG_SERIAL_PMACZILOG=y
> +CONFIG_SERIAL_PMACZILOG_TTYS=y
> +CONFIG_SERIAL_PMACZILOG_CONSOLE=y
> -- 
> 2.25.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ