Hi all,
I am looking to add to MIPS core support for Fast Data Channel (FDC) which
requires 38-bit support on the jtag interface. The FDC is like ARM DCC which
provides for higher bandwidth data transfers between a debug host/probe and a
target. The information below is from the current EJTAG Spec 6.11.
Kent
Fast Debug Channel
EJTAG version 5.0 adds an optional Fast Debug Channel (FDC) mechanism for
higher bandwidth data transfers between a debug host/probe and a target. The
existing FASTDATA mechanism was designed to make data transfers
more efficient in terms of TAP bandwidth utilization. However, the FASTDATA
mechanism causes the target CPU to block on every fastdata memory access,
preventing it from executing non-debug instructions and making the data
transfer intrusive to the program under debug. The FDC mechanism allows the
user to set up a data transfer, and then resume normal operation. The data
transfer occurs in the background, and the target CPU can either choose to
check the status of the transfer periodically, or it can choose to be
interrupted at the end of the transfer. The FDC mechanism adds several
architectural components to EJTAG state. The rest of this chapter describes
these components and the usage of FDC in more detail.
8.1 Overview
The FDC mechanism adds two First In First Out (FIFO) structures that are mapped
to the target CPU's physical address map. The probe uses the new FDC TAP
instruction to access these FIFOs, while the CPU accesses them using
memory accesses. To transfer data out of the core, the CPU writes one or more
pieces of data to the transmit FIFO. At this time, the CPU can resume doing
other work. An external probe would examine the status of the transmit FIFO
periodically, and if there is data to be read, the probe starts to receive data
from the FIFO, one entry at a time. When all data from the FIFO has been
drained, the probe goes back to waiting for the CPU to write more data. The CPU
can either choose to be informed of the empty transmit FIFO via an interrupt,
or it can choose to periodically check the status. Receiving data works in a
similar manner, that is, the probe writes to the receive FIFO. At that time,
the CPU is either interrupted, or learns of the event by polling a status bit.
The CPU can then do load accesses to the receive FIFO and receive data being
sent to it by the probe. The primary advantage of FDC is that it does not
require the CPU to be blocked when the probe is reading or writing the data
transfer FIFOs. This significantly reduces the CPU overhead, and makes the data
transfer far less intrusive to
the code executing on the CPU.
8.2 FDC Features
The FDC memory-mapped registers are located in the common device memory map
(CDMM) region. FDC has a device ID of 0xFD.
8.2.2 FDC TAP Instruction
The FDC TAP instruction performs a 38-bit bidirectional transfer of data as
shown in Figure 8.1. On scan out, the probe receives a Data Out valid bit, a
Receive Buffer Full status bit, a 4-bit channel identifier and 32 bits of data.
On
scan in, the probe sends status as to whether the data out in the current
scan-out will be accepted by the probe, a valid bit for data from the probe, 4
channel bits, and 32 bits of data. The probe can cause an interrupt to be sent
to the processor core by sending in a special value with 0xD in the channel
bits and a zero value in the Data In Valid bit. This mechanism can be used by
the probe to interrupt the core in cases where a probe to core transfer
completes without filling the receive FIFO. If receive interrupts are not
enabled, this special value has no effect on the core. Figure 8.1 shows a block
diagram of the FDC mechanism.
Figure 8.1 FDC Block Diagram and TDI to TDO Path
[cid:image003.png@01D075D3.A3463160]
From: Paul Fertser [mailto:d...@users.sf.net]
Sent: Saturday, April 11, 2015 11:36 AM
To: openocd-devel@lists.sourceforge.net
Subject: [OpenOCD-devel] [openocd:tickets] Re: #92 irlen 38 bits support
On Sat, Apr 11, 2015 at 04:54:45PM +0000, Andrey Gursky wrote:
User : 72 6 command.c:666 command_run_line(): Runtime Error:
embedded:startup.tcl:160: session transport is "jtag" but your config requires
JTAG
Sorry about that, it was already reported but the fix hasn't been
merged yet:
http://openocd.zylin.com/#/c/2693/<http://openocd.zylin.com/#/c/2693> .
________________________________
[tickets:#92]<http://sourceforge.net/p/openocd/tickets/92> irlen 38 bits support
Status: new
Milestone: 0.9.0
Created: Mon Apr 06, 2015 03:53 PM UTC by Andrey Gursky
Last Updated: Sat Apr 11, 2015 05:00 PM UTC
Owner: nobody
Dear openocd developers,
to add support of TMS320VC5502, mentioned in tcl/target/omap5912.cfg, following
code in src/jtag/core.c should be fixed:
#define JTAG_IRLEN_MAX 60
...
void jtag_tap_init(struct jtag_tap *tap)
{
unsigned ir_len_bits;
unsigned ir_len_bytes;
/* if we're autoprobing, cope with potentially huge ir_length */
ir_len_bits = tap->ir_length ? : JTAG_IRLEN_MAX;
ir_len_bytes = DIV_ROUND_UP(ir_len_bits, 8);
tap->expected = calloc(1, ir_len_bytes);
tap->expected_mask = calloc(1, ir_len_bytes);
tap->cur_instr = malloc(ir_len_bytes);
/** @todo cope better with ir_length bigger than 32 bits */
if (ir_len_bits > 32)
ir_len_bits = 32;
...
Is it a major design issue of openocd or it could be fixed in an easier way?
Thanks,
Andrey
________________________________
Sent from sourceforge.net because
openocd-devel@lists.sourceforge.net<mailto:openocd-devel@lists.sourceforge.net>
is subscribed to
http://sourceforge.net/p/openocd/tickets/<http://sourceforge.net/p/openocd/tickets>
To unsubscribe from further messages, a project admin can change settings at
http://sourceforge.net/p/openocd/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel