Difference between revisions of "Supported Architectures"
From gem5
					
										
					
					 (→Syscall Emulation)  | 
				|||
| Line 5: | Line 5: | ||
Modifying M5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation.    | Modifying M5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation.    | ||
| − | *'''ALPHA''' --   | + | *'''ALPHA''' -- Linux  | 
*'''SPARC''' -- Linux, Solaris    | *'''SPARC''' -- Linux, Solaris    | ||
*'''MIPS''' -- Linux  | *'''MIPS''' -- Linux  | ||
| Line 11: | Line 11: | ||
*'''x86''' -- Linux  | *'''x86''' -- Linux  | ||
*'''Power''' -- Linux  | *'''Power''' -- Linux  | ||
| + | *'''RISC-V''' -- Linux  | ||
Revision as of 17:03, 6 December 2016
M5 is a flexible architecture simulator that supports a number of ISAs and operating systems for both full-system simulation (booting an entire operating system) and syscall emulation (running one or more applications by emulating syscalls). A complete list of supported combinations is listed below.
Syscall Emulation
Modifying M5 to support additional ISAs in syscall emulation mode is far easier than for full-system simulation. As such all new architectures to-date have used syscall emulation as a stepping stone to full-system simulation.
- ALPHA -- Linux
 - SPARC -- Linux, Solaris
 - MIPS -- Linux
 - ARM -- Linux
 - x86 -- Linux
 - Power -- Linux
 - RISC-V -- Linux
 
Note: Newer versions of Solaris do not support static linking so Solaris syscall emulation isn't used. Implementation of a dynamic linker in M5 (or M5 executing ld.so) is possible, but it hasn't been implemented.
Full-System Simulation
- ALPHA -- Linux, FreeBSD
 - ARM -- Bare metal & Linux support with both detailed, minor (in-order) and simple CPU models for AArch32 or AArch64 (32-bit or 64-bit) ARM.
 - SPARC -- Solaris
 - MIPS -- Linux and bare metal support started, lots of work needed
 - x86/64 -- In progress, actively being worked on