You copied the Doc URL to your clipboard.

components.xml file

Use the components.xml file to add component information to a custom configuration database.

The structure of the components.xml file is made up of several elements with associated attributes. For example:

<componentDatabase version="1.0">
  <manufacturer>
    <name>ARM</name>
      <jepcode>0x43B</jepcode>
          <part>
             <number>0xD05</number>
             <DEVARCH>0x8A15</DEVARCH>
             <DEVTYPE>0x15</DEVTYPE>
             <name>Cortex-A55</name>
             <description>Cortex-A55</description>
             <family>Cortex</family>
             <class>CoreExecutable</class>
             <architecture>ARMv8-A</architecture>
                      <is_big_core>False</is_big_core>
                     <is_little_core>True</is_little_core>
                     <supports_mixed_clusters>True</supports_mixed_clusters>
                     <MPCore>True</MPCore>
                     <uses_template>Cortex-A55</uses_template>
                     <cluster_devices>
                        <cluster_device name="TM">0x43B:0xD05:0x13</cluster_device>
                        <cluster_device name="CTI">0x43B:0xD05:0x14</cluster_device>
                        <cluster_device name="PMU">0x43B:0xD05:0x16</cluster_device>
                     </cluster_devices>
                     <topology_info>
                        <core_trace_link devices="CSETM" maxSlaves="1" minSlaves="1" position="master"/>
                        <cti_link devices="CSCTI" maxSlaves="1" minSlaves="0" position="master"/>
                     </topology_info>
           </part>
  </manufacturer>
</componentDatabase>

Parameters

Table 14-9 Elements used in the components.xml file

Element name Description
<componentDatabase> The components.xml file definition. Use the version attribute to define file versions, for example: <componentDatabase version="1.0">
<manufacturer> The manufacturer elements contain the manufacturer name, the JEP code for the manufacturer, and one or more parts.
<name> The part manufacturer name.
<jepcode>

The manufacturer JEDEC JEP-106 Manufacturer ID Code. JEP106 provides for a 7-bit "Identity Code" plus a mechanism for extending the range of codes by use of a "Continuation Code".

See What is the JEDEC JEP-106 Manufacturer ID Code and how is it used? for more information.

<part> Declaration of a component part. For an example, see Examples.
<number>

The part ID. This is required for the part to be successfully detected.

If your part has multiple IDs, you can list them separated by a semicolon (;). For example, <number>0x9D7;0xD14</number>.

<DEVARCH>

The development architecture. This is optional.

If the part number is shared by multiple components, use <DEVARCH> to differentiate between various development architectures.

<DEVTYPE>

The part type. This is optional.

If the part number is shared by multiple components, use <DEVTYPE> to differentiate between various parts.

<name> The part name. If a firmware template does not exist for a part, then the CoreSight™ REG template is used for the part.
<description> A brief description of the part.
<family> The processor core family name.
<class> The device class of the component. This can be TraceSink, TraceSource, TraceLink, or CoreExecutable.
<architecture> The architecture of the core. For example, ARMv7-A, ARMv7-R, ARMv7-M, ARMv8-A, ARMv8-R, ARMv8-M.
<is_big_core> Indicates that this core is a big.LITTLE™ big core.
<is_little_core> Indicates that this core is a big.LITTLE little core.
<supports_mixed_clusters> Indicates that this core supports mixed-core type clusters (DynamIQ™).
<MPCore> Indicates that this component is a Symmetric Multi-Processing (SMP) capable core.
<uses_template> Alternate template for the part. Use this element to override any firmware template.
<cluster_devices> A list of cluster device elements.
<cluster_device> Name attribute ("TM"/"CTI"/"PMU") and values (ManufacturerID:PartID:DEVTYPE) used to generate a set of core cluster components.
<topology_info> A set of topology link constraint information items. This describes maximum and minimum number of connections, and the master and slave interface connections for any given interface type. For example, ATB, CTI_Trigger, or CoreTrace.
<core_trace_link> Information for minimum/maximum connections for CoreTrace interfaces.
<cti_link> Information for minimum/maximum connections for CTI interfaces.
<core_definition>

The core definition. Used to indicate which Development Studio configuration database core definition must be used.

If this is not provided, <name> value is used for the core definition.

<device_info_list> A set of device_info items, which contain the information (key/value pairs) required for PCE to be able to create and configure the correct DTSL objects.
<Option> An option for the value of a device_info item. These are fixed for any given component type, that is, new ones cannot be added, and removing existing ones causes failures.
<atb_link> Information for minimum/maximum connections for ATB interfaces.

Examples

These examples provide some sample configurations.

  • Adds a CoreSight Performance Monitoring Unit (PMU) - 1

    <part>
      <number>0x9D7</number>
      <name>CSPMU</name>
      <description>New CoreSight PMU part</description>
      <DEVTYPE>0x16</DEVTYPE>
      <DEVARCH>0x16</DEVARCH>
    </part>
  • Adds a CoreSight Performance Monitoring Unit (PMU) - 2

    <part>
      <number>0x999</number>
      <name>MyNewPart</name>
      <description>New PMU Type</description>
      <DEVTYPE>0x16</DEVTYPE>
      <DEVARCH>0x16</DEVARCH>
      <uses_template>CSPMU </uses_template>
    </part>
  • Adds a core

    <part>
      <number>0xD13;0xD14</number>
      <name>MyNewCore</name>
      <description>My new core type</description>
      <DEVTYPE>0x15</DEVTYPE>
      <DEVARCH>0x15</DEVARCH>
      <uses_template>V8A-Generic</uses_template>
      <core_definition>MyNewCoreDefinition<core_definition>
      <family>Cortex</family>
      <class>CoreExecutable</class>
      <architecture>ARMv8-A</architecture>
      <MPCore>True</MPCore>
    </part>
  • Adds a CoreSight Embedded Trace Macrocell

    <part>
      <number>0x9B6</number>
      <name>CSETM</name>
      <description>CoreSight Embedded Trace Macrocell</description>
      <device_info_list>
        <device_info name="VERSION" description="ETM Version" type="string" value="4.0">
          <Option>3.0</Option>
          <Option>3.1</Option>
          <Option>3.2</Option>
          <Option>3.3</Option>
          <Option>3.4</Option>
          <Option>3.5</Option>
          <Option>4.0</Option>
          <Option>4.2</Option>
        </device_info>
         <device_info name="SUPPORTS_CONTEXT_IDS" description="Context IDs supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_CYCLE_ACCURATE" description="Cycle-Accurate tracing supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_DATA_VALUE_TRACE" description="Data Value trace supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_DATA_ADDRESS_TRACE" description="Data Address trace supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_DATA_ONLY_MODE" description="Data-Only tracing supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_TIMESTAMPS" description="Timestamps are supported" type="bool" value="True"/>
         <device_info name="SUPPORTS_TRACE_RANGES" description="Trace Ranges are supported" type="bool" value="True"/>
       </device_info_list>
       <topology_info>
         <atb_link position="master" minSlaves="1" numMasterInterfaces="1"/>
         <core_trace_link position="slave" minMasters="1" maxMasters="1"/>
         <cti_link position="master" minSlaves="0" maxSlaves="1" devices="CSCTI"/>
       </topology_info>
    </part>