diff --git a/src/backend/cpu/platform/BasicCpuInfo_arm.cpp b/src/backend/cpu/platform/BasicCpuInfo_arm.cpp index 318928cd..4eb9864a 100644 --- a/src/backend/cpu/platform/BasicCpuInfo_arm.cpp +++ b/src/backend/cpu/platform/BasicCpuInfo_arm.cpp @@ -26,11 +26,14 @@ #include -#if __ARM_FEATURE_CRYPTO && !defined(__APPLE__) +#if __ARM_FEATURE_CRYPTO && !(defined(__APPLE__) || defined(__FreeBSD__)) # include # include #endif +#if defined (__FreeBSD__) +#include +#endif #include "backend/cpu/platform/BasicCpuInfo.h" #include "3rdparty/rapidjson/document.h" @@ -62,8 +65,14 @@ xmrig::BasicCpuInfo::BasicCpuInfo() : # endif # if __ARM_FEATURE_CRYPTO -# if !defined(__APPLE__) +# if !(defined(__APPLE__) || defined(__FreeBSD__)) m_flags.set(FLAG_AES, getauxval(AT_HWCAP) & HWCAP_AES); +# elif defined(__FreeBSD__) + uint64_t id_aa64isar0; + id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1); + if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_BASE) { + m_flags.set(FLAG_AES, true); + } # else m_flags.set(FLAG_AES, true); # endif