Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40a1db24 authored by Will Deacon's avatar Will Deacon
Browse files

arm64: elf: advertise 8.1 atomic instructions as new hwcap



The ARM v8.1 architecture introduces new atomic instructions to the A64
instruction set for things like cmpxchg, so advertise their availability
to userspace using a hwcap.

Reviewed-by: default avatarSteve Capper <steve.capper@arm.com>
Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent c275f76b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -27,5 +27,6 @@
#define HWCAP_SHA1		(1 << 5)
#define HWCAP_SHA2		(1 << 6)
#define HWCAP_CRC32		(1 << 7)
#define HWCAP_ATOMICS		(1 << 8)

#endif /* _UAPI__ASM_HWCAP_H */
+14 −0
Original line number Diff line number Diff line
@@ -278,6 +278,19 @@ static void __init setup_processor(void)
	if (block && !(block & 0x8))
		elf_hwcap |= HWCAP_CRC32;

	block = (features >> 20) & 0xf;
	if (!(block & 0x8)) {
		switch (block) {
		default:
		case 2:
			elf_hwcap |= HWCAP_ATOMICS;
		case 1:
			/* RESERVED */
		case 0:
			break;
		}
	}

#ifdef CONFIG_COMPAT
	/*
	 * ID_ISAR5_EL1 carries similar information as above, but pertaining to
@@ -457,6 +470,7 @@ static const char *hwcap_str[] = {
	"sha1",
	"sha2",
	"crc32",
	"atomics",
	NULL
};