57 lines
1.8 KiB
Diff
57 lines
1.8 KiB
Diff
|
From 63697bbdfd6ccede902ce09cb0c4f860e0fdf099 Mon Sep 17 00:00:00 2001
|
||
|
From: Alexander Graf <agraf@suse.de>
|
||
|
Date: Mon, 23 Jul 2012 10:24:14 +0200
|
||
|
Subject: [PATCH] linux-user: Fake /proc/cpuinfo
|
||
|
|
||
|
Fedora 17 for ARM reads /proc/cpuinfo and fails if it doesn't contain
|
||
|
ARM related contents. This patch implements a quick hack to expose real
|
||
|
/proc/cpuinfo data taken from a real world machine.
|
||
|
|
||
|
The real fix would be to generate at least the flags automatically based
|
||
|
on the selected CPU. Please do not submit this patch upstream until this
|
||
|
has happened.
|
||
|
|
||
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||
|
---
|
||
|
linux-user/syscall.c | 20 ++++++++++++++++++++
|
||
|
1 files changed, 20 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||
|
index b0566cd..2efd7f4 100644
|
||
|
--- a/linux-user/syscall.c
|
||
|
+++ b/linux-user/syscall.c
|
||
|
@@ -4980,6 +4980,25 @@ static int open_self_stat(void *cpu_env, int fd)
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
+static int open_cpuinfo(void *cpu_env, int fd)
|
||
|
+{
|
||
|
+ dprintf(fd,
|
||
|
+"Processor : ARMv7 Processor rev 5 (v7l)\n"
|
||
|
+"BogoMIPS : 799.53\n"
|
||
|
+"Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3\n"
|
||
|
+"CPU implementer : 0x41\n"
|
||
|
+"CPU architecture: 7\n"
|
||
|
+"CPU variant : 0x2\n"
|
||
|
+"CPU part : 0xc08\n"
|
||
|
+"CPU revision : 5\n"
|
||
|
+"\n"
|
||
|
+"Hardware : Genesi Efika MX (Smarttop)\n"
|
||
|
+"Revision : 51030\n"
|
||
|
+"Serial : 0000000000000000\n");
|
||
|
+
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+
|
||
|
static int open_self_auxv(void *cpu_env, int fd)
|
||
|
{
|
||
|
TaskState *ts = ((CPUArchState *)cpu_env)->opaque;
|
||
|
@@ -5020,6 +5039,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
|
||
|
{ "/proc/self/maps", open_self_maps },
|
||
|
{ "/proc/self/stat", open_self_stat },
|
||
|
{ "/proc/self/auxv", open_self_auxv },
|
||
|
+ { "/proc/cpuinfo", open_cpuinfo },
|
||
|
{ NULL, NULL }
|
||
|
};
|
||
|
|