On 2019.09.10 21:44, Michał Górny wrote: > Hi, everyone. > > I've recently (finally!) started adding tests to cpuid2cpuflags. > Tests > are based on mocked syscalls that return arch-specific data read from > text files. So far I've got x86 and ppc covered, and now I'd like to > add tests for various arm hardware. Since ARM covers a pretty broad > range of hardware, I'd use as much data as possible, especially from > different ARM generations. > > If you have an ARM board and would like to help, please: > > wget https://dev.gentoo.org/~mgorny/dist/cpuid2cpuflags-7-dev.tar.bz2 > tar -xf cpuid2cpuflags-7-dev.tar.bz2 > cd cpuid2cpuflags-7-dev > ./configure > make hwcap-dump > ./hwcap-dump > > and send me the output along with 'uname -m'. TIA! > > -- > Best regards, > Michał Górny > > Team, this is going to be a long rambling tale of woe. Sorry in advance. On arm64 cpuid2cpuflags-8 tells me Pi4_~arm64 /usr/portage # cpuid2cpuflags CPU_FLAGS_ARM: edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 crc32 v4 v5 v6 v7 v8 thumb2 but by chance I hit [Bug 695854] net-misc/freerdp-2.0.0_rc4 on arm64 - aarch64-unknown-linux-gnu-gcc: error: unrecognized command line option ‘-mfpu=neon’ The 32 bit arm instruction set is optional on arm64. The 64 bit Raspberry Pis all have it The Cavium Thunder does not. It is unlikely that there will ever be a multilib arm64. Only a subset of arm64 could ever support it, so should we be using CPU_FLAGS_ARM to cover arm64 too? There is nothing in the name. Its the content that matters. On a Pi4 in 64 bit mode, cpuinfo shows Pi4_~arm64 /usr/portage # cat /proc/cpuinfo processor : 0 BogoMIPS : 108.00 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 In 32 bit mode, the same CPU shows $ cat pi4_32.txt processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 Cavium (64 bit) arm64-build / # cat /proc/cpuinfo processor : 0 BogoMIPS : 200.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 CPU implementer : 0x43 CPU architecture: 8 CPU variant : 0x1 CPU part : 0x0a1 CPU revision : 1 The Cavium does not have any 32 bit instructions. From bug 695854, CPU_FLAGS_ARM: neon is not correct on the Cavium. I suspect that the other 32 bit flags will fail there, as it does not have them but they might work on the Pi, as it does. Other than pointing out the problem, I don't know how to test further. Guidance welcome. -- Regards, Roy Bamford (Neddyseagoon) a member of elections gentoo-ops forum-mods arm64