Distinguishing between CoreSight components whose Peripheral ID registers return the same value
Article ID: 142993233
Published date: 06 Jun 2018
Last updated: -
Applies to: CoreSight Debug and Trace
I have two different CoreSight components that return the same part number value when I read their Peripheral ID register? Is this expected? If so, how do I tell them apart from each other for component discovery?
This knowledge article is relevant to any external debug tools or on-chip software that executes CoreSight component discovery routines.
This is expected for components that are implemented under CoreSight v3 architecture rules. Unlike the previous CoreSight v2/v1 architectures, CoreSight v3 permits different components to share the same Peripheral ID 'part number' if those components are associated with a common functional block. For example, different CoreSight components (core debug register block, Embedded Trace Macrocell, Cross Trigger Interfaces, and others) implemented within a particular processor design might share a single 'part number' that is associated with the processor itself, rather than each separate component having its own separate part number.
CoreSight v3 part number sharing means that any agent which performs component discovery (such as an external debugger) cannot rely on the Peripheral ID (part number) values alone to identify a CoreSight component, it must also examine the ComponentID, DEVARCH, and DEVTYPE register values. The additional information provided in these registers enables a discovery agent to uniquely identify different components when they share the same part number.
For more information on this topic, see the section titled The Unique Component Identifier in the CoreSight Architecture (v3) specification.