4.17.5. QEMU Malta

Building barebox for Qemu Malta:

export ARCH=mips
make ARCH=mips qemu-malta_defconfig      # 32-bit, big-endian
make ARCH=mips qemu-maltael_defconfig    # 32-bit, little-endian
make ARCH=mips qemu-malta64_defconfig    # 64-bit, big-endian
make ARCH=mips qemu-malta64el_defconfig  # 64-bit, little-endian

4.17.5.1. Big-endian mode

QEMU run string:

qemu-system-mips -nodefaults -M malta -m 256 \
    -device VGA -serial stdio -monitor null \
    -bios ./images/barebox-qemu-malta.img

4.17.5.2. Little-endian mode

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

The barebox build generates a second ./images/barebox-qemu-malta.img.swapped image that can be used in this case, e.g.:

qemu-system-mipsel -nodefaults -M malta -m 256 \
    -device VGA -serial stdio -monitor null \
    -bios ./images/barebox-qemu-malta.img.swapped

4.17.5.3. 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 the barebox binary for little-endian GXemul!

GXemul run string:

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