diff -Nurp qemu-0.8.2/VERSION qemu-0.8.2-versatilepb_920t/VERSION
--- qemu-0.8.2/VERSION	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/VERSION	2007-01-09 19:45:33.000000000 +0100
@@ -1 +1 @@
-0.8.2
\ No newline at end of file
+qemu-0.8.2-versatilepb_920t
diff -Nurp qemu-0.8.2/hw/versatilepb.c qemu-0.8.2-versatilepb_920t/hw/versatilepb.c
--- qemu-0.8.2/hw/versatilepb.c	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/hw/versatilepb.c	2007-01-09 19:34:09.000000000 +0100
@@ -338,7 +338,7 @@ static vpb_sys_state *vpb_sys_init(uint3
 static void versatile_init(int ram_size, int vga_ram_size, int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
-                     const char *initrd_filename, int board_id)
+                     const char *initrd_filename, int board_id, int cpu_model)
 {
     CPUState *env;
     void *pic;
@@ -350,7 +350,7 @@ static void versatile_init(int ram_size,
     int done_smc = 0;
 
     env = cpu_init();
-    cpu_arm_set_model(env, ARM_CPUID_ARM926);
+    cpu_arm_set_model(env, cpu_model);
     /* ??? RAM shoud repeat to fill physical memory space.  */
     /* SDRAM at address zero.  */
     cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);
@@ -446,7 +446,18 @@ static void vpb_init(int ram_size, int v
     versatile_init(ram_size, vga_ram_size, boot_device,
                    ds, fd_filename, snapshot,
                    kernel_filename, kernel_cmdline,
-                   initrd_filename, 0x183);
+                   initrd_filename, 0x183, ARM_CPUID_ARM926);
+}
+
+static void vpb_init_920(int ram_size, int vga_ram_size, int boot_device,
+                         DisplayState *ds, const char **fd_filename, int snapshot,
+                         const char *kernel_filename, const char *kernel_cmdline,
+                         const char *initrd_filename)
+{
+    versatile_init(ram_size, vga_ram_size, boot_device,
+                   ds, fd_filename, snapshot,
+                   kernel_filename, kernel_cmdline,
+                   initrd_filename, 0x183, ARM_CPUID_ARM920);
 }
 
 static void vab_init(int ram_size, int vga_ram_size, int boot_device,
@@ -457,7 +468,7 @@ static void vab_init(int ram_size, int v
     versatile_init(ram_size, vga_ram_size, boot_device,
                    ds, fd_filename, snapshot,
                    kernel_filename, kernel_cmdline,
-                   initrd_filename, 0x25e);
+                   initrd_filename, 0x25e, ARM_CPUID_ARM926);
 }
 
 QEMUMachine versatilepb_machine = {
@@ -466,6 +477,12 @@ QEMUMachine versatilepb_machine = {
     vpb_init,
 };
 
+QEMUMachine versatilepb_920_machine = {
+    "versatilepb_920",
+    "ARM Versatile/PB (ARM920T)",
+    vpb_init_920,
+};
+
 QEMUMachine versatileab_machine = {
     "versatileab",
     "ARM Versatile/AB (ARM926EJ-S)",
diff -Nurp qemu-0.8.2/target-arm/cpu.h qemu-0.8.2-versatilepb_920t/target-arm/cpu.h
--- qemu-0.8.2/target-arm/cpu.h	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/target-arm/cpu.h	2007-01-09 19:29:25.000000000 +0100
@@ -212,6 +212,7 @@ void cpu_arm_set_model(CPUARMState *env,
 
 #define ARM_CPUID_ARM1026 0x4106a262
 #define ARM_CPUID_ARM926  0x41069265
+#define ARM_CPUID_ARM920  0x41129200
 
 #if defined(CONFIG_USER_ONLY)
 #define TARGET_PAGE_BITS 12
diff -Nurp qemu-0.8.2/target-arm/helper.c qemu-0.8.2-versatilepb_920t/target-arm/helper.c
--- qemu-0.8.2/target-arm/helper.c	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/target-arm/helper.c	2007-01-09 20:05:48.000000000 +0100
@@ -40,6 +40,7 @@ void cpu_arm_set_model(CPUARMState *env,
 {
     env->cp15.c0_cpuid = id;
     switch (id) {
+    case ARM_CPUID_ARM920:
     case ARM_CPUID_ARM926:
         set_feature(env, ARM_FEATURE_VFP);
         env->vfp.xregs[ARM_VFP_FPSID] = 0x41011090;
diff -Nurp qemu-0.8.2/vl.c qemu-0.8.2-versatilepb_920t/vl.c
--- qemu-0.8.2/vl.c	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/vl.c	2007-01-09 19:44:50.000000000 +0100
@@ -5449,6 +5449,7 @@ void register_machines(void)
     qemu_register_machine(&integratorcp926_machine);
     qemu_register_machine(&integratorcp1026_machine);
     qemu_register_machine(&versatilepb_machine);
+    qemu_register_machine(&versatilepb_920_machine);
     qemu_register_machine(&versatileab_machine);
 #elif defined(TARGET_SH4)
     qemu_register_machine(&shix_machine);
diff -Nurp qemu-0.8.2/vl.h qemu-0.8.2-versatilepb_920t/vl.h
--- qemu-0.8.2/vl.h	2006-07-22 19:23:34.000000000 +0200
+++ qemu-0.8.2-versatilepb_920t/vl.h	2007-01-09 19:39:08.000000000 +0100
@@ -1082,6 +1082,7 @@ extern QEMUMachine integratorcp1026_mach
 
 /* versatilepb.c */
 extern QEMUMachine versatilepb_machine;
+extern QEMUMachine versatilepb_920_machine;
 extern QEMUMachine versatileab_machine;
 
 /* ps2.c */

