OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [config/] [or1k/] [tm-or1k.h] - Diff between revs 136 and 146

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 136 Rev 146
Line 64... Line 64...
    ULONGEST (*to_read_reg) PARAMS ((unsigned int regno));
    ULONGEST (*to_read_reg) PARAMS ((unsigned int regno));
    /* Write register.
    /* Write register.
       Does not fail, places error no. in err instead or call error(), if fatal.  */
       Does not fail, places error no. in err instead or call error(), if fatal.  */
    void (*to_write_reg) PARAMS ((unsigned int regno, ULONGEST value));
    void (*to_write_reg) PARAMS ((unsigned int regno, ULONGEST value));
 
 
 
    /* Read a block...possibly more efficient than several isolated
 
       call to read_reg...worst case the same efficiency. Returns 0
 
       on success or errno if a failure occurred. */
 
    int (*to_read_block) PARAMS ((unsigned int regno, void* block, int nRegisters));
 
 
 
    /* Write a block...possibly more efficient than several isolated
 
       call to write_reg...worst case the same efficiency. Returns 0
 
       on success or errno if a failure occurred. */
 
    int (*to_write_block) PARAMS ((unsigned int regno, void* block, int nRegisters));
 
 
    /* Selects scan chain.  All register accesses are related to current scan chain.
    /* Selects scan chain.  All register accesses are related to current scan chain.
       Does not fail, places error no. in err instead or call error(), if fatal.
       Does not fail, places error no. in err instead or call error(), if fatal.
       See jtag_chains enum.  */
       See jtag_chains enum.  */
    void (*to_set_chain) PARAMS ((int chain));
    void (*to_set_chain) PARAMS ((int chain));
 
 
Line 598... Line 608...
{
{
  /* Codes > 0 are for system errors */
  /* Codes > 0 are for system errors */
 
 
  ERR_NONE = 0,
  ERR_NONE = 0,
  ERR_CRC = -1,
  ERR_CRC = -1,
  JTAG_PROXY_INVALID_COMMAND = -2,
  ERR_MEM = -2,
  JTAG_PROXY_SERVER_TERMINATED = -3,
  JTAG_PROXY_INVALID_COMMAND = -3,
  JTAG_PROXY_NO_CONNECTION = -4,
  JTAG_PROXY_SERVER_TERMINATED = -4,
  JTAG_PROXY_PROTOCOL_ERROR = -5,
  JTAG_PROXY_NO_CONNECTION = -5,
  JTAG_PROXY_COMMAND_NOT_IMPLEMENTED = -6,
  JTAG_PROXY_PROTOCOL_ERROR = -6,
  JTAG_PROXY_INVALID_CHAIN = -7,
  JTAG_PROXY_COMMAND_NOT_IMPLEMENTED = -7,
  JTAG_PROXY_INVALID_ADDRESS = -8,
  JTAG_PROXY_INVALID_CHAIN = -8,
 
  JTAG_PROXY_INVALID_ADDRESS = -9,
 
  JTAG_PROXY_ACCESS_EXCEPTION = -10, /* Write to ROM */
 
  JTAG_PROXY_INVALID_LENGTH = -11,
 
  JTAG_PROXY_OUT_OF_MEMORY = -12,
};
};
 
 
/* All JTAG chains.  */
/* All JTAG chains.  */
enum jtag_chains
enum jtag_chains
  {
  {
Line 684... Line 698...
 
 
/* Added by Chris Ziomkowski <chris@asics.ws> 24/05/01 */
/* Added by Chris Ziomkowski <chris@asics.ws> 24/05/01 */
typedef enum {
typedef enum {
  JTAG_COMMAND_READ = 1,
  JTAG_COMMAND_READ = 1,
  JTAG_COMMAND_WRITE = 2,
  JTAG_COMMAND_WRITE = 2,
  JTAG_COMMAND_CHAIN = 3,
  JTAG_COMMAND_BLOCK_READ = 3,
 
  JTAG_COMMAND_BLOCK_WRITE = 4,
 
  JTAG_COMMAND_CHAIN = 5,
} JTAG_proxy_protocol_commands;
} JTAG_proxy_protocol_commands;
 
 
/* Each transmit structure must begin with an integer
/* Each transmit structure must begin with an integer
   which specifies the type of command. Information
   which specifies the type of command. Information
   after this is variable. Make sure to have all information
   after this is variable. Make sure to have all information
Line 713... Line 729...
} JTAGProxyReadMessage;
} JTAGProxyReadMessage;
 
 
typedef struct {
typedef struct {
  uint32_t command;
  uint32_t command;
  uint32_t length;
  uint32_t length;
 
  uint32_t address;
 
  int32_t  nRegisters;
 
  uint32_t data[1];
 
} JTAGProxyBlockWriteMessage;
 
 
 
typedef struct {
 
  uint32_t command;
 
  uint32_t length;
 
  uint32_t address;
 
  int32_t  nRegisters;
 
} JTAGProxyBlockReadMessage;
 
 
 
typedef struct {
 
  uint32_t command;
 
  uint32_t length;
  uint32_t chain;
  uint32_t chain;
} JTAGProxyChainMessage;
} JTAGProxyChainMessage;
 
 
/* The responses are messages specific, however convention
/* The responses are messages specific, however convention
   states the first word should be an error code. Again,
   states the first word should be an error code. Again,
Line 733... Line 764...
  uint32_t data_L;
  uint32_t data_L;
} JTAGProxyReadResponse;
} JTAGProxyReadResponse;
 
 
typedef struct {
typedef struct {
  int32_t status;
  int32_t status;
 
} JTAGProxyBlockWriteResponse;
 
 
 
typedef struct {
 
  int32_t status;
 
  int32_t nRegisters;
 
  uint32_t data[1];
 
  /* uint32_t data[nRegisters-1] still unread */
 
} JTAGProxyBlockReadResponse;
 
 
 
typedef struct {
 
  int32_t status;
} JTAGProxyChainResponse;
} JTAGProxyChainResponse;
 
 
 
 
#endif /* TM_OR1K_H */
#endif /* TM_OR1K_H */
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.