1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- .. _OpenRISC-System-emulator:
- OpenRISC System emulator
- ~~~~~~~~~~~~~~~~~~~~~~~~
- QEMU can emulate 32-bit OpenRISC CPUs using the ``qemu-system-or1k`` executable.
- OpenRISC CPUs are generally built into "system-on-chip" (SoC) designs that run
- on FPGAs. These SoCs are based on the same core architecture as the or1ksim
- (the original OpenRISC instruction level simulator) which QEMU supports. For
- this reason QEMU does not need to support many different boards to support the
- OpenRISC hardware ecosystem.
- The OpenRISC CPU supported by QEMU is the ``or1200``, it supports an MMU and can
- run linux.
- Choosing a board model
- ======================
- For QEMU's OpenRISC system emulation, you must specify which board model you
- want to use with the ``-M`` or ``--machine`` option; the default machine is
- ``or1k-sim``.
- If you intend to boot Linux, it is possible to have a single kernel image that
- will boot on any of the QEMU machines. To do this one would compile all required
- drivers into the kernel. This is possible because QEMU will create a device tree
- structure that describes the QEMU machine and pass a pointer to the structure to
- the kernel. The kernel can then use this to configure itself for the machine.
- However, typically users will have specific firmware images for a specific machine.
- If you already have a system image or a kernel that works on hardware and you
- want to boot with QEMU, check whether QEMU lists that machine in its ``-machine
- help`` output. If it is listed, then you can probably use that board model. If
- it is not listed, then unfortunately your image will almost certainly not boot
- on QEMU. (You might be able to extract the filesystem and use that with a
- different kernel which boots on a system that QEMU does emulate.)
- If you don't care about reproducing the idiosyncrasies of a particular
- bit of hardware, such as small amount of RAM, no PCI or other hard disk, etc.,
- and just want to run Linux, the best option is to use the ``virt`` board. This
- is a platform which doesn't correspond to any real hardware and is designed for
- use in virtual machines. You'll need to compile Linux with a suitable
- configuration for running on the ``virt`` board. ``virt`` supports PCI, virtio
- and large amounts of RAM.
- Board-specific documentation
- ============================
- ..
- This table of contents should be kept sorted alphabetically
- by the title text of each file, which isn't the same ordering
- as an alphabetical sort by filename.
- .. toctree::
- :maxdepth: 1
- openrisc/or1k-sim
- openrisc/virt
- Emulated CPU architecture support
- =================================
- .. toctree::
- openrisc/emulation
- OpenRISC CPU features
- =====================
- .. toctree::
- openrisc/cpu-features
|