unicorn/qemu
Evgeny Yakovlev fa9d708fbd
target-i386: Correct family/model/stepping for Opteron_G3
Current CPU definition for AMD Opteron third generation includes
features like SSE4a and LAHF_LM support in emulated CPUID. These
features are present in K8 rev.E or K10 CPUs and later. However,
current G3 family and model describe 2nd generation K8 cores instead.

This is incorrect but was considered harmless until our tests found a
problem with linux kernels >= 3.10 (and maybe earlier) which specifically
check for Opteron K8 model when parsing CPUID leaf 0x80000001:
http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/amd.c?v=3.16#L552
This code will disable LAHF_LM feature in /proc/cpuinfo if model number
is inconsistent.

This change sets Opteron_G3 family/model/stepping to 16/2/3 which is
a proper Opteron 3rd generation 2350 CPU.

Backports commit 339892d758efb2d0954160d41736a0eac9875d67 from qemu
2018-02-26 04:59:18 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu fpu: add mechanism to check for invalid long double formats 2018-02-26 02:27:40 -05:00
hw qdev: Fix object reference leak in case device.realize() fails 2018-02-25 21:00:26 -05:00
include cpus: pass CPUState to run_on_cpu helpers 2018-02-26 04:54:55 -05:00
qapi qapi: change QmpInputVisitor to QSLIST 2018-02-25 20:02:09 -05:00
qobject util: move declarations out of qemu-common.h 2018-02-22 09:25:48 -05:00
qom qapi: Add new visit_complete() function 2018-02-25 01:20:03 -05:00
scripts qapi: Implement boxed types for commands/events 2018-02-25 20:22:03 -05:00
target-arm arm: add Cortex A7 CPU parameters 2018-02-26 03:44:24 -05:00
target-i386 target-i386: Correct family/model/stepping for Opteron_G3 2018-02-26 04:59:18 -05:00
target-m68k Remove unused function declarations 2018-02-26 02:31:46 -05:00
target-mips target-mips: generate fences 2018-02-26 03:52:35 -05:00
target-sparc sparc: Use g_memdup() instead of g_new0() + memcpy() 2018-02-25 23:19:44 -05:00
tcg tcg/i386: Extend TARGET_PAGE_MASK to the proper type 2018-02-26 03:32:38 -05:00
util cutils: Remove unused vector ifdef block 2018-02-26 02:28:50 -05:00
aarch64.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
aarch64eb.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
accel.c accel: make configure_accelerator return void 2018-02-24 00:31:28 -05:00
arm.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
armeb.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure configure: Always compile with -fwrapv 2018-02-25 23:17:41 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cpu-exec: Rename cpu_resume_from_signal() to cpu_loop_exit_noexc() 2018-02-24 17:25:28 -05:00
cpu-exec.c tcg: rename tb_find_physical() 2018-02-26 02:07:06 -05:00
cpus.c cpus: pass CPUState to run_on_cpu helpers 2018-02-26 04:54:55 -05:00
cputlb.c tcg: Merge GETPC and GETRA 2018-02-26 02:54:44 -05:00
exec.c exec: avoid realloc in phys_map_node_reserve 2018-02-25 19:32:40 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c qapi: Fix memleak in string visitors on int lists 2018-02-25 00:20:34 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
Makefile Makefile: Add a FORCE target 2018-02-24 17:03:51 -05:00
Makefile.objs util: Move qemu-log to utils 2018-02-25 22:17:44 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c memory: Don't use memcpy for ram_device regions 2018-02-25 23:06:36 -05:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
mips64.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
mips64el.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
mipsel.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
powerpc.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -05:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak rules.mak: Don't extract libs from .mo-libs in link command 2018-02-26 02:08:03 -05:00
softmmu_template.h tcg: Merge GETPC and GETRA 2018-02-26 02:54:44 -05:00
sparc.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
sparc64.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00
tcg-runtime.c all: Clean up includes 2018-02-19 01:34:28 -05:00
translate-all.c tcg: Merge GETPC and GETRA 2018-02-26 02:54:44 -05:00
translate-all.h user-exec: Push resume-from-signal code out to handle_cpu_signal() 2018-02-24 17:21:06 -05:00
translate-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
unicorn_common.h qom/cpu: Add MemoryRegion property 2018-02-18 21:54:50 -05:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c hw: explicitly include qemu/log.h 2018-02-24 02:00:45 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h Introduce TCGOpcode for memory barrier 2018-02-26 03:02:41 -05:00