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

ID 784383
Date 11/16/2024
Public
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 system.board.fpga.soc_inst.hps_subsys.agilex_hps.console0.con "Starting kernel ..." 
Breakpoint 1: agilex.console0.con will break on "Starting kernel ..." 

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

simics> bp.list
---------------------------------------------------------------------------
ID                  Description                Enabled    Oneshot Hit count 
---------------------------------------------------------------------------
2   Console 'system...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
## Flattened Device Tree blob at 86000000
   Booting using the fdt blob at 0x86000000
Working FDT set to 86000000
   Loading Device Tree to 00000000ffb52000, end 00000000ffb5a635 ... OK
Working FDT set to ffb52000

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> system.board.fpga.soc_inst.hps_subsys.agilex_hps.console0.con.bp-break-console-string "Starting kernel ..."