summary refs log tree commit diff stats
diff options
context:
space:
mode:
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-22 19:35:08 +0000
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-22 19:35:08 +0000
commit8ab944444ad8dab8d78cb6256fe199417a21750d (patch)
tree568ef915eb3fb9ac65e47b6c281b5db66841bf9a
parentb2fa17977f3e9b7ced2cbbe14f6d3c4b3e8e314e (diff)
downloadfocaccia-qemu-8ab944444ad8dab8d78cb6256fe199417a21750d.tar.gz
focaccia-qemu-8ab944444ad8dab8d78cb6256fe199417a21750d.zip
ETRAX-FS: Correct booting of elf linux images from ram.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5515 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--hw/etraxfs.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/hw/etraxfs.c b/hw/etraxfs.c
index 2987c8f717..270857701d 100644
--- a/hw/etraxfs.c
+++ b/hw/etraxfs.c
@@ -122,17 +122,16 @@ void bareetraxfs_init (ram_addr_t ram_size, int vga_ram_size,
         uint64_t entry;
         /* Boots a kernel elf binary, os/linux-2.6/vmlinux from the axis 
            devboard SDK.  */
-        kernel_size = load_elf(kernel_filename, 0,
+        kernel_size = load_elf(kernel_filename, -0x80000000LL,
                                &entry, NULL, NULL);
         bootstrap_pc = entry;
         if (kernel_size < 0) {
             /* Takes a kimage from the axis devboard SDK.  */
             kernel_size = load_image(kernel_filename, phys_ram_base + 0x4000);
             bootstrap_pc = 0x40004000;
-            /* magic for boot.  */
-            env->regs[8] = 0x56902387;
             env->regs[9] = 0x40004000 + kernel_size;
         }
+        env->regs[8] = 0x56902387; /* RAM init magic.  */
     }
     env->pc = bootstrap_pc;