= Simulators = Like other operating systems targetting the embedded application domain space, RTEMS is designed to be run on a wide variety of target boards. Some of Board Support Packages provided with RTEMS correspond to simulated boards. Some of these simulators simulate real target hardware including all peripherals while others provide a basic synthethic target environment which corresponds to a basic CPU with simple simulator peripherals. = Simulators Known to Work Well = * i386/pc386 -- This is a BSP for PCs which can be tested by simulators and virtual environments such as Bochs, VMWare, and QEMU. [wiki:TBR/UserManual/QEMU QEMU] provides PC emulation and is often used to test RTEMS. * mips/jmr3904 - Toshiba MIPS TX3904 simulator in gdb. * powerpc/psim -- synthetic PPC603 based-board simulated in gdb. See [wiki:TBR/BSP/Psim PSIM BSP] for more information * sparc/erc32 -- BSP for ERC32 with and without floating point unit which is simulated by [http://www.gaisler.com/ TSIM]. * sparc/sis -- BSP for ERC32 with and without floating point unit which is simulated by the SPARC onstruction Simulator (SIS) in gdb. * arm/edb7312 -- [http://www.skyeye.org SkyEye] Skyeye is a highly configurable multi-architecture emulator capable of supporting various ARM chip families (w/ or w/o MMU support), LCD and network (ne2k like). Very configurable by simple editing skyeye.conf in the current directory. See [wiki:TBR/BSP/Edb7312 edb7312] for details on how to run this simulator using that BSP. See the RTEMS Wiki pacge [wiki:Developer/Simulators/SkyEye SkyEye] for more information on the various BSPs we hope can run on it. * bin/ezKit553 -- [http://www.skyeye.org SkyEye] Skyeye also supports the Blackfin architecture and this BSP should be able to run on it. It is still preliminary though. See the RTEMS Wiki pacge [wiki:Developer/Simulators/SkyEye SkyEye] for more information on the various BSPs we hope can run on it. = Simulators with Issues = These are simulators which are known to work with RTEMS but require something that is above and beyond the call of duty. The simulator may be using unsubmitted patches, slower than molasses running uphill, not enough features, or something even more unique. If you can help one of these out, pitch in. It would be appreciated. = Fixable = * h8300/h8sim -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts. * m68k/mcf5206elite -- free [http://www.slicer.ca/coldfire/ Coldfire] simulator. It is VERY slow and does not appear to be easy to automate running of tests but it does work and is worth spot checking the BSP with. It may be merged into SkyEye eventually. Version 0.3.0 of this emulator is capable of running mcf5206elite BSP hello world example. For more details see: http://www.rtems.com/ml/rtems-users/2006/january/msg00060.html. This would be a good project. * m68k/sim68000 and m68k/simcpu32 -- BSP for mc68000 configuration of BSVC simulator. Simulator is no longer supports, has licensing which prevented it from merging into gdb and requires a third-party patch to support CPU32 and redirecting console to stdout. * sh/shsim and sh/simsh7045 -- BSP for sh7032 as simulated in gdb. Joel has not used these and recalls there being an unmerged patch against an old gdb version. = Unlikely to be Worth Fixing = * arm/armulator -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts. * c4x/c3xsim and c4x/c4xsim -- simulator for C30/C31/c32 CPU models and all peripherals in gdb with appropriate patch against a very old gdb. * hppa1.1/simhppa -- HP proprietary simulator of HP7100 CPU. * i960/i960sim -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts. * or32/orp -- simulator provided by OpenCores project. OpenCores CPU has been dropped from current RTEMS sources due to apparent inactivity of CPU developers. = Simulators Which Need Further Investigation = There are several free/open source software emulators out there which might be capable of running RTEMS. These are not supported and we would like to hear about any user success/failure to get them running with RTEMS, even better if you provide appropriate BSP changes to get recent RTEMS running on one of them. The list of emulators looks: * [http://www.qemu.org qemu] -- the most promising: provides system emulation for x86/amd64/powerpc/sparc, recent code base added coldfire, sparc64 and mips.It is possible to use pc386 BSP running succesfully on top of Qemu/x86 emulator including full network emulation. Some users might even consider trying RTEMS PowerPC port running on top of Qemu/PowerPC system emulation layer. Probably PREP mode is the most close, since it support one of the RTEMS supported board (eMesquite MCP750) * [http://www.skyeye.org SkyEye] -- supports a variety of ARM CPU models. Shuld be possible to create a set of simple BSPs using this. Seek the RTEMS Wiki Page [wiki:Developer/Simulators/SkyEye SkyEye] for more information. * [http://linux.maruhn.com/sec/xcopilot.html xcopilot]- Palm Pilot simulator. Should be a MC68328 Dragonball. Looks very nice at David McCollough's page at [http://www.cyberguard.info/snapgear/tb20020807.html] * http://pearpc.sf.net -- the other PowerPC emulator, which suport Mac OS X and Darwin OS * http://gavare.se/gxemul/ -- this emulator provides a lot of MIPS hardware emulation, but also starts with ARM/PowerPC in recent releases. It seems it might be interesting target also because of simulated dec21134 NIC and because of its ability to load ELFs directly. Partially tested are mcp750 BSP binaries where at least part of initialization works well.