| |||
| Home > Debug Access Port > JTAG-AP > Programmers model overview | |||
Table 2.36 shows the JTAG-AP registers.
Table 2.36. JTAG-AP register summary
| Offset | Type | Width | Reset value | Name |
|---|---|---|---|---|
0x00 | R/W | 32 | 0x00000000 | Control/Status Word, CSW |
0x04 | R/W | 8 | 0x00 | Port Select, PORTSEL |
0x08 | R/W | 8 | 0x00 | Port Status, PSTA |
0x0C | - | - | - | Reserved |
0x10 | R/W | 8 | Undefined | Byte FIFO 1 Entry, BFIFO1 |
0x14 | R/W | 16 | Undefined | Byte FIFO 2 Entry, BFIFO2 |
0x18 | R/W | 24 | Undefined | Byte FIFO 3 Entry, BFIFO3 |
0x1C | R/W | 32 | Undefined | Byte FIFO 4 Entry, BFIFO4 |
0x20-0xF8 | - | - | - | Reserved SBZ |
0xFC | RO | 32 | 0x14760010 | Identification Register, IDR. Required by all access ports |
All the registers are described fully in the ARM Debug Interface v5 Architecture Specification and the ARM Debug Interface v5.1 Architecture Supplement.
The JTAG-AP control word is used to configure and control transfers through the JTAG interface. Figure 2.26 shows the JTAG-AP Control/Status Word Register bit assignments.
Table 2.37 shows the JTAG-AP Control/Status Word Register bit assignments. The register must not be modified while there are outstanding commands in the Write FIFO.
Table 2.37. JTAG-AP Control/Status Word Register bit assignments
| Bits | Type | Name | Function |
|---|---|---|---|
| [31] | RO | SERACTV | JTAG Serializer active. Reset value = b0. |
| [30:28] | RO | WFIFOCNT | Outstanding Write FIFO Byte Count. Reset value = b000. |
| [27] | - | - | Reserved SBZ |
| [26:24] | RO | RFIFOCNT | Outstanding Read FIFO Byte Count. Reset value = b000 |
| [23:4] | - | - | Reserved SBZ 0x00000 |
| [3] | RO | PORTCONNECTED | PORT Connected. AND of PORTCONNECTED inputs of currently selected ports.Reset value = b0. |
| [2] | RO | SRSTCONNECTED[a] | SRST Connected. AND of SRSTCONNECTED inputs of currently selected ports. If multiple ports are selected, it is the AND of all the SRSTCONNECTED inputs from the selected ports. Reset value = b0. |
| [1] | R/W | TRST_OUT | TRST Assert, not self clearing. JTAG TAP controller reset. Reset value = b0. |
| [0] | R/W | SRST_OUT | SRST Assert, not self clearing. Core Reset. Reset value = b0. |
[a] SRSTCONNECTED is a strap pin on the multiplexor inputs. It is set to 1 to indicate that the target JTAG device supports individual SRST controls. | |||
The Port Select Register enables ports if connected and the slave port is currently enabled. The Port Select Register must be written when the TCK engine is idle, SERACTV=0, and WFIFO, WFIFOCNT=0, is empty. Writing at other times can generate unpredictable results.
Figure 2.27 shows the shows the JTAG-AP Port Select Register bit assignments.
Table 2.38 shows the JTAG-AP Port Select Register bit assignments.
Table 2.38. JTAG-AP Port Select Register bit assignments
| Bits | Type | Name | Function |
|---|---|---|---|
| [31:8] | - | - | Reserved SBZ. |
| [7:0] | R/W | PORTSEL | Port Select. Reset value = b00000000. |
The Port Status Register is a sticky register that captures the state of a connected and selected port on every clock cycle. If a connected and selected port is disabled or powered down, even transiently, the corresponding bit in the Port Status Register is set. It remains set until cleared by writing a one to the corresponding bit.
Figure 2.28 shows the JTAG-AP Port Status Register bit assignments.
Table 2.39 shows the JTAG-AP Port Status Register bit assignments.
Table 2.39. JTAG-AP Port Status Register bit assignments
| Bits | Type | Name | Function |
|---|---|---|---|
| [31:8] | - | - | Reserved SBZ. |
| [7:0] | R/W | PSTA | Port Status. Reset value = b00000000. |
The Byte FIFO registers are a word interface to one, two,
three, or four parallel byte entries in the Byte Command FIFO, LSB
first. The DAP Internal Bus is a 32-bit interface with no SIZE field.
So, an address decoding is used to designate size, because the JTAG-AP
Engine JTAG protocol is byte encoded. Writes to the BFIFOx larger
than the current write FIFO depth stall on DAPREADY in
Normal mode. Reads to the BFIFOx larger than the current read FIFO
depth stall on DAPREADY in Normal
mode. For reads less than the full 32-bits, the upper bits are zero.
For example, for a 24-bit read, DAPRDATA[31:24] is 0x00.
Figure 2.29 shows the JTAG-AP Identification Register bit assignments.
Table 2.40 shows the JTAG-AP Identification Register bit assignments.
Table 2.40. JTAG-AP Identification Register bit assignments
| Bits | Type | Name | Value | Meaning |
|---|---|---|---|---|
| [31:28] | RO | Revision | 0x3 | Revision 3 |
| [27:24] | RO | JEDEC bank | 0x4 | Designed by ARM |
| [23:17] | RO | JEDEC code | 0x3B | Designed by ARM |
| [16] | RO | Mem AP | 0x0 | Is a Mem AP |
| [15:8] | - | Reserved | 0x00 | - |
| [7:0] | RO | Identity value | 0x10 | JTAG-AP |