Update documentationf or jtag_interface structure members.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2018 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
0d5da4bccb
commit
41018ff44b
|
@ -189,49 +189,89 @@ static inline tap_state_t jtag_debug_state_machine(const void *tms_buf,
|
||||||
|
|
||||||
typedef struct jtag_interface_s
|
typedef struct jtag_interface_s
|
||||||
{
|
{
|
||||||
|
/// The name of the JTAG interface driver.
|
||||||
char* name;
|
char* name;
|
||||||
|
|
||||||
/* queued command execution
|
/**
|
||||||
|
* Execute queued commands.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
*/
|
*/
|
||||||
int (*execute_queue)(void);
|
int (*execute_queue)(void);
|
||||||
|
|
||||||
/* interface initalization
|
/**
|
||||||
|
* Set the interface speed.
|
||||||
|
* @param speed The new interface speed setting.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
*/
|
*/
|
||||||
int (*speed)(int speed);
|
int (*speed)(int speed);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The interface driver may register additional commands to expose
|
||||||
|
* additional features not covered by the standard command set.
|
||||||
|
* @param cmd_ctx The context in which commands should be registered.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
|
*/
|
||||||
int (*register_commands)(struct command_context_s* cmd_ctx);
|
int (*register_commands)(struct command_context_s* cmd_ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface driver must initalize any resources and connect to a
|
||||||
|
* JTAG device.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
|
*/
|
||||||
int (*init)(void);
|
int (*init)(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface driver must tear down all resources and disconnect from
|
||||||
|
* the JTAG device.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
|
*/
|
||||||
int (*quit)(void);
|
int (*quit)(void);
|
||||||
|
|
||||||
/* returns JTAG maxium speed for KHz. 0=RTCK. The function returns
|
/**
|
||||||
|
* Returns JTAG maxium speed for KHz. 0=RTCK. The function returns
|
||||||
* a failure if it can't support the KHz/RTCK.
|
* a failure if it can't support the KHz/RTCK.
|
||||||
*
|
*
|
||||||
* WARNING!!!! if RTCK is *slow* then think carefully about
|
* WARNING!!!! if RTCK is *slow* then think carefully about
|
||||||
* whether you actually want to support this in the driver.
|
* whether you actually want to support this in the driver.
|
||||||
* Many target scripts are written to handle the absence of RTCK
|
* Many target scripts are written to handle the absence of RTCK
|
||||||
* and use a fallback kHz TCK.
|
* and use a fallback kHz TCK.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
*/
|
*/
|
||||||
int (*khz)(int khz, int* jtag_speed);
|
int (*khz)(int khz, int* jtag_speed);
|
||||||
|
|
||||||
/* returns the KHz for the provided JTAG speed. 0=RTCK. The function returns
|
/**
|
||||||
* a failure if it can't support the KHz/RTCK. */
|
* Calculate the clock frequency (in KHz) for the given @a speed.
|
||||||
|
* @param speed The desired interface speed setting.
|
||||||
|
* @param khz On return, contains the speed in KHz (0 for RTCK).
|
||||||
|
* @returns ERROR_OK on success, or an error code if the
|
||||||
|
* interface cannot support the specified speed (KHz or RTCK).
|
||||||
|
*/
|
||||||
int (*speed_div)(int speed, int* khz);
|
int (*speed_div)(int speed, int* khz);
|
||||||
|
|
||||||
/* Read and clear the power dropout flag. Note that a power dropout
|
/**
|
||||||
|
* Read and clear the power dropout flag. Note that a power dropout
|
||||||
* can be transitionary, easily much less than a ms.
|
* can be transitionary, easily much less than a ms.
|
||||||
*
|
*
|
||||||
* So to find out if the power is *currently* on, you must invoke
|
* To find out if the power is *currently* on, one must invoke this
|
||||||
* this method twice. Once to clear the power dropout flag and a
|
* method twice. Once to clear the power dropout flag and a second
|
||||||
* second time to read the current state.
|
* time to read the current state. The default implementation
|
||||||
|
* never reports power dropouts.
|
||||||
*
|
*
|
||||||
* Currently the default implementation is never to detect power dropout.
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
*/
|
*/
|
||||||
int (*power_dropout)(int* power_dropout);
|
int (*power_dropout)(int* power_dropout);
|
||||||
|
|
||||||
/* Read and clear the srst asserted detection flag.
|
/**
|
||||||
|
* Read and clear the srst asserted detection flag.
|
||||||
*
|
*
|
||||||
* NB!!!! like power_dropout this does *not* read the current
|
* Like power_dropout this does *not* read the current
|
||||||
* state. srst assertion is transitionary and *can* be much
|
* state. SRST assertion is transitionary and may be much
|
||||||
* less than 1ms.
|
* less than 1ms, so the interface driver must watch for these
|
||||||
|
* events until this routine is called.
|
||||||
|
*
|
||||||
|
* @param srst_asserted On return, indicates whether SRST has
|
||||||
|
* been asserted.
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
*/
|
*/
|
||||||
int (*srst_asserted)(int* srst_asserted);
|
int (*srst_asserted)(int* srst_asserted);
|
||||||
} jtag_interface_t;
|
} jtag_interface_t;
|
||||||
|
|
Loading…
Reference in New Issue