Add current draft of The List of Pending and Open Tasks.
[openocd.git] / TODO
1 /** @page thelist Pending and Open Tasks
2
3 This page lists pending and open tasks being considered or worked upon
4 by the OpenOCD community.
5
6
7 Items with a current patch available should include a link to its
8 posting on the openocd-developer mailing list archives.
9
10 Some items may be in progress, usually indicated by the individual whose
11 initials in parentheses following it.  A key for decoding these initials
12 appears after The List.
13
14 Most items are open for the taking, but please post to the mailing list
15 before spending much time working on anything lists here.  The community
16 may have evolved an idea since it was added here.
17
18 Feel free to send patches to add or clarify items on this list, too.
19
20 @verbatim
21 ================================================================== 
22                              The List
23 ------------------------------------------------------------------
24 @endverbatim
25
26 - JTAG/TAP changes:
27   - update all drivers to use tap_get_tms_path_len API.
28     - link to posted patch: @missing
29   - rework TAP state table (started but still needs work)
30     - link to posted patch: @missing
31   - use tap_set_state everywhere to allow logging TAP state transitions
32   - rename other tap_states to use standard JTAG names (suggested by ML)
33     - write script that automate production of the series of 16-17 patches
34     - produce and distribute current series against the current trunk
35     - distribute script so developers can use on WC through live commits
36     - make live commits after giving sufficient notice to others
37   - add TAP_UNKNOWN to augment TAP_INVALID? (suggested by ML/DH)
38   
39 - JTAG Interfaces:
40   - autodetect devices present on the scan chain
41     - implement 'discover_taps' command
42   - FT2232 driver: (DH)
43     - integrate FTD2XX High-Speed Device Patch
44       - link to posted patch: @missing
45     - fix non-recoverability of cable connect/reconnect
46       - link to posted patch: @missing
47     - fix outstanding bugs
48   - J-Link driver: (ZW)
49     - fix outstanding bugs
50     - test with known targets (i.e. working with other interfaces)
51     - test compatibility between v6.0 (yellow) and older units (e.g. v5.2)
52   - TCP driver:
53     - add TCP/IP client and server for remote JTAG interface control
54   - Do others need some help?  Probably....
55
56 - Other Interfaces
57   - SVF/XSVF:
58     - pending tasks??
59   - SPI/UART emulation:
60     - (ab)use bit-banging JTAG interfaces to emulate SPI/UART
61     - allow SPI to program flash, MCUs, etc.
62   - SWD
63
64 - Target Support:
65   - ARM11 improvements (MB?)
66     - fix single stepping  (reported by ØH)
67     - implement missing functionality (grep FNC_INFO_NOTIMPLEMENTED ...)
68   - Cortex A8 support (ML)
69     - add target implementation (ML)
70     - what else remains to be done?
71   - MC1322x support (JW/DE?)
72     - integrate and test support from JW (and DE?)
73     - get working with a known good interface (i.e. not today's jlink)
74   - AT91SAM92xx:
75     - improvements for unknown-board-atmel-at91sam9260.cfg (RD)
76   - STR9x: (ZW)
77     - improvements to str912.cfg to be more general purpose
78   - AVR: (SQ)
79     - independently verify implementation
80     - incrementally improve working prototype in trunk. (SQ)
81     - work out how to debug this target
82     - AVR debugging protocol.
83   - FPGA:
84     - improve things (??)
85   - Coldfire (suggested by NC)
86     - can we draw from the BDM project?  @par
87       http://bdm.sourceforge.net/
88
89   - other targets?  (suggestions always welcome)
90
91 - CFI:
92   - speed enhancements (posted Apr 22 by NC) (??)
93     - link to patch: @missing
94   - finish implementing bus width/chip width handling (suggested by NC)
95     - link to patch: @missing
96   - factor vendor-specific code into separate source files
97   - add new callback interface for vendor-specific code
98   - investigate/implement "thin wrapper" to use eCos CFI drivers (ØH)
99
100 - TCL
101   - Isolate all TCL command support: 
102     - Allow pure C CLI implementations using --disable-builtin-tcl
103     - Allow full TCL support? add --with-tcl=/path/to/installed/tcl
104     - Move TCL support in foo.* to foo_tcl.* (other ideas?)
105
106 - Debugger Support
107   - Keil AGDI interface to OpenOCD (submitted by Dario Vecchio)
108
109 - Architectural Upgrades
110   - Allow N:M:P mapping of servers, targets, and interfaces
111   - loadable module support for interface/target/flash drivers
112   - libopenocd support: @par
113       https://lists.berlios.de/pipermail/openocd-development/2009-May/006405.html
114
115 - Test Suite:
116   - implement server unit tests
117   - implement JTAG core unit tests
118   - implement JTAG interface unit tests
119   - implement flash unit tests
120   - implement target unit tests
121
122 - Test Feedback Tools: @par
123       https://lists.berlios.de/pipermail/openocd-development/2009-May/006358.html
124
125   - extend target test script to produce helpful pass/fail output
126   - provide results submission script
127
128
129 - Generic Hardware Tester:
130   - implement VHDL to use for FPGA-based JTAG TAP testing device
131   - develop test suite that utilizes this testing device
132
133 - Build Systems (Autotools, CMake, etc.)
134   - investigate fixes to permit the use of -Wshadow
135   - change bootstrap to call 'configure --enable-maintainer-mode <opts>'?
136
137 - Miscellaneous:
138   - make JTAG and USB debug output a run-time configuration option
139   - review and clean up interface/target/flash APIs 
140   - factor code to eliminate duplicated functionality
141   - overhaul use of types to improve 32/64-bit portability
142
143 - Berlios Admin:
144   - use patch tracker? @par
145     https://developer.berlios.de/patch/?group_id=4148
146   - use bug tracking?  we need something!
147
148 @verbatim
149 ==================================================================
150 OpenOCD's Active Developers and Testers
151 ------------------------------------------------------------------
152
153 ** | Name            | Status | Targets          | Interfaces
154 ---+-----------------+--------+------------------+----------------
155 NC | Nico Coesel     |   *    | AU1100           | *
156 DE | Duane Ellis     |   *    | *                | *
157 DH | Dick Hollenbeck |   ?    | *                | FT2232
158 ØH | Øyvind Harboe   |   *    | *                | ZY1000
159 JK | Joern Keipf     |   *    | *                | FT2232H/FT4232HS?
160 JW | Jeff Williams   |   ?    | MC1322x          | J-Link
161 MA | Mariano Alvira  |   *    | MC1322x          | J-Link, FTDI
162 MB | Michael Bruck   |   *    | ARM11            | *
163 ML | Magnus Lundin   |   *    | *                | *
164 RA | Rick Altherr    |   *    | *                | *
165 RD | Rene Doss       |   *    | AT91SAM92xx      | *
166 SQ | Simon Qian      |   *    | AVR              | *
167 ZW | Zach Welch      |   *    | STR912           | J-Link
168
169 Status Key:
170 * - Active Contributor
171 ? - Missing In Action
172 V - On Vacation
173
174 @endverbatim
175
176 */