qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: x86_64 target


From: Fabrice Bellard
Subject: Re: [Qemu-devel] Re: x86_64 target
Date: Tue, 04 Jan 2005 20:56:46 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913

Hi,

I noticed the problem too, but hopefully it is not a regression: for x86_64, I added more features in the CPUID so that Linux accepts to switch to 64 bit, but I did not implement or test them all (SSE, MMX, APIC and PAE). So if you want to make regression tests, the easiest is to diable that in target-i386/helper2.c:109:

--
        env->cpuid_version = (family << 8) | (model << 4) | stepping;
        env->cpuid_features = (CPUID_FP87 | CPUID_DE | CPUID_PSE |
                               CPUID_TSC | CPUID_MSR | CPUID_MCE |
                               CPUID_CX8 | CPUID_PGE | CPUID_CMOV);
#if defined(TARGET_X86_64) && 0
        /* currently not enabled for std i386 because not fully tested */
        env->cpuid_features |= CPUID_APIC | CPUID_FXSR | CPUID_PAE |
            CPUID_SSE | CPUID_SSE2;
#endif
    }
--


I was able to boot win2k succefully with the x86_64 target. The most likely regressions (I am sure there are still some) must be caused by the fact that some values are not properly extended from 32 bits to 64 bits with zeros.

Fabrice.

Alexander E. Patrakov wrote:
Fabrice Bellard wrote:


Hi,

As a small gift for this new year, here is an initial implementation of
the x86_64 target in QEMU. It is a "work in progress" as usual, but it
works enough to boot an x86_64 Linux kernel (I used the one available at
http://bochs.sourceforge.net/guestos/linux.x86-64.bzImage).

Although the x86_64 target works correctly on 32 bit hosts, it is
designed to have the best performances on 64 bit hosts, such as x86_64
or ppc64. The current speed is poor relatively to the i386 emulation
because I did not enable register usage on 64 bit hosts (no time to test
it yet).

The biggest missing part is a full implementation of SSE - I only added
the minimal subset for the Linux kernel. I won't work again on the
x86_64 target in the near future (as I said earlier most of my time is
dedicated on improving the x86 on x86 speed), but anyone is free to
submit patches.


I booted an existing win2k image with the new qemu-system-x86_64 emulator
(just to check that there are no i386 regressions) and the result is a
bluescreen (GOCR'ed and attached).



------------------------------------------------------------------------

*** STOP: 0x0000001E (0xC000001D,0x80432AC9,0xE1008A98,0xF74lB99C)
KMODE_EXCEPTION_NOT_HANDLED

*** Address 80432AC9 base at 80400000, DateStamp 384d9bl7 - ntoskrnl.exe

If this is the first time gou've seen this Stop error screen,
restart gour computer. If this screen appears again, follow
these steps:

Check to be sure gou have adequate disk space. If a driver is
identified in the Stop Message, disable the driver or check
with the manufacturer for driver updates. Try changing video
adapters.

Check with gour hardware vendor for ang BIOS updates. Disable
BIOS memorg options such as caching or shadowing. If gou need
to use Safe Mode to reMove or disable components, restart gour
computer, press F8 to select Advanced Startup Options, and then
select Safe Mode.

Refer to gour Getting Started manual for more information on
troubleshooting Stop errors.


------------------------------------------------------------------------

_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]