2.4.4. SW-DP multi-drop support

The SW-DP implements the multi-drop extensions defined as part of Serial Wire protocol version 2 in ADIv5.1. This enables multiple SW-DP implementations supporting multi-drop extensions to share a single target connection.

The multi-drop extensions are fully backwards compatible. All targets are selected following a Wire Reset, and remain selected unless a TARGETSEL command is received, which selects a single target.

Each target must be configured with a unique combination of target ID and instance ID, to enable a debugger to select a single target to communicate with:

The multi-drop extensions do not enable the target ID and instance ID of targets to be read when multiple targets share a connection. The debugger must either be programmed with the target ID and instance ID of each target in advance, or must iterate through a list of known of target IDs and instance IDs to discover which targets are connected.

Target ID

The SW-DP target ID is configured using a 32-bit input to the SW-DP, TARGETID[31:0]. It must be connected as shown in Table 2.4.

Table 2.4. TARGETID input connections

[31:28]Revision The revision of the part. This field is not used when selecting a target.
[27:12] Part numberIdentifies the part.
[11:1]Designer Identifies the designer of the part. The code used is assigned by JEDEC standard JEP-106 as used in IEEE 1149.1 and CoreSight identification registers. Bits [11:8] identify the bank, and bits [7:1] identify the position within that bank.
[0] ReservedMust be HIGH.

The target ID must be configured even in systems where multi-drop operation is not required, because it can be used to further identify the part. In most cases, it can be configured with the same information provided in the DAP ROM table identification registers described in ROM table registers. The ROM table identification registers map to the target ID as shown in Table 2.5.

Table 2.5. TARGETID mapping

TARGETIDROM table register
[31:28]Peripheral ID2 [7:4]
[27:24]Peripheral ID1 [3:0]
[23:16]Peripheral ID0 [7:0]
[15:12]Drive LOW
[11:8]Peripheral ID4 [3:0]
[7:5] Peripheral ID2 [2:0]
[4:1] Peripheral ID1 [7:4]
[0]Drive HIGH

Instance ID

The SW-DP instance ID is configured using a 4-bit input to the SW-DP, INSTANCEID[3:0]. If multiple targets with the same target ID might share a connection, INSTANCEID must be driven differently for each target, for example by using nonvolatile storage configured differently for each target.

In most cases, this input can be driven LOW.

Copyright © 2004-2009 ARM. All rights reserved.ARM DDI 0314H