Fix firmware word endianness for Malta.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2950 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
ths 2007-06-07 12:17:52 +00:00
parent 070ce5edc3
commit 3187ef0390
1 changed files with 12 additions and 0 deletions

View File

@ -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