--- linux-2.6.9/arch/i386/Kconfig	2004-10-18 23:53:22.000000000 +0200
+++ linux-2.6.9-qemu/arch/i386/Kconfig	2004-12-07 21:56:49.000000000 +0100
@@ -337,6 +337,14 @@ config X86_GENERIC
 
 endif
 
+config QEMU
+	bool "Kernel to run under QEMU"
+	depends on EXPERIMENTAL
+	help
+	  Select this if you want to boot the kernel inside qemu-fast,
+	  the non-mmu version of the x86 emulator.  See
+	  <http://fabrice.bellard.free.fr/qemu/>.  Say N.
+
 #
 # Define implied options from the CPU selection here
 #
--- linux-2.6.9/include/asm-i386/fixmap.h	2004-10-18 23:53:08.000000000 +0200
+++ linux-2.6.9-qemu/include/asm-i386/fixmap.h	2004-12-07 23:16:11.000000000 +0100
@@ -20,7 +20,11 @@
  * Leave one empty page between vmalloc'ed areas and
  * the start of the fixmap.
  */
+#ifdef CONFIG_QEMU
+#define __FIXADDR_TOP   0xa7fff000
+#else
 #define __FIXADDR_TOP	0xfffff000
+#endif
 
 #ifndef __ASSEMBLY__
 #include <linux/kernel.h>
--- linux-2.6.9/include/asm-i386/page.h	2004-10-18 23:53:22.000000000 +0200
+++ linux-2.6.9-qemu/include/asm-i386/page.h	2004-12-07 21:56:49.000000000 +0100
@@ -121,12 +121,19 @@ extern int sysctl_legacy_va_layout;
 #endif /* __ASSEMBLY__ */
 
 #ifdef __ASSEMBLY__
+#ifdef CONFIG_QEMU
+#define __PAGE_OFFSET		(0x90000000)
+#else
 #define __PAGE_OFFSET		(0xC0000000)
+#endif /* QEMU */
+#else
+#ifdef CONFIG_QEMU
+#define __PAGE_OFFSET		(0x90000000UL)
 #else
 #define __PAGE_OFFSET		(0xC0000000UL)
+#endif /* QEMU */
 #endif
 
-
 #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
 #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)
 #define MAXMEM			(-__PAGE_OFFSET-__VMALLOC_RESERVE)
--- linux-2.6.9/include/asm-i386/param.h	2004-10-18 23:53:24.000000000 +0200
+++ linux-2.6.9-qemu/include/asm-i386/param.h	2004-12-07 21:56:49.000000000 +0100
@@ -2,7 +2,12 @@
 #define _ASMi386_PARAM_H
 
 #ifdef __KERNEL__
-# define HZ		1000		/* Internal kernel timer frequency */
+# include <linux/config.h>
+# ifdef CONFIG_QEMU
+#  define HZ		100
+# else
+#  define HZ		1000		/* Internal kernel timer frequency */
+# endif
 # define USER_HZ	100		/* .. some user interfaces are in "ticks" */
 # define CLOCKS_PER_SEC		(USER_HZ)	/* like times() */
 #endif
