Questions tagged [simics]

Simics is an efficient, instrumented, system level instruction set simulator.

Simics is a fast system-level virtual platform that can simulate any electronic system. It scales from single cores running firmware to very large heterogeneous multi-core multi-processor multi-board configurations.

Simics can simulate arbitrary systems including many different types of processors at once (such as big Intel cores along with embedded firmware engines, or networks containing ARM, Intel, and other types of SoCs). Simics is built to be fast, and for Intel-on-Intel it uses VT-x to reach speeds close to common virtual machine systems. Multiple networked machines can be simulated inside a single Simics simulation process, and run in parallel using multicore hosts.

Simics models include both processor cores and the peripheral devices, allowing the execution of unmodified real-world software including both boot-up firmware, BIOS and UEFI, and full software stacks including hypervisors.

The end uses for Simics include pre-silicon software development, debug, and testing, program analysis, computer architecture research, network simulation, and more. Simics has very powerful built-in instrumentation, tracing, inspection, and debug features that operate on the target software without disturbing its execution in any way. Simics applies to software at all levels: firmware, boot code, operating systems, drivers, hypervisors, and user-level applications.

Simics is developed by Intel, and also sold commercially by Wind River.

56 questions
2
votes
3 answers

How to boot legacy BIOS (coreboot) in Simics QSP client core?

I'm using Simics 6.0.83 (Public Release Preview) with target defined based on qsp-client-core.simics and trying to boot coreboot binary as legacy BIOS. Configuration I'm trying: # In order to run this, the QSP-x86 (2096), QSP-CPU (8112) and #…
Piotr Król
  • 3,350
  • 2
  • 23
  • 25
2
votes
1 answer

Simics Eclipse not found. Please install package 1001

I downloaded Intel-Simics-Public-Release-Preview and have it installed on a CentOS 8.4 box, I went to my-simics-project-1 directory, there is a simics-eclipse, but when I run it, it reports an error: Simics Eclipse not found. Please install package…
YKG
  • 107
  • 5
2
votes
1 answer

In simics, what is the command to print virtual to physical memory map?

When debugging a kernel running on the simics-x86-core-i7-x58-ich10 target, how to print the physical memory map? memory-map seems to print only the physical memory space mapping for objects (ram, apic, vga, etc.). l2p print the mapping for a…
Mahouk
  • 902
  • 9
  • 28
1
vote
1 answer

Memory transaction exception forwarding in DML - Sim_PE_Stall_Cpu

A user has a register in a bank implementing a read method through the io_memory interface. The memory operation is served by a memory link returning Sim_PE_Stall_Cpu on the first attempt. At first glance, he doesn’t see a way to propagate the stall…
Juan Cruz
  • 21
  • 2
1
vote
1 answer

Runtime frequency scaling on target machine in Simics

I'm working with a scheduling and resource management framework that essentially maps out the most energy efficient execution place and frequency for different types of applications. When attempting to use the framework on my Simics target machine,…
carlwiede
  • 13
  • 2
1
vote
1 answer

How do I properly model internal memory in my serial flash device?

I am writing a model for a serial flash device. I wonder how do I best model the internal memory? I would like the memory size to be configurable by the user since I intend to reuse this model for different serial flashes. It also needs to retain…
1
vote
1 answer

How can I unit test a specific DML method?

I'm writing some common DML code that contains a fairly complex method, something like: saved uint32 checksum_ini; method calculate_checksum(bytes_t data) -> (uint32 sum) { uint32 result = checksum_ini; for (int i = 0; i < data.size; ++i) { …
Erik Carstensen
  • 634
  • 4
  • 14
1
vote
1 answer

Is there a way emulating real firmware using simcs?

I am trying to emulate real firmware using simcs. I typed the following commands. simics>run-command-file targets/qsp-x86/firststeps.simics bios_image=targets/real_firmware.bin simics>run After the command, there is no change on command line,…
Aiden
  • 27
  • 8
1
vote
1 answer

Does simics simulate the Intel Converged Security & Management Engine (CSME)?

I would like to use Simics to test out Intel Atom Verified Boot & Measured Boot with Boot Guard without potentially breaking my development hardware (which would be a permanent breakage if I mis-fuse it). I believe that the initial boot block (IBB)…
HYM4RC
  • 9
  • 2
1
vote
2 answers

Breakpoint not working in Simics 2021.24 if the target was compiled in a different machine

I compiled a helloworld program in Ubuntu 20.04 LTS, I want to debug it in Simics, I set a breakpoint on main, but Simics won't break. I tried compile it inside QSP-x86, that binary would work. From my understanding, Simics could break on main no…
YKG
  • 107
  • 5
1
vote
2 answers

How can I read from port IO in Simics?

I can see from help-search that there's a ".read", but I don't know how to find the name for the CPU.
OOO
  • 21
  • 3
1
vote
1 answer

Why is the SMM behavior different between firststeps.simics and qsp-client-core.simics?

If I set a SMM breakpoint in firststeps.simics and examine the registers, it shows the expected RIP = 0x8000 and CS base = 0x30000. But if I do the same thing in qsp-client-core.simics, it shows RIP = 0xdffebe74 and CS base = 0, and I don't…
OOO
  • 21
  • 3
1
vote
1 answer

Is there a way to print PCI configuration address space by Bus:Device:Function Offset in Simics?

I found that I can do board.mb.socket_pci_conf[0].read 0 2 To read from Bus 0, Device 0, Function 0, Offset 0, 2 bytes. But I haven't been able to find the right way to encode arbitrary BDFOs. (And after offset 0x1FFF it starts saying that there's…
Rohan
  • 33
  • 2
1
vote
2 answers

Is it possible to see smbase in simics?

This post showed me how to see stuff in SMM. And I notice that Simics shows other normally "hidden" registers like the segment descriptor shadow values, which only get updated indirectly. So is it possible to see the "smbase" register in Simics?
Jimmy Wu
  • 149
  • 7
1
vote
1 answer

Is there a way to change to a PCH-based simulation in Simics 2021.24?

This question: How do I use the "Simics Training" and "QSP CPU" packages? answered how to change the CPU. But I tried the same-ish steps of searching by strings to try and find an alternative to the default northbridge/southbridge, but I didn't see…
Jimmy Wu
  • 149
  • 7