CoreSight Access Tool for SoC600 (CSAT600) User Guide
Overview How to use CSAT600 CSAT600 command list Command comparison between CSAT600 and CSAT Worked examples for CSAT600
CSAT600 command list
For Arm Development Studio 2019.0, the following commands listed on this page are available for the CSAT600 tool. Additional commands will be available in future Arm Development Studio releases. You should be aware that:
- Most commands have a command alias that is used to execute the same operation. Any command aliases are in () beside the full command name.
- In the command's Example section, "..." denotes that executing the command provides further output. The further output is not shown in this user guide.
-
autodetect (auto)
Autodetect which CoreSight devices are present on the target.
To run this command, you must have a debug probe connection. See the instructions at
connect (con)
for details on how to connect to your debug probe.Syntax
autodetect (auto) [enum-aps] [read-rom]
Where:
enum-aps
Enumerates the autodetected Access Ports (APs).
read-rom
Returns the contents of the read ROM table.
Example
%> autodetect
Detecting platform...
------------+--------------------------------+---------
Device No. | DTSL Device Name (& Address) | AP No.
------------+--------------------------------+---------
0 | ARMCS-DP |
%> auto enum-aps
Detecting platform...
------------+--------------------------------+---------
Device No. | DTSL Device Name (& Address) | AP No.
------------+--------------------------------+---------
0 | ARMCS-DP |
1 | CSMEMAP_0 (0x00000000) | 0
2 | CSMEMAP_1 (0x00000000) | 1
%> autodetect read-rom Detecting platform... ------------+--------------------------------+--------- Device No. | DTSL Device Name (& Address) | AP No. ------------+--------------------------------+--------- 0 | ARMCS-DP | 1 | CSMEMAP_0 (0x00000000) | 0 2 | Cortex-A53_0 (0x80410000) | 0
... -
cfgbox (cfb)
Get or set the debug probe configuration.
To run this command, you must have a debug probe connection. See the instructions at
connect (con)
for details on how to connect to your debug probe.Syntax
cfgbox (cfb) [<item_name> [<item_value>]]
Where:
item_name
Debug probe configuration item to be configured.
item_value
Value to set the debug probe configuration item to.
Example
%> cfgbox
Linked_SRST_TRST : 0
SRSTOnConnect : 0
UserOutputPin s : 000000
UseDeprecatedSWJ : 0
...
%> cfb Linked_SRST_TRST Linked_SRST_TRST: 0 Description: Set TRUE if the target hardware has these two signals physically linked. Type: Boolean Default Value: 0 Minimum Value: 0 Maximum Value: 1 Enum Values: 0 - False, 1 - True Access: Read-Write %> cfb Linked_SRST_TRST 1 Config item Linked_SRST_TRST was set to 1 -
cfgtplate (cfg)
Get or set debug probe configuration items for the current CoreSight device.
To run this command, you must have both an active debug probe connection, and an active CoreSight device connection. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atdevopen (dvo, device)
for details on how to connect to a Coresight device.Syntax
cfgtplate (cfg) [<item_name> [<item_value>]]
Where:
item_name
Debug probe configuration item to be configured.
item_value
Value to set the debug probe configuration item to.
Example
%> cfgtplate CTI_SYNCH_START : Boolean : 0 ALLOW_EXECUTION_WITHOUT_T_BIT : Boolean : 0 POST_RESET_STATE : Enum : 1 CORESIGHT_DP_MEMSPACE : Boolean : 0 ... %> cfg POST_RESET_STATE POST_RESET_STATE: 1 Description: Determines if the core should halt or run after reset Type: Enum Default Value: 1 Minimum Value: 0 Maximum Value: 1 Enum Values: 0 - Running, 1 - Stopped Access: Read-Write %> cfg POST_RESET_STATE 1 Config item POST_RESET_STATE was set to 1
-
chain (chn)
Set or autodetect the JTAG scan chain and clock frequency.
To run this command, you must have a debug probe connection. See the instructions at
connect (con)
for details on how to connect to your debug probe.Syntax
chain (chn) [dev=device_name1,...,device_nameN | dev=auto] [clk=<freqHz>
| clk=A] Where:
dev
Use this to specify one or more devices on the JTAG scan chain. Alternatively, set to
auto
to autodetect all of the devices on the JTAG scan chain.clk
Value to set the debug adapter clock frequency to in Hz or
A
to use adaptive clocking.Example
%> chain dev=ARMCS-DP ------------+--------------------------------+--------- Device No. | DTSL Device Name (& Address) | AP No. ------------+--------------------------------+--------- 0 | ARMCS-DP |
%> chn dev=ARMCS-DP clk=10000000
------------+--------------------------------+---------
Device No. | DTSL Device Name (& Address) | AP No.
------------+--------------------------------+---------
0 | ARMCS-DP |
%> chain dev=auto
Detecting scanchain...
------------+--------------------------------+---------
Device No. | DTSL Device Name (& Address) | AP No.
------------+--------------------------------+---------
0 | ARMCS-DP | -
connect (con)
Connect to a probe via TCP or USB.
It is possible to connect to a probe without specifying an address (TCP or USB option). This is relevant to additional probes where the connection address is specified in RDDI library file and the capability "ConnectionAddressRequired" is set to False in the probe definition file. See the instructions at
loadprobes(load)
for the details on how to load additional probes. See the instructions atlistprobes (probes)
for details on how to list available probes.Syntax
connect (con) [<probe type>:]TCP:<hostname> | TCP:<ip address> | USB [config file]
Where:
probe type
Specify the probe type you wish to connect to or use to change the current probe type. To change the probe type, place the
probe type
in front of theTCP
orUSB
option. See the instructions atloadprobes (load)
andlistprobes (probes)
for the details on how to load and list additional available probes respectively.TCP
Use this option if you are connecting to your debug probe using an Ethernet connection. You must specify either the hostname or the IP address.
USB
Use this option if you are connecting to your debug probe through USB.
config file
Specify the System Description File (SDF) from a platform configuration used when connecting to the target. If an SDF is not supplied, you must run a CoreSight device discovery command. See instructions at
autodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Example
%> connect TCP:255.255.255.255 Connecting to TCP:255.255.255.255 ... Connected to: DSTREAM Base H/W: V2 Rev C-00 TurboTAP Rev: 0.16 DSTREAM Probe V1 Rev B-00 Firmware: 5.4.0, Build 5 Configuration file: C:\Users\<user>\
AppData\Local\Temp\csat_scanchain_devices5451335090165749803.sdf
%> con USB
Connecting to USB ...
Connected to: DSTREAM
Base H/W: V2 Rev C-00
TurboTAP Rev: 0.16
DSTREAM Probe V1 Rev B-00
Firmware: 5.4.0, Build 5
Configuration file: C:\Users\<user>\AppData\Local\Temp\csat_scanchain_devices713844846634569063.sdf
%> con TCP:myDSTREAM C:\work\target.sdf Connecting to TCP:myDSTREAM ... Connected to: DSTREAM Base H/W: V2 Rev C-00 TurboTAP Rev: 0.16 DSTREAM Probe V1 Rev B-00 Firmware: 5.4.0, Build 5 Configuration file: C:\work\target.sdf
%> connect DSTREAM-ST:TCP:myDSTREAM-ST Probe type was set to DSTREAM-ST. Connecting to TCP:myDSTREAM-ST ... Connected to: DSTREAM-ST Base H/W: V2 Rev A-06 FPGA build 0x0014, Debug 1V8, Trace 1V8 Firmware: 5.4.0, Build 5 Configuration file: C:\Users\<user>\AppData\Local\Temp\csat_scanchain_devices713844846634569063.sdf -
devclose (dvc)
Close the connection to the CoreSight device.
To run this command, you must have both an active debug probe connection, and an active CoreSight device connection. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atdevopen (dvo, device)
for details on how to connect to a Coresight device.Syntax
devclose (dvc) [<device no>]
Where:
device no
CoreSight device number to close the connection to. Use the
autodetect (auto)
,chain (chn)
, orlist (l)
commands to determine the device number.Example
%> devclose
Disconnected from device no. 2
%> dvc 2
Disconnected from device no. 2 -
devopen (dvo, device)
Open a connection to a CoreSight device.
To run this command, you must have a debug probe connection with an SDF or a debug probe connection and have discovered CoreSight devices. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
devopen (dvo, device) <device no>
Where:
device no
CoreSight device number to open a connection to. Use the
autodetect (auto)
,chain (chn)
, orlist (l)
commands to determine the device number.Example
%> devopen 2
Connected to device no. 2: Cortex-A53_0, JTAG ID: 0x1ba06477, version 0x00000006
Msg returned from device: Cortex-A53 Template
%> dvo 0 Connected to device no. 0: ARMCS-DP, JTAG ID: 0x1ba06477, version 0x00000006 Msg returned from device: ARM-DP Template using Rv-Msg.
%> device 2 Connected to device no. 2: Cortex-M3, JTAG ID: 0x3ba00477, version 0x00000006 Msg returned from device: Cortex M3 template - disconnect (dcn)
-
dpregread (drr)
Read a register from a DP, AP, or other device.
To run this command, you must have a debug probe connection with an SDF or a debug probe connection and have discovered CoreSight devices. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
dpregread (drr) [<device>.]<id>
Where:
device
Specify an offset for the currently connected device or override the currently connected device and specify the device explicitly. Optionally,
device
can specify one of the following:- A device number as displayed by the
list (l)
command. - The device name from the device list.
- The number of a memory access port.
- Just
DP
for a Debug Port.
DP
alias cannot be used and the device number must be used instead.id
Either specify a textual alias for AP or DP registers as specified by the Arm CoreSight System-on-Chip SoC-600 Technical Reference Manual or a raw CoreSight register identifier (ID). This ID is the offset specified in the TRM for the CoreSight device divided by 4.
Example
%> dpregread AP0.CSW Device no. 2 is active. Reading from device no. 2: CSMEMAP AP0:0x340 : 0x03000052
%> dpregread CSMEMAP.CSW Device no. 2 is active. Reading from device no. 2: CSMEMAP CSMEMAP:0x340 : 0x03000052
%> dpregread DP.DPIDR Device no. 1 is active. Reading from device no. 1: ARMCS-DP DP:0x2080 : 0x00000000
%> dpregread device2.TAR Device no. 2 is active. Reading from device no. 2: CSMEMAP device2:0x341 : 0x77441100
%> dpregread device2.0x340 Device no. 2 is active. Reading from device no. 2: CSMEMAP device2:0x340 : 0x03000052
%> drr TAR Reading from device no. 2: CSMEMAP device2:0x341 : 0x77441100 - A device number as displayed by the
-
dpregwrite (drw)
Write a register from a DP, AP, or other device.
To run this command, you must have a debug probe connection with an SDF or a debug probe connection and have discovered CoreSight devices. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
dpregwrite (drw) [<device>.]<id> <value>
Where:
device
Specify an offset for the currently connected device or override the currently connected device and specify the device explicitly. Optionally,
device
can specify one of the following:- A device number as displayed by the
list (l)
command. - The device name from the device list.
- The number of a memory access port.
- Just
DP
for a Debug Port.
Note: If the target contains multiple Debug Ports (DPs), the
DP
alias cannot be used and the device number must be used instead.id
Either specify a textual alias for AP or DP registers as specified by the Arm CoreSight System-on-Chip SoC-600 Technical Reference Manual or a raw CoreSight register identifier (ID). This ID is the offset specified in the TRM for the CoreSight device divided by 4.
value
32 bit number value to write to the specified register.
Example
%> dpregwrite AP0.TAR 0xEFC4AFC0 Device no. 1 is active. Writing to device no. 1: CSMEMAP_0
%> dpregwrite device44.TAR 256 Device no. 44 is active. Writing to device no. 44: CSMEMAP_2
%> drw device44.0x341 0xF00F Device no. 44 is active. Writing to device no. 44: CSMEMAP_2 - A device number as displayed by the
- exit (x)
-
help (h)
List all the available CSAT600 commands, or display the help information for a specific command.
Syntax
help (h) <command>
Where:
command
Command name to display help content for.
Example
%> help autodetect (auto) : Autodetect which CoreSight devices are present on the target. cfgbox (cfb) : Configure the DSTREAM probe. cfgtplate (cfg) : Get or set DSTREAM configuration items for the current CoreSight device.
...
%> h autodetect
Command: autodetect
Autodetect which CoreSight devices are present on the target.
Aliases:
auto
Usage:
autodetect [enum-aps] [read-rom]
auto [enum-aps] [read-rom] -
list (l)
List the available CoreSight devices.
To run this command, you must have a debug probe connection with an SDF or a debug probe connection and have discovered CoreSight devices. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
list (l)
Example
%> list ------------+--------------------------------+--------- Device No. | DTSL Device Name (& Address) | AP No. ------------+--------------------------------+--------- 0 | ARMCS-DP | 1 | CSMEMAP_0 (0x00000000) | 0 2 | Cortex-A53_0 (0x80410000) | 0 3 | CSCTI_0 (0x80420000) | 0
... -
listprobes (probes)
List available probe types.
Run this command to list built-in and additional probes supported by CSAT600. See the instructions at
loadprobes (load)
for the details on how to load additional probes.
Note: The current probe is marked with '*'.Syntax
listprobes (probes)
Example
%> listprobes * DSTREAM built-in DSTREAM-HT built-in DSTREAM-PT built-in DSTREAM-ST built-in MyProbe from c:\work\probes.xml RealView ICE built-in
-
loadprobes (load)
Load an additional probe from a probe definition file.
To run this command, you must have a probe vendor provided probe definition file and RDDI library file. A probe definition file is an XML file which defines the probe name and RDDI library file. The XML file might also contain configuration items and capabilities. The RDDI library file might be provided in both Windows and Linux variants.
Syntax
loadprobes (load) <xml file>
Where:
xml file
Path to the probe definition XML file.
Example
%> loadprobes c:\work\probes.xml Parsing file c:\work\probes.xml... Probe MyProbe was loaded.
-
log
Control logging.
Syntax
log on | off | <filename>
Where:
on
Turns on logging.
off
Turns off logging.
filename
Path and filename to save the logging to.
Example
%> log on Logging is enabled with logfile: C:\Users\
<user>\AppData\Local\Temp\csat7441679604713525243.log
%> log on C:\Users\<user>\AppData\Local\Temp\csat.log Logging is enabled with logfile: C:\Users\<user>\AppData\Local\Temp\csat.log
%> log off Logging is disabled. -
memread (mr)
Read memory from the specified address.
To run this command, you must have a debug probe connection with an SDF or a debug probe connection and have discovered CoreSight devices. See the instructions at
connect (con)
for details on how to connect to your debug probe. See the instructions atautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
memread (mr) <address> <number of words to read> [rule=<memory operation modifiers>]
Where:
address
Address to read from.
number of words to read
Number of words to read starting at the specified address. A word is 32 bits or 4 bytes.
rule
Used to set the
rule
parameter of a memory access operation. The rule value varies depending on the DTSL device type being used and the associated debug probe functionality that uses it. This parameter is most useful for Memory Access Port (MEMAP) accesses where it can be used to modify specific parts of the AP’sCSW
register. The rule parameter might have more specialist uses for some core device accesses in certain circumstances.For an AHB device, the rule field maps to the 5 bits of the
HPROT
field.For an AXI-AP device, the encoding of the rule field is more complex, and consists of:
-
Mode
(4 bits) << 0x10 -
Domain
(3 bits) << 0x8 -
Ace
bit << 0x7 -
PROT
(3 bits) << 0x4 -
CACHE
( 4bits)
See the Arm Debug Interface Architecture Specification ADIv6.0 for details of what effect these values have on the accesses using the above memory buses.
Example
%> memread 0x80540000 8
Reading from device no. 1: CSMEMAP_0
0x80540000 : 0x00000000
0x80540004 : 0x00000000
0x80540008 : 0x00000000
0x8054000c : 0x00000003
0x80540010 : 0x00000001
0x80540014 : 0x00000000
0x80540018 : 0x00000000
0x8054001c : 0x00000000
%> mr 0x80540000 8 rule=0
Reading from device no. 1: CSMEMAP_0
0x80540000 : 0x00000000
0x80540004 : 0x00000000
0x80540008 : 0x00000000
0x8054000c : 0x00000003
0x80540010 : 0x00000001
0x80540014 : 0x00000000
0x80540018 : 0x00000000
0x8054001c : 0x00000000 -
-
memwrite (mw)
Write memory to the specified address.
To run this command, you must have a debug probe connection with a SDF or a debug probe connection and have discovered CoreSight devices. See
connect (con)
for details on how to connect to your debug probe. Seeautodetect (auto)
orchain (chn)
for details on discovering CoreSight devices.Syntax
memwrite (mw) <address> <data>...[dataN]* [rule=<memory operation modifiers>]
Where:
address
Address to write to.
data...dataN
Data to write starting at the specified address.
rule
Used to set the
rule
parameter of a memory access operation. The rule value varies depending on the DTSL device type that is being used and the associated debug probe functionality that uses it. This parameter is most useful for Memory Access Port (MEMAP) accesses where it can be used to modify specific parts of theCSW
register of the AP. The rule parameter might have more specialist uses for some core device accesses in certain circumstances.For an AHB device, the rule field maps to the 5 bits of the
HPROT
field.For an AXI-AP device, the encoding of the rule field is more complex, and consists of:
-
Mode
(4 bits) << 0x10 -
Domain
(3 bits) << 0x8 -
Ace
bit << 0x7 -
PROT
(3 bits) << 0x4 -
CACHE
( 4bits)
See the Arm Debug Interface Architecture Specification ADIv6.0 for details of what effect these values have on the accesses using the above memory buses.
Example
%> memwrite 0x80540004 1
Writing to device no. 1: CSMEMAP_0
Wrote 4 bytes.
%> mw 0x80540004 0 rule=0
Writing to device no. 1: CSMEMAP_0
Wrote 4 bytes. -
-
setprobe (probe)
Set the active probe type.
To use this command for an additional probe, you must have loaded the additional probe's definition XML file. See
loadprobes (load)
for details on how to load an additional probe from a probe definition XML file.Note: By default, the active probe is set to DSTREAM. In order to connect to a different probe, the probe type must be changed accordingly using this command. See the instructions at
listprobes (probes)
for the details on how to list the available probe types.Syntax
setprobe (probe) <probe type>
Where:
probe type
Set the probe type to be used. Use the
listprobes (probes)
to view the available probe types.Example
%> setprobe DSTREAM Probe type was set to DSTREAM.
%> setprobe MyProbe Probe type was set to MyProbe. -
unloadprobes (unload)
Remove previously loaded additional probe from the probe definition file.
To run this command, you must have loaded a probe vendor provided probe definition file and RDDI library file. See the instructions for
loadprobes (load)
for details on how to load additional probes. See the instructions atlistprobes (probes)
for the details on how to list the available probe types.Syntax
unloadprobes (unload) <xml file>
Where:
xml file
Path to the probe definition XML file.
Example
%> unloadprobes c:\work\probes.xml Probe MyProbe was unloaded.