Unverified Commit 164eafa4 authored by Maximilian Luz's avatar Maximilian Luz
Browse files

Improve README

parent 54a2252d
......@@ -7,6 +7,10 @@ See `README.orig.rst` for the original QEMU readme.
## Building QEMU
For a general overview of how to build QEMU on Linux and which dependencies are required, see https://wiki.qemu.org/Hosts/Linux#Building_QEMU_for_Linux.
In the following is a short overview.
Note that you do not need to fully build QEMU, as we only need ARM system emulation (i.e. all other machines can be skipped).
It is recommended to build QEMU in a separate build directory.
In the following, we assume that this directory is `./build/` in the source directory.
If you are building QEMU for the first time, you can create this directory via
......@@ -33,3 +37,20 @@ From the build directory, run
-bios ./path/to/sourceobsw-at91sam9g20_ek-sdram.bin
```
Due to the current board configuration, only the `sdram` image is supported.
### Controlling QEMU via QMP
QEMU can be controlled via the QEMU Machine Protocol (QMP).
This is can be useful for fully automated testing, as it, for example, allows the QEMU machine and simulation framework to be initialized and all device emulators to connect before sending a start command via QMP to actually start the simulated processor.
This way it can be ensured that no initial communication between machine and devices is lost.
For this, you will need to add the `-qmp` and `-S` flags, e.g. like this:
```sh
./arm-softmmu/qemu-system-arm -m isis-obc -monitor stdio \
-bios ./path/to/sourceobsw-at91sam9g20_ek-sdram.bin \
-qmp unix:/tmp/qemu,server -S
```
This opens a Unix domain socket at `/tmp/qemu`.
Commands can be automatically sent to this socket, e.g. from the simulation and testing framework.
Specifying the `-S` option causes QEMU to initially pause the emulation, otherwise it would start immediately.
Once the simulation framework is fully connected, it can then send a QMP `cont` command to continue emulation.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment