diff options
author | Michael Brown | 2006-08-28 03:58:52 +0200 |
---|---|---|
committer | Michael Brown | 2006-08-28 03:58:52 +0200 |
commit | 6e5ffefd79db740a66e165696663dad28e458cf9 (patch) | |
tree | cfc220531a38e8563a2395c7da811d5049fa19f0 /contrib | |
parent | Add --enable-show-ips; it's useful when using the profiling code. (diff) | |
download | ipxe-6e5ffefd79db740a66e165696663dad28e458cf9.tar.gz ipxe-6e5ffefd79db740a66e165696663dad28e458cf9.tar.xz ipxe-6e5ffefd79db740a66e165696663dad28e458cf9.zip |
Document requisite patch for qemu
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/bochs/README.qemu | 16 | ||||
-rw-r--r-- | contrib/bochs/qemu-patch | 26 |
2 files changed, 38 insertions, 4 deletions
diff --git a/contrib/bochs/README.qemu b/contrib/bochs/README.qemu index ae2984ca..e72c8841 100644 --- a/contrib/bochs/README.qemu +++ b/contrib/bochs/README.qemu @@ -14,14 +14,21 @@ To get qemu running is fairly simple: cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \ co qemu +2a. Patch the qemu code. There is currently a bug that causes qemu to + execute Etherboot incredibly slowly. The bug seems to be related + to the relative prioritisation of CPU and I/O operations within + qemu. This patch (which I found via Google) isn't a proper fix, + but it does work around the problem: + patch -p0 < qemu-patch + 3. Configure qemu with pushd qemu - ./configure --enable-system --enable-profiler + ./configure --enable-system popd - Note that qemu will not compile with gcc4; if your system's - default compiler is gcc4 then specify the path to gcc3 using - e.g. --cc=gcc-3.3.6 + Note that qemu will not compile with gcc4; if your system's + default compiler is gcc4 then specify the path to gcc3 using + e.g. --cc=gcc-3.3.6 4. Build qemu: make -C qemu @@ -52,6 +59,7 @@ To get qemu running is fairly simple: popd 9. Start qemu + export SDL_VIDEO_X11_DGAMOUSE=0 ./qemu/i386-softmmu/qemu -L qemu/pc-bios \ -net nic,model=rtl8139 -net tap,ifname=tap0 \ -boot a -fda ../../src/bin/rtl8139.dsk diff --git a/contrib/bochs/qemu-patch b/contrib/bochs/qemu-patch new file mode 100644 index 00000000..5fb6c09e --- /dev/null +++ b/contrib/bochs/qemu-patch @@ -0,0 +1,26 @@ +Index: qemu/cpu-exec.c +=================================================================== +RCS file: /sources/qemu/qemu/cpu-exec.c,v +retrieving revision 1.84 +diff -u -r1.84 cpu-exec.c +--- qemu/cpu-exec.c 29 Jul 2006 19:09:31 -0000 1.84 ++++ qemu/cpu-exec.c 28 Aug 2006 01:54:15 -0000 +@@ -788,6 +788,18 @@ + cpu_loop_exit(); + } + #endif ++#if 1 ++#define MIN_CYCLE_COUNT 100 ++ { ++ static int cycle_count; ++ ++ if (++cycle_count > MIN_CYCLE_COUNT) { ++ cycle_count = 0; ++ env->exception_index = EXCP_INTERRUPT; ++ cpu_loop_exit(); ++ } ++ } ++#endif + } + } else { + env_to_regs(); |