mips_malta: cap BIOS endian swap length at 0x3e0000 bytes

This preserves the final sector of the pflash which is used by YAMON to
hold environment variables. If the endianness of the environment data
is swapped then YAMON will fail to load environment variables from
pflash.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Paul Burton 2013-06-14 08:30:46 +01:00 committed by Aurelien Jarno
parent 02bccc7796
commit 1817f56a83

View File

@ -978,7 +978,7 @@ void mips_malta_init(QEMUMachineInitArgs *args)
if (!addr) { if (!addr) {
addr = memory_region_get_ram_ptr(bios); addr = memory_region_get_ram_ptr(bios);
} }
end = (void *)addr + bios_size; end = (void *)addr + MIN(bios_size, 0x3e0000);
while (addr < end) { while (addr < end) {
bswap32s(addr); bswap32s(addr);
addr++; addr++;