aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/mips_malta.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index f113e5611d..7336b7b05f 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -791,6 +791,18 @@ void mips_malta_init (int ram_size, int vga_ram_size, int boot_device,
buf);
exit(1);
}
+ /* In little endian mode the 32bit words in the bios are swapped,
+ a neat trick which allows bi-endian firmware. */
+#ifndef TARGET_WORDS_BIGENDIAN
+ {
+ uint32_t *addr;
+ for (addr = (uint32_t *)(phys_ram_base + bios_offset);
+ addr < (uint32_t *)(phys_ram_base + bios_offset + ret);
+ addr++) {
+ *addr = bswap32(*addr);
+ }
+ }
+#endif
}
/* If a kernel image has been specified, write a small bootloader