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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [or_debug_proxy/] [includes/] [win_FTCJTAG.h] - Blame information for rev 1779

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1779 julius
/*++
2
 
3
FTC MPSSE Interface DLLs - Copyright © FTDI Ltd. 2009
4
 
5
 
6
The source code to the FTCI2C, FTCJTAG and FTCSPI DLLs is provided as-is and no warranty is made as to its function or reliability.
7
 
8
This source code may be freely modified and redistributed, provided that the FTDI Ltd. copyright notice remains intact.
9
 
10
Copyright (c) 2005 Future Technology Devices International Ltd.
11
 
12
Module Name:
13
 
14
    ftcjtag.h
15
 
16
Abstract:
17
 
18
    API DLL for FT2232C Dual Device setup to simulate the Joint Test Action Group(JTAG) synchronous protocol.
19
    FTCJTAG library definitions
20
 
21
Environment:
22
 
23
    kernel & user mode
24
 
25
Revision History:
26
 
27
    07/02/05    kra     Created.
28
 
29
--*/
30
 
31
 
32
#ifndef win_FTCJTAG_H
33
#define win_FTCJTAG_H
34
 
35
 
36
// The following ifdef block is the standard way of creating macros
37
// which make exporting from a DLL simpler.  All files within this DLL
38
// are compiled with the FTCJTAG_EXPORTS symbol defined on the command line.
39
// This symbol should not be defined on any project that uses this DLL.
40
// This way any other project whose source files include this file see
41
// FTCJTAG_API functions as being imported from a DLL, whereas this DLL
42
// sees symbols defined with this macro as being exported.
43
 
44
#ifdef FTCJTAG_EXPORTS
45
#define FTCJTAG_API __declspec(dllexport)
46
#else
47
#define FTCJTAG_API __declspec(dllimport)
48
#endif
49
 
50
typedef DWORD FTC_HANDLE;
51
typedef ULONG FTC_STATUS;
52
 
53
#define TEST_LOGIC_STATE 1
54
#define RUN_TEST_IDLE_STATE 2
55
#define PAUSE_TEST_DATA_REGISTER_STATE 3
56
#define PAUSE_INSTRUCTION_REGISTER_STATE 4
57
#define SHIFT_TEST_DATA_REGISTER_STATE 5
58
#define SHIFT_INSTRUCTION_REGISTER_STATE 6
59
 
60
#define FTC_SUCCESS 0 // FTC_OK
61
#define FTC_INVALID_HANDLE 1 // FTC_INVALID_HANDLE
62
#define FTC_DEVICE_NOT_FOUND 2 //FTC_DEVICE_NOT_FOUND
63
#define FTC_DEVICE_NOT_OPENED 3 //FTC_DEVICE_NOT_OPENED
64
#define FTC_IO_ERROR 4 //FTC_IO_ERROR
65
#define FTC_INSUFFICIENT_RESOURCES 5 // FTC_INSUFFICIENT_RESOURCES
66
 
67
#define FTC_FAILED_TO_COMPLETE_COMMAND 20          // cannot change, error code mapped from FT2232c classes
68
#define FTC_FAILED_TO_SYNCHRONIZE_DEVICE_MPSSE 21  // cannot change, error code mapped from FT2232c classes
69
#define FTC_INVALID_DEVICE_NAME_INDEX 22           // cannot change, error code mapped from FT2232c classes
70
#define FTC_NULL_DEVICE_NAME_BUFFER_POINTER 23     // cannot change, error code mapped from FT2232c classes 
71
#define FTC_DEVICE_NAME_BUFFER_TOO_SMALL 24        // cannot change, error code mapped from FT2232c classes
72
#define FTC_INVALID_DEVICE_NAME 25                 // cannot change, error code mapped from FT2232c classes
73
#define FTC_INVALID_LOCATION_ID 26                 // cannot change, error code mapped from FT2232c classes
74
#define FTC_DEVICE_IN_USE 27                       // cannot change, error code mapped from FT2232c classes
75
#define FTC_TOO_MANY_DEVICES 28                    // cannot change, error code mapped from FT2232c classes
76
#define FTC_INVALID_CLOCK_DIVISOR 29
77
#define FTC_NULL_INPUT_OUTPUT_BUFFER_POINTER 30
78
#define FTC_INVALID_NUMBER_BITS 31
79
#define FTC_NULL_WRITE_DATA_BUFFER_POINTER 32
80
#define FTC_INVALID_NUMBER_BYTES 33
81
#define FTC_NUMBER_BYTES_TOO_SMALL 34
82
#define FTC_INVALID_TAP_CONTROLLER_STATE 35
83
#define FTC_NULL_READ_DATA_BUFFER_POINTER 36
84
#define FTC_COMMAND_SEQUENCE_BUFFER_FULL 37
85
#define FTC_NULL_READ_CMDS_DATA_BUFFER_POINTER 38
86
#define FTC_NO_COMMAND_SEQUENCE 39
87
#define FTC_NULL_DLL_VERSION_BUFFER_POINTER 40
88
#define FTC_DLL_VERSION_BUFFER_TOO_SMALL 41
89
#define FTC_NULL_LANGUAGE_CODE_BUFFER_POINTER 42
90
#define FTC_NULL_ERROR_MESSAGE_BUFFER_POINTER 43
91
#define FTC_ERROR_MESSAGE_BUFFER_TOO_SMALL 44
92
#define FTC_INVALID_LANGUAGE_CODE 45
93
#define FTC_INVALID_STATUS_CODE 46
94
 
95
#ifdef __cplusplus
96
extern "C" {
97
#endif
98
 
99
FTCJTAG_API
100
FTC_STATUS WINAPI JTAG_GetNumDevices(LPDWORD lpdwNumDevices);
101
 
102
FTCJTAG_API
103
FTC_STATUS WINAPI JTAG_GetDeviceNameLocID(DWORD dwDeviceNameIndex, LPSTR lpDeviceNameBuffer, DWORD dwBufferSize, LPDWORD lpdwLocationID);
104
 
105
FTCJTAG_API
106
FTC_STATUS WINAPI JTAG_OpenEx(LPSTR lpDeviceName, DWORD dwLocationID, FTC_HANDLE *pftHandle);
107
 
108
FTCJTAG_API
109
FTC_STATUS WINAPI JTAG_Open(FTC_HANDLE *pftHandle);
110
 
111
FTCJTAG_API
112
FTC_STATUS WINAPI JTAG_Close(FTC_HANDLE ftHandle);
113
 
114
FTCJTAG_API
115
FTC_STATUS WINAPI JTAG_InitDevice(FTC_HANDLE ftHandle, DWORD dwClockDivisor);
116
 
117
FTCJTAG_API
118
FTC_STATUS WINAPI JTAG_GetClock(DWORD dwClockDivisor, LPDWORD lpdwClockFrequencyHz);
119
 
120
FTCJTAG_API
121
FTC_STATUS WINAPI JTAG_SetClock(FTC_HANDLE ftHandle, DWORD dwClockDivisor, LPDWORD lpdwClockFrequencyHz);
122
 
123
FTCJTAG_API
124
FTC_STATUS WINAPI JTAG_SetLoopback(FTC_HANDLE ftHandle, BOOL bLoopbackState);
125
 
126
typedef struct Ft_Input_Output_Pins{
127
  BOOL  bPin1InputOutputState;
128
  BOOL  bPin1LowHighState;
129
  BOOL  bPin2InputOutputState;
130
  BOOL  bPin2LowHighState;
131
  BOOL  bPin3InputOutputState;
132
  BOOL  bPin3LowHighState;
133
  BOOL  bPin4InputOutputState;
134
  BOOL  bPin4LowHighState;
135
}FTC_INPUT_OUTPUT_PINS, *PFTC_INPUT_OUTPUT_PINS;
136
 
137
FTCJTAG_API
138
FTC_STATUS WINAPI JTAG_SetGPIOs(FTC_HANDLE ftHandle, BOOL bControlLowInputOutputPins,
139
                                PFTC_INPUT_OUTPUT_PINS pLowInputOutputPinsData,
140
                                BOOL bControlHighInputOutputPins,
141
                                PFTC_INPUT_OUTPUT_PINS pHighInputOutputPinsData);
142
 
143
typedef struct Ft_Low_High_Pins{
144
  BOOL  bPin1LowHighState;
145
  BOOL  bPin2LowHighState;
146
  BOOL  bPin3LowHighState;
147
  BOOL  bPin4LowHighState;
148
}FTC_LOW_HIGH_PINS, *PFTC_LOW_HIGH_PINS;
149
 
150
FTCJTAG_API
151
FTC_STATUS WINAPI JTAG_GetGPIOs(FTC_HANDLE ftHandle, BOOL bControlLowInputOutputPins,
152
                                PFTC_LOW_HIGH_PINS pLowPinsInputData,
153
                                BOOL bControlHighInputOutputPins,
154
                                PFTC_LOW_HIGH_PINS pHighPinsInputData);
155
 
156
#define MAX_WRITE_DATA_BYTES_BUFFER_SIZE 65536    // 64k bytes
157
 
158
typedef BYTE WriteDataByteBuffer[MAX_WRITE_DATA_BYTES_BUFFER_SIZE];
159
typedef WriteDataByteBuffer *PWriteDataByteBuffer;
160
 
161
FTCJTAG_API
162
FTC_STATUS WINAPI JTAG_Write(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToWrite,
163
                             PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
164
                             DWORD dwTapControllerState);
165
 
166
#define MAX_READ_DATA_BYTES_BUFFER_SIZE 65536    // 64k bytes
167
 
168
typedef BYTE ReadDataByteBuffer[MAX_READ_DATA_BYTES_BUFFER_SIZE];
169
typedef ReadDataByteBuffer *PReadDataByteBuffer;
170
 
171
FTCJTAG_API
172
FTC_STATUS WINAPI JTAG_Read(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToRead,
173
                            PReadDataByteBuffer pReadDataBuffer, LPDWORD lpdwNumBytesReturned,
174
                            DWORD dwTapControllerState);
175
 
176
FTCJTAG_API
177
FTC_STATUS WINAPI JTAG_WriteRead(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToWriteRead,
178
                                 PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
179
                                 PReadDataByteBuffer pReadDataBuffer, LPDWORD lpdwNumBytesReturned,
180
                                 DWORD dwTapControllerState);
181
 
182
FTCJTAG_API
183
FTC_STATUS WINAPI JTAG_ClearCmdSequence(void);
184
 
185
FTCJTAG_API
186
FTC_STATUS WINAPI JTAG_AddWriteCmd(BOOL bInstructionTestData, DWORD dwNumBitsToWrite,
187
                                   PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
188
                                   DWORD dwTapControllerState);
189
 
190
FTCJTAG_API
191
FTC_STATUS WINAPI JTAG_AddReadCmd(BOOL bInstructionTestData, DWORD dwNumBitsToRead, DWORD dwTapControllerState);
192
 
193
FTCJTAG_API
194
FTC_STATUS WINAPI JTAG_AddWriteReadCmd(BOOL bInstructionTestData, DWORD dwNumBitsToWriteRead,
195
                                       PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
196
                                       DWORD dwTapControllerState);
197
 
198
#define MAX_READ_CMDS_DATA_BYTES_BUFFER_SIZE 131071  // 128K bytes 
199
 
200
typedef BYTE ReadCmdSequenceDataByteBuffer[MAX_READ_CMDS_DATA_BYTES_BUFFER_SIZE];
201
typedef ReadCmdSequenceDataByteBuffer *PReadCmdSequenceDataByteBuffer;
202
 
203
FTCJTAG_API
204
FTC_STATUS WINAPI JTAG_ClearDeviceCmdSequence(FTC_HANDLE ftHandle);
205
 
206
FTCJTAG_API
207
FTC_STATUS WINAPI JTAG_AddDeviceWriteCmd(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToWrite,
208
                                         PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
209
                                         DWORD dwTapControllerState);
210
 
211
FTCJTAG_API
212
FTC_STATUS WINAPI JTAG_AddDeviceReadCmd(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToRead, DWORD dwTapControllerState);
213
 
214
FTCJTAG_API
215
FTC_STATUS WINAPI JTAG_AddDeviceWriteReadCmd(FTC_HANDLE ftHandle, BOOL bInstructionTestData, DWORD dwNumBitsToWriteRead,
216
                                             PWriteDataByteBuffer pWriteDataBuffer, DWORD dwNumBytesToWrite,
217
                                             DWORD dwTapControllerState);
218
 
219
FTCJTAG_API
220
FTC_STATUS WINAPI JTAG_ExecuteCmdSequence(FTC_HANDLE ftHandle, PReadCmdSequenceDataByteBuffer pReadCmdSequenceDataBuffer,
221
                                          LPDWORD lpdwNumBytesReturned);
222
 
223
FTCJTAG_API
224
FTC_STATUS WINAPI JTAG_GetDllVersion(LPSTR lpDllVersionBuffer, DWORD dwBufferSize);
225
 
226
FTCJTAG_API
227
FTC_STATUS WINAPI JTAG_GetErrorCodeString(LPSTR lpLanguage, FTC_STATUS StatusCode,
228
                                          LPSTR lpErrorMessageBuffer, DWORD dwBufferSize);
229
 
230
 
231
#ifdef __cplusplus
232
}
233
#endif
234
 
235
 
236
#endif  /* win_FTCJTAG_H */

powered by: WebSVN 2.1.0

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