mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 12:07:31 +00:00 
			
		
		
		
	 b14df228d7
			
		
	
	
		b14df228d7
		
	
	
	
	
		
			
			Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Stafford Horne <shorne@gmail.com>
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _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
 |