Hi,
Add SWJ_SEQ as command type, with parameters:
1. trn_type, tru_cycles(uint8_t): define Trn:
    Turnaround. This is a period during which the line is not driven and the
state of the line is
    undefined. The length of the turnaround period is controlled by the
TURNROUND field in
    the Wire Control Register, see The Wire Control Register, WCR (SW-DP
only) on page6-18.
    The default setting is a turnaround period of one clock cycle.
    There are additional turnaround periods in the asynchronous SWD
protocol.
2. retry_num(uint16_t): If WAIT is received, retry retry_num, if still not
accessable, then issue SWJ_RETRY_OUT.
3. data(uint32_t*): 32-bit data to send or receive.
4. force_data: if set to 1, data is forced to be sent.
In ADIv5:
    Note
     If Overrun Detection is enabled then a data phase is required on a
FAULT response. For more information
    see Sticky overrun behavior on page5-12.
and:
    Note
     If Overrun Detection is enabled then a data phase is required on a WAIT
response. For more information
    see Sticky overrun behavior on page5-12.
So if Overrun Detection is enabled, force_data should be set to 1.
5. result(uint8_t): return the result of operation, available values are:
SWJ_SUCCESS, SWJ_FAULT, SWJ_NO_RESPONSE, SWJ_RETRY_OUT.
SWJ_SUCCESS: everything is OK.
SWJ_FAULT: FAULT is received as response to request sent by host.
SWJ_NO_RESPONSE: no response is received after request sent.
SWJ_RETRY_OUT: issued after retry retry_num if WAIT response is received.

Add SWJ_RESET as command type:
Simply shifts out 50 clocks with data = 1.

For SWJ_ENABLE, it equals to SWJ_RESET followed by a JTAG_ID read.

Any comments or suggestions?

Reference Docs:
ARM Debug Interface v5.0(ADIv5)

-- 
Best Regards, SimonQian
http://www.SimonQian.com <http://www.simonqian.com/>
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to