Intel® Simics® Simulator for Intel® FPGAs: User Guide

ID 784383
Date 12/04/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

6.3.7. Text Console Activity Breakpoints

Many simulated machines have a text console. In embedded systems, this typically corresponds to a terminal window hooked up to a serial port on the target machine, so that you can interact with the target system typing commands to the target using the keyboard and getting replies.

Intel® Simics® simulator supports a feature that allows a text console to halt the simulation on the occurrence of a given character sequence in the output. This feature is called a text output breakpoint.

The command used to set a breakpoint in the text console is the following:

bp.console_string.break object "string" [-regexp] [-once]

This command also returns an ID associated with this breakpoint and Intel® Simics® simulator stops when the string argument appears in the output. The string argument is the text that triggers the breakpoint. If –regexp argument is specified, the string argument is interpreted as a regular expression following the Perl style. If the –once argument is specified, the breakpoint is deleted once it triggers.

The following capture shows an example of how this command can be used:

#Intel Simics simulator CLI  
simics> bp.console_string.break agilex.console0.con "Starting kernel ..." 
Breakpoint 1: agilex.console0.con will break on "Starting kernel ..." 

simics> bp.list
--------------------------------------------------------------------
ID                  Description             Enabled    Oneshot Hit
                                                               count 
--------------------------------------------------------------------
2  Console 'agilex.cons.. br.. "Start.."    true       false   0 
--------------------------------------------------------------------
simics> r 
[agilex.console0.con] Breakpoint 1: agilex.console0.con matched "Starting kernel ..." 

simics> bp.list
--------------------------------------------------------------------
ID                  Description              Enabled    Oneshot Hit
                                                               count 
--------------------------------------------------------------------
2   Console 'agilex.cons.. br.. "Start.."    true       false   1 
--------------------------------------------------------------------

In the Serial console, you can see that the log stops just after the string specified is observed on this:

# Target Serial Console

Enabling QSPI at Linux DTB...
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
QSPI clock frequency updated
RSU: Firmware or flash content not supporting RSU
RSU: Firmware or flash content not supporting RSU
RSU: Firmware or flash content not supporting RSU
RSU: Firmware or flash content not supporting RSU
 
Starting kernel ...
Note: The command used to set up the breakpoint can be called directly over the text console object. An example of this is shown next:
# Intel Simics simulator CLI 
simics> agilex.console0.con.bp-break-console-string "Starting kernel ..."