changeset cd107abe79dd in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=cd107abe79dd
description:
        x86: Fix the CPUID Long Mode Address Size function.

        The value in EAX has an 8 bit field for the linear address size and one 
for
        the physical address size when calling that function. A recent change
        implemented it but returned 0xff for both of those fields. That implies 
that
        linear and physical addresses are 255 bits wide which is wrong. When 
using the
        KVM CPU model this causes an error, presumably because some of those 
bits are
        actually reserved, or the CPU or kernel realizes 255 bits is a bad 
value.

        This change makes those values 48.

diffstat:

 src/arch/x86/cpuid.cc |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 1a9e235cab09 -r cd107abe79dd src/arch/x86/cpuid.cc
--- a/src/arch/x86/cpuid.cc     Fri Nov 14 03:54:02 2014 -0500
+++ b/src/arch/x86/cpuid.cc     Sun Nov 16 23:12:42 2014 -0800
@@ -131,7 +131,7 @@
                                      0x69746e65, 0x444d4163);
                 break;
               case LongModeAddressSize:
-                result = CpuidResult(0x0000ffff, 0x00000000,
+                result = CpuidResult(0x00003030, 0x00000000,
                                      0x00000000, 0x00000000);
                 break;
 /*            case SVMInfo:
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to