10.16 Extending your configuration database

By default, the Platform Configuration Editor auto-detects components that are already available in the main Configuration Database. You can increase the number of auto-detected components by creating a components.xml file and adding it to the Components folder in your Configuration Database folder.

To summarize, these are the main steps involved in extending component auto-detection capabilities:

  1. Create a components.xml and add the details of your parts into it.
  2. In your custom configuration database folder, create a folder called Components.
  3. Place your custom components.xml file in the Components folder.

Structure of the components.xml file

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

<componentDatabase version="1.0">  

  <manufacturer>      <!-- Manufacturer elements contain the manufacturer name, the JEP code for the manufacturer, and one or more parts.-->

    <name>ARM</name>      <!-- The part manufacturer name. -->

      <jepcode>0x43B</jepcode>     <!--The manufacturer JEDEC JEP-106 Manufacturer ID Code.
          <part>    <!--Declaration of a part.-->

               <number>0x9D7</number>      <!-- The part ID. This is required for the part to be successfully detected. -->

               <name>CSPMU</name>	     <!-- The part name. If a firmware template does not exist for a part, then the CoreSight REG template will be used for the part. -->

               <description>New CoreSight PMU part</description>      <!--A brief description of the part.-->

               <DEVTYPE>0x16</DEVTYPE>     <!-- The part type. This is optional. If the part number is shared by multiple components, use <DEVTYPE> to 
                                                differentiate between various parts.-->

               <DEVARCH>0x16</DEVARCH>	<!-- The development architecture. This is optional. If the part number is shared by multiple components, use DEVARCH to
                                                differentiate between various development architectures. -->

               <uses_template>CSPMU</uses_template>     <!--Alternate template for the part. Use this element to override any firmware template.-->

         </part>

  </manufacturer>

</componentDatabase>

Table 10-1 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>

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 about JEDEC JEP-106 Manufacturer ID Code.

<part>

Declaration of a component part.

<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 (;). So for example, <number>0x9D7;0xD14</number>.

<DEVTYPE>

The part type. This is optional.

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

<DEVARCH>

The development architecture. This is optional.

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

<name>

The part name. If a firmware template does not exist for a part, then the CSREG template will be used for the part.

<uses_template>

Alternate template for the part. Use this element to override any firmware template.

<description>

A brief description of the part.

<core_definition>

The core definition. Used to indicate which DS-5 configuration database core definition must be used.

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

<family>

The processor core family name.

<class> The device class of the component. This can be TraceSink, TraceSource, TraceLink, or CoreExecutable.
<architecture> The core's architecture. For example, ARMv7-A, ARMv7-R, ARMv7-M, ARMv8-A, ARMv8-R, ARMv8-M.
<MPCore> Indicates that this component is a Symmetric Multi-Processing (SMP) capable core.
<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.
<topology_info> A set of topology link constraint information items. This describes maximum/minimum and master/slave interface connections for any given interface type, for example, ATB, CTI_Trigger, or CoreTrace.
<atb_link> Information for minimum/maximum connections for ATB interfaces.
<core_trace_link> Information for minimum/maximum connections for CoreTrace interfaces.
<cti_link> Information for minimum/maximum connections for CTI interfaces.

Examples part definitions

The examples below provide some sample configurations.

Example 10-1 Adding 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>

Example 10-2 Adding 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>

Example 10-3 Adding 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>

Example 10-4 Adding 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>
Non-ConfidentialPDF file icon PDF versionARM DUI0446Z
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.