Commit 3187ef0390b049ee75bf806f13f6e5004e382c03

Authored by ths
1 parent 070ce5ed

Fix firmware word endianness for Malta.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2950 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 12 additions and 0 deletions
hw/mips_malta.c
... ... @@ -791,6 +791,18 @@ void mips_malta_init (int ram_size, int vga_ram_size, int boot_device,
791 791 buf);
792 792 exit(1);
793 793 }
  794 + /* In little endian mode the 32bit words in the bios are swapped,
  795 + a neat trick which allows bi-endian firmware. */
  796 +#ifndef TARGET_WORDS_BIGENDIAN
  797 + {
  798 + uint32_t *addr;
  799 + for (addr = (uint32_t *)(phys_ram_base + bios_offset);
  800 + addr < (uint32_t *)(phys_ram_base + bios_offset + ret);
  801 + addr++) {
  802 + *addr = bswap32(*addr);
  803 + }
  804 + }
  805 +#endif
794 806 }
795 807  
796 808 /* If a kernel image has been specified, write a small bootloader
... ...