1.1 About

Arm® CoreSight™ SDC-600 Secure Debug Channel provides a dedicated channel for authentication between an external debugger and a debug target platform by using an unlocking mechanism.

The SDC-600-based architecture provides an interface through which secure debug certificates can be injected to the platform. This is done in a standard way through the Debug Access Port (DAP), which is normally used to debug the platform. It eliminates the need for OEM proprietary delivery mechanisms for such certificates.

SDC-600 performs the following tasks:

The debugged target and the servicing agent are typically the same processor or processor subsystem, but they can be separate entities as well.

The authentication process can involve a hardware- or software-based cryptographic engine on the target. The cryptographic engine verifies the debug certificate that is passed to the servicing agent through the SDC-600. The debugger and the servicing agent run a protocol on top of the SDC-600, which:

  1. Identifies the SoC (SoC_ID).
  2. Injects the appropriate debug certificate to the debug target for processing by the cryptographic engine.

The following is a high-level description of a sample authentication process:

  1. The debugger wants to access the target's debug resources.
  2. The debugger uses the CoreSight ID registers and discovery process to identify the SDC-600's external interface.
  3. The debugger accesses the SDC-600 to start the unlocking process.
  4. The SDC-600 requests the powerup of the rest of its functional blocks.
  5. The debugger asks for a SoC_ID from the servicing target to identify the target system.
  6. A certificate is generated by the debugger for the SoC_ID that is transmitted to the servicing target.
  7. The servicing agent decides whether the debugger has the rights to access the debug target based on the provided certificate.
  8. If access is granted, the target agent drives the authentication signals accordingly on the Access Ports so that the connected devices can be accessed by the debugger.

The following terminology is used throughout the document:

External
The component or the end of the communication channel that is connected to the debugger through the Debug Port.
Internal
The component or the end of the communication channel that is connected to the servicing agent.
Servicing agent
The agent on the internal side that implements authentication by checking the certificate and controls the authentication signals in the target system. It communicates through the SDC-600 and services the interrupts that are generated by the internal COM Port component. The servicing agent can be implemented as software executing on the target processor, or on a separate processor in a secure island or subsystem.
Target
The debug target that is requesting debug authentication. In some systems, the servicing agent can be implemented as code which runs on the target processor.
Non-ConfidentialPDF file icon PDF version101130_0002_02_en
Copyright © 2018 Arm Limited or its affiliates. All rights reserved.