summaryrefslogtreecommitdiffstats
path: root/Documentation/boards/mips/qemu-malta.rst
blob: 0c4d6391943606d7228e47ef89d3f9213f57269d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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


Links
-----

  * http://www.linux-mips.org/wiki/Mips_Malta
  * http://www.qemu.org/
  * http://gxemul.sourceforge.net/