Difference between revisions of "Supported Architectures"
| Line 5: | Line 5: | ||
! Maintainer  | ! Maintainer  | ||
! Level of ISA support  | ! Level of ISA support  | ||
| − | ! OS support  | + | ! Full-system OS support  | 
! Test coverage  | ! Test coverage  | ||
! Tool chain availability  | ! Tool chain availability  | ||
Revision as of 03:28, 13 April 2017
gem5 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). An overview of the architecture support is given in the table below.
| ISA | Maintainer | Level of ISA support | Full-system OS support | Test coverage | Tool chain availability | Linux kernel availability | 
|---|---|---|---|---|---|---|
| ALPHA | None | High | Linux | Medium | Low | Low | 
| ARM | Andreas Sandberg | High | Linux, BSD, Android | High | High | High | 
| MIPS | None | Low | None | Low | Medium | Medium | 
| POWER | None | Low | None | Low | Medium | Medium | 
| RISC-V | Alec Roelke | Medium | None | Low | Low | Low | 
| SPARC | None | Low | None | Low | Low | Low | 
| X86 | Tony Gutierrez | Medium | Linux, BSD | Medium | High | High | 
Syscall Emulation
Modifying gem5 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 gem5 (or gem5 executing ld.so) is possible, but it hasn't been implemented.
Full-System Simulation
- ALPHA -- Linux, FreeBSD
 - ARM -- Bare metal, FreeBSD and 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