Intel® System Debugger User Guide
Capture and Decode Early-boot Intel® Converged Security and Management Engine (Intel® CSME) Traces in a Cold Boot Scenario
Platform boot failures can be quickly analyzed with the help of Intel® CSME traces captured using Intel® System Debugger. This approach is especially useful when the platform hangs during the early boot phases and the CPU does not exit the reset mode.
To capture the Intel® CSME traces, you must configure the Intel® Trace Hub (Intel® TH), also known as North Peak (NPK), located on the PCH. This is often a challenge during a cold-boot scenario where the platform hangs soon after its powered on and you do not have time to configure the Intel TH from the Intel® System Debugger – System Trace. Any settings applied on Intel TH using the Intel System Debugger in advance are lost during the power-cycle.
This recipe provides you instructions on how to halt the platform at the platform-boot-stall so that the Intel TH can be configured using Intel® System Debugger - System Trace. This allows you to capture Intel® CSME traces right from the Intel® CSME boot phase.
Ingredients
Software Tools: Intel® System Debugger NDA
Debug Probe: Intel® Silicon View Technology (Intel® SVT) Closed Chassis Adapter (CCA)
Hardware: Platform supported by System Trace (see Supported Platforms) and on which the issue can be reproduced.
Collaterals: Intel® CSME trace decoder (optional).
Note: The Intel® CSME trace decoder (
.traceext ) is part of the Intel® CSME kit available at the Resource & Documentation Center. This decoder is required only if you want to decode the captured Intel® CSME traces. You can skip this step and send the captured traces to Intel for further analysis.
Connect Intel® System Debugger to the Target
Follow instructions to connect to the target.
Ensure that the PCH is detected by the tool. See example output in the ISD Shell as below:
Create and Configure a System Trace Project
Once the target connection is fully established, do the following:
Open the System Trace perspective in Eclipse* and create a System Trace project.
Select trace sources. If a corresponding view for the newly created
.tracecfg file has not opened after the project setup, double-click the file under the configuration node in the Project Explorer.Select Intel® Direct Connect Interface (Intel® DCI) Out of Band (OOB) as a trace profile. In the Trace Configuration tab (Profiles pane), set Trace Profile to Intel® DCI OOB from the drop-down list.
This setting allows the Intel TH to live stream trace information over the Intel SVT CCA debug probe.
Note: You can also use the Intel® Trace Hub Memory as an alternative to streaming over Intel SVT CCA. Intel® Trace Hub Memory is an on-chip RAM, which can store few kilobytes of trace data and is available right from the platform boot phase. Other trace destinations (for example, BIOS Reserved Trace Memory) is not recommended as DRAM is not initialized and USB Debug Class (also known as USB DbC) may not be available at this stage. The exact boot phase at which a USB DbC connection can be established may vary across platforms. For more information, refer to the platform documentation or contact your Intel representative.
Under the Trace Sources (Trace configuration tab), ensure that Intel® Converged Security Engine (Intel® CSE) or Intel® Converged Security and Management Engine (Intel® CSME) is selected. Also select other trace sources as needed (PMC).
5. (Optional) If you want to decode the trace (not only capture it), install the Intel® CSME trace decoder extension (
To decode the Intel® CSME trace, download a corresponding Intel® CSME Kit from the Resource & Documentation Center and import the Trace Extension file as follows:
In the Project Explorer, right-click any empty space and select Import
In the opened dialog box, expand the System Trace node, select Trace Extension Package, and click Next.
Click Browse to find and add the
.traceext file from the downloaded Intel® CSME kit.Click Finish.
Halt the Target at Platform Boot and Capture System Trace
Configure the platform to halt at the platform boot phase. You can do it using the OpenIPC command line interface, in two different ways:
Using the ISD Shell available inside Eclipse:
Once TCA successfully connected to the target execute the following command:
itp.stalls.platformboot=1
Using the standalone shell:
Launch the shell using the
isd_shell.bat under the installation path (by default, it isC:\IntelSWTools\system_debugger\<version>-nda ).Start an IPC CLI session using the command
ipccli
Once a successful connection is established, execute the following command to enable platform-boot-stall:
itp.stalls.platformboot=1
At this stage, the target platform is configured to halt its execution at the platform boot phase.
Power-cycle the target by disconnecting power to the target. Wait a few seconds before re-enabling power to the target.
Once powered, the target will halt itself at an early stage of the platform boot phase. OpenIPC will try to connect to the target automatically once power is re-established. If not, use the TCA Connect button to reconnect the target.
Start trace capture to apply the configuration created earlier to the Intel TH.
Release the target from the platform-boot-stall using the below command (to be executed in the ISD Shell):
itp.stalls.platformboot=0
Wait a few seconds for the platform to boot-up or wait until the platform enter the hung-sate.
Traces will appear in the Message View if live tracing over Intel® Direct Connect Interface (Intel® DCI) Out of Band (OOB) was selected under the Trace Profile.
If you selected tracing to Intel® Trace Hub Memory, Stop trace capture using the buttons to extract the traces.
Decode and Analyze System Trace
The trace data captured by the tool is stored in a capture file and is listed under the capture folder within the Trace Project (see Project Explorer in Eclipse).
The decoded traces should be visible in the Message View.
Refer to the primary System Trace User Guide to learn more about the advanced features for analyzing System Trace within Eclipse.
Troubleshooting
- Issue
Failed to connect to target
- Solution
Hardware: Design guidelines to enable CCA interface over USB interface are available in the Platform Design Guide. Failure to follow the recommended design guidelines may prevent the tool from communicating to the target.
Firmware: Firmware running on the target must be configured to enable CCA interface.
BIOS: If your target is executing BIOS, then the BIOS must be configured to enable CCA interface. For more information, refer to the BIOS user guide or Intel System Debugger User Guide: Target Setup.
This step is not needed for capturing early-boot Intel® CSME traces. However, the interface may be disabled or Intel TH may be reconfigured by the BIOS when it starts execution, breaking the trace capture.
- Issue
Unable to locate the Intel® CSME trace extension file.
- Solution
Intel® CSME trace extension file (also called trace decoder) is shipped inside the Intel® CSME Kit which also contains the Intel® CSME firmware running on your target. Contact your Intel representative for additional help.
- Issue
Platform does not halt at platform-boot-stall.
- Solutions
Make sure that the power stays disconnected for an extended period of time (> 30 sec) and try again.
- Issue
Intel® CSME messages are not decoded correctly (showing hexadecimal values).
- Solution
No correct Intel® CSME trace decoder extension is installed. See the section Create and Configure a System Trace Project above.
- Issue
Target does not halt on platform boot.
- Solution
Try Intel CSE boot stall instead:
itp.stalls.cseboot=1
This captures traces after the Intel CSE ROM phase (slightly after platform boot).
For additional help, refer to the platform documentation, primary Troubleshooting chapter, or contact your Intel presentative. Priority support is available for Intel System Debugger NDA users through Online Service Center or Intel® Premier Support.