Understanding the CoreSight DAP

A tutorial describing the CoreSight Debug Access Port (DAP) and common Arm Development Studio DAP-related autodetection issues


Overview What is a Debug Access Port What is an Access Port What is a ROM Table Common DAP-related autodetection issues Related information

Common DAP-related auto-detection issues

This section covers some of the common DAP-related issues that Arm Development Studio users might encounter when auto-detecting a board with the Platform Configuration Editor (PCE).

The DAP is powered down

In systems where a DAP is present, the PCE autodetection process communicates with the system DAP to determine which CoreSight components are on the board. To communicate with the DAP, the debugger requests that the DAP is powered up either by asserting the CDBGPWRUPREQ signal or by communicating with the GPR.

If the DAP has not been powered up, a Failed to power up DAP error message is shown in the PCE Console, and the autodetection process for the DAP stops. PCE determines whether the DAP has been powered up using one of the following methods:

  • PCE can communicate with the board through the DAP.
  • A power up acknowledgement is received through the CDBGPWRUPACK signal.
  • PCE can communicate with the board after the GPR powers up the necessary power domains.

If PCE auto-detection stops because the DAP is not powered up

  1. If you are using a CoreSight SoC-600 or an ADIv6-compliant board, check that the debugger and debug probe supports these targets by consulting your debugger and debug probe reference material.
    • The latest versions of Arm Development Studio support CoreSight SoC-600 or ADIv6-compliant boards.
    • Debug probe firmware installed or upgraded using Arm Development Studio support CoreSight SoC-600 or ADIv6-compliant boards.
    • DS-5 does not support CoreSight SoC-600 or ADIv6.0-compliant boards.
  2. Ensure that the power domain containing the DAP is powered up on the board. Consult the board designer, manufacturer, or documentation to determine if there are any items that can prevent DAP powerup.
    • Some boards might require additional steps to power up the DAP, for example:
      • Physically configuring the board, like setting DIP switches or making certain board connections
      • Having a debug-capable image on the board
      • Configuring the board power controller
  3. If the board design is still configurable, for example, the board is an FPGA, and the DAP is not powering up due to the hardware configuration, have your hardware designer modify the board design so the DAP powers up when a debugger powerup request occurs.

You can use the Coresight Access Tool for SoC600 (CSAT600) or CoreSight Access Tool (CSAT) tool to verify that the DAP is powering up. 

Wrong number or types of APs found

As part of the PCE autodetection process, PCE tries to detect which APs are present behind the DAP.

If an AP is marked as not being present in the system because its IDR value is 0x0, PCE skips interrogating the components that are connected to the AP. This means that the components connected to the AP are not added to the platform configuration.

If APs are not terminated according to the board integration documentation, PCE cannot determine the number and the type of APs in the system. If the number of APs present cannot be determined, PCE might assume that the maximum number of possible APs are present. If PCE makes such an assumption, after the autodetection process completes, a large number of APs are shown in the PCE Console view.

If PCE auto-detection does not find an AP or the wrong number or type of AP is found

Consult with the board designer, manufacturer, or documentation to determine which APs are present behind the DAP. Compare the AP number and types that are included in the board resources to the APs found by the PCE autodetection process. The results of the PCE autodetection process are shown in the PCE Console view.

  • If an AP is not found during the auto-detection process:
    1. Check whether the IDR value for the AP is 0x0.
      1. If supported, the AP IDR value is accessible using the memory mapped AP interface.Consult your board documentation for where and how this information is accessible.
      2. If the IDR value is 0x0, correct the IDR value in the hardware design if possible. If correcting the IDR value is not possible, follow the instructions at the end of this section to manually configure a target with PCE and add the missing AP.
    2. If the IDR value is not 0x0, follow the instructions at the end of this section to manually configure a target with PCE.
  • If the wrong type of AP is found:
    • Check that the AP Type (AP_TYPE) for the AP is correct.The AP Type value is found by clicking on the AP under Devices in the platform configuration’s SDF file.If the AP Type value is incorrect, correct the TYPE value in the AP’s IDR in the hardware design if possible. If correcting the IDR TYPE value is not possible, follow the instructions at the end of this section to manually configure a target with PCE and change the AP Type value in the platform configuration.
  • If more APs are found than expected:
    • Run the CoreSight integration tests found in the processor’s Integration Manual.
  • Instructions on how to manually configure a target with PCE:

The ROM Table is not found

As part of the autodetection process, PCE interrogates all the ROM Tables on the board to determine which components are present. In the PCE Console view, if PCE cannot find a ROM Table for an AP, a No ROM Table is present on this AP message is shown. If the ROM Table location information is wrong, PCE does not find the ROM Table and none of the components listed by the ROM Table are added to the platform configuration.

If a ROM Table is not found

In the PCE Console view, look for No ROM Table is present on this AP messages for APs which do have a ROM Table, or DPs and APs that are missing all their associated components. This helps you identify which ROM Table(s) were not found. To correct a platform configuration with missing ROM Table(s):

  1. Check the ROM Table base address, or whether the OS or the debug monitor knowledge of the system is correct.

    The ROM Table base address is listed in:
    • The device information in the platform configuration SDF file.To open this information in the SDF file, go to Devices and click on the device.
    • The memory mapped AP MEM-AP BASE register.
    • If using an ADIv6-compliant target, the DP ROM table base address registers, BASEPTR0-BASEPTR1.

    The OS or debug monitor knowledge of the ROM Table(s) location depends on the OS or debug monitor that is used. Consult your OS or debug monitor documentation.

    If the ROM Table location information is incorrect, correct the information in the hardware design or the software if possible. If a correction is not possible, manually set the ROM Table information by:

    1. Under Devices in the platform configuration SDF file, click on the item missing the ROM Table such as a DP or an AP.
    2. Manually set the ROM Table location information.
    3. Right-click on the item missing the ROM Table and select Read ROM Tables. This starts the autodetection process again with the corrected ROM Table location information.
  2. If the ROM Table location information is correct, follow instructions for manually configuring a target with PCE and add the missing ROM Table components:

The ROM Table is incorrect or incomplete

There are several ways a ROM Table can be incorrect or incomplete. Incorrect or incomplete ROM Table(s) can lead to components on the board not being added to the platform configuration. The following is a list of common ROM Table issues:

  • If the PRESENT bit is not set for a ROM Table entry, the PCE Console view shows the message Entry present bit not set, no device interrogation will occur. If the PRESENT bit is not set, PCE ignores the ROM Table entry and the corresponding component is not added to the platform configuration. 
  • If a ROM Table contains the wrong address for a nested ROM Table, the components pointed to by the nested ROM Table are not added to the platform configuration.
  • If the ROM Table is not terminated correctly with a 0x0 entry or an entry at ROM Table offset 0xEFC, the PCE autodetection process might not find all the components on the board.
  • If a ROM Table is missing entries for components connected to the associated DP or AP, PCE does not add the components to the platform configuration.

If the ROM Table is incorrect or incomplete

  1. Compare the components found by the auto-detection process to the components listed in your design or board documentation.
  2. If the components lists do not match, check the PCE Console view for the message Entry present bit not set, no device interrogation will occur.
    1. If Entry present bit not set, no device interrogation will occur messages are shown, check whether there is a component present at the corresponding ROM Table entry. If there is a component present, correct the PRESENT bit of the ROM Table entry in the hardware design if possible. If correcting the ROM Table entry is not possible, follow the instructions at the end of this section to manually configure a target with PCE and add the missing component.
  3. If a subset of the board components is not in the platform configuration, check that all nested ROM Tables addresses are correct. A subset of board components can consist of a core or cores with associated link or trace components or a processor cluster. The ROM Table entry values are shown in the PCE Console view.
    1. If the nested ROM Table address is incorrect, correct the nested ROM Table address in the hardware design if possible. If correcting the nested ROM Table address is not possible, follow the instructions at the end of this section to manually configure a target with PCE and add the missing components.
  4. If the platform configuration is missing all the components after a certain point in the autodetection process, in the PCE Console view, check that all the ROM Tables have been read completely and all ROM table reads end with the message End of ROM table.
    1. If components are missing because a ROM Table is not read completely or not terminated correctly, correct the ROM Table termination in the hardware design if possible. If correcting the ROM Table is not possible, follow the instructions at the end of this section to manually configure a target with PCE and add the missing components.
  5. If any components are still missing from the platform configuration, it might be due to the ROM Table not having an entry for the component. Check your design or board documentation to determine which components are present in each ROM Table. Compare the documented ROM Table component listings to the ROM Table components that are shown in the PCE Console view. If a difference is found, correct the corresponding ROM Table in the hardware design if possible. If correcting the ROM Table is not possible, follow the instructions at the end of this section to manually configure a target with PCE and add the missing component.

Instructions on how to manually configure a target with PCE:

Previous Next