4.9.4. QEMU Malta Big-endian mode

QEMU run string:

qemu-system-mips -nodefaults -M malta -m 256 \
    -nographic -serial stdio -monitor null \
    -bios barebox-flash-image Little-endian mode

Running little-endian Malta is a bit tricky. In little-endian mode the 32bit words in the boot flash image are swapped, a neat trick which allows bi-endian firmware.

You have to swap words of zbarebox.bin image, e.g.:

echo arch/mips/pbl/zbarebox.bin \
    | cpio --create \
    | cpio --extract --swap --unconditional

QEMU run string:

qemu-system-mipsel -nodefaults -M malta -m 256 \
    -nographic -serial stdio -monitor null \
    -bios barebox-flash-image Using GXemul

GXemul supports MIPS Malta except PCI stuff. You can use GXemul to run little-endian barebox (use gxemul-malta_defconfig).

N.B. There is no need to swap words in zbarebox.bin for little-endian GXemul!

GXemul run string:

gxemul -Q -e malta -M 256 0xbfc00000:barebox-flash-image