Date: Tue, 11 Mar 2014 13:19:45 +1300 From: Andrew Turner <andrew@fubar.geek.nz> To: freebsd-arm@freebsd.org Subject: Updating the minimum armv6 requirement Message-ID: <20140311131945.01f4c9b2@bender>
next in thread | raw e-mail | index | archive | help
I've been looking at code that uses 64-bit C++ atomic operations on armv6. These require the ldrexd and strexd instructions that are present on armv6k. The problem is there is a mismatch between clang and binutils. Clang thinks armv6k is an arm1136jf-s and sets the cpu in the asm output as one. Binutils will see the cpu and think clang means an earlier armv6 instruction set that lacks the above instructions. In this case both are correct as prior to the r1p0 release of the arm1136jf-s core it was an armv6 core, and as of the r1p0 release it became an armv6k core. All of this is uninteresting for FreeBSD as the only ARMv6 SoC we run on appears to be the bcm2835, and maybe some Marvell parts. As the bcm2835 is an arm1176jzf-s and we are unlikely to get a new ARMv6 port I am suggesting we make this the minimum requirement. It appears NetBSD has the same requirement as clang will set the cpu to arm1176jzf-s when building for NetBSD and armv6. My proposal is to have the same CPU requirement as NetBSD for armv6. Is anyone working on an SoC that would be affected by this? Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140311131945.01f4c9b2>