aboutsummaryrefslogtreecommitdiff
path: root/util/cpuinfo-ppc.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/cpuinfo-ppc.c')
-rw-r--r--util/cpuinfo-ppc.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/util/cpuinfo-ppc.c b/util/cpuinfo-ppc.c
index b2d8893..4d3d3aa 100644
--- a/util/cpuinfo-ppc.c
+++ b/util/cpuinfo-ppc.c
@@ -6,11 +6,21 @@
#include "qemu/osdep.h"
#include "host/cpuinfo.h"
-#include <asm/cputable.h>
-#ifdef CONFIG_GETAUXVAL
+#ifdef CONFIG_LINUX
+# include <asm/cputable.h>
+# ifdef CONFIG_GETAUXVAL
+# include <sys/auxv.h>
+# else
+# include "elf.h"
+# endif
+#endif
+#if defined(CONFIG_ELF_AUX_INFO)
# include <sys/auxv.h>
-#else
-# include "elf.h"
+# include <machine/cpu.h>
+# ifndef PPC_FEATURE2_ARCH_3_1
+# define PPC_FEATURE2_ARCH_3_1 0
+# endif
+# define PPC_FEATURE2_VEC_CRYPTO PPC_FEATURE2_HAS_VEC_CRYPTO
#endif
unsigned cpuinfo;
@@ -19,16 +29,17 @@ unsigned cpuinfo;
unsigned __attribute__((constructor)) cpuinfo_init(void)
{
unsigned info = cpuinfo;
- unsigned long hwcap, hwcap2;
if (info) {
return info;
}
- hwcap = qemu_getauxval(AT_HWCAP);
- hwcap2 = qemu_getauxval(AT_HWCAP2);
info = CPUINFO_ALWAYS;
+#if defined(CONFIG_LINUX) || defined(CONFIG_ELF_AUX_INFO)
+ unsigned long hwcap = qemu_getauxval(AT_HWCAP);
+ unsigned long hwcap2 = qemu_getauxval(AT_HWCAP2);
+
/* Version numbers are monotonic, and so imply all lower versions. */
if (hwcap2 & PPC_FEATURE2_ARCH_3_1) {
info |= CPUINFO_V3_1 | CPUINFO_V3_0 | CPUINFO_V2_07 | CPUINFO_V2_06;
@@ -58,6 +69,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
}
}
}
+#endif
cpuinfo = info;
return info;