You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

285 lines
11 KiB

  1. // This file is part of the Doyxgen Developer Manual
  2. /** @page tasks Pending and Open Tasks
  3. This page lists pending and open tasks being considered or worked upon
  4. by the OpenOCD community.
  5. @section thelist The List
  6. Most items are open for the taking, but please post to the mailing list
  7. before spending much time working on anything lists here. The community
  8. may have evolved an idea since it was added here.
  9. Feel free to send patches to add or clarify items on this list, too.
  10. @section thelisttcl TCL
  11. This section provides possible things to improve with OpenOCD's TCL support.
  12. - Fix problem with incorrect line numbers reported for a syntax
  13. error in a reset init event.
  14. - organize the TCL configurations:
  15. - provide more directory structure for boards/targets?
  16. - factor configurations into layers (encapsulation and re-use)
  17. - Isolate all TCL command support:
  18. - Pure C CLI implementations using --disable-builtin-tcl.
  19. - Allow developers to build new dongles using OpenOCD's JTAG core.
  20. - At first, provide only low-level JTAG support; target layer and
  21. above rely heavily on scripting event mechanisms.
  22. - Allow full TCL support? add --with-tcl=/path/to/installed/tcl
  23. - Move TCL support out of foo.[ch] and into foo_tcl.[ch] (other ideas?)
  24. - See src/jtag/core.c and src/jtag/tcl.c for an example.
  25. - allow some of these TCL command modules to be dynamically loadable?
  26. @section thelistjtag JTAG
  27. This section list issues that need to be resolved in the JTAG layer.
  28. @subsection thelistjtagcore JTAG Core
  29. The following tasks have been suggeted for cleaning up the JTAG layer:
  30. - use tap_set_state everywhere to allow logging TAP state transitions
  31. - rename other tap_states to use standard JTAG names (suggested by ML)
  32. - Encapsulate cmd_queue_cur_state and related varaible handling.
  33. The following tasks have been suggested for adding new core JTAG support:
  34. - autodetect devices present on the scan chain
  35. - implement 'discover_taps' command
  36. - SPI/UART emulation:
  37. - (ab)use bit-banging JTAG interfaces to emulate SPI/UART
  38. - allow SPI to program flash, MCUs, etc.
  39. @subsection thelistjtaginterfaces JTAG Interfaces
  40. The following tasks have been suggeted for improving OpenOCD's JTAG
  41. interface support:
  42. - rework USB communication to be more robust. Two possible options are:
  43. -# use libusb-1.0.1 with libusb-compat-0.1.1 (non-blocking I/O wrapper)
  44. -# rewrite implementation to use non-blocking I/O
  45. - J-Link driver:
  46. - fix to work with long scan chains, such as R.Doss's svf test.
  47. - FT2232 (libftdi):
  48. - make performance comparable to alternatives
  49. - make usability comparable to alternatives
  50. The following tasks have been suggested for adding new JTAG interfaces:
  51. - TCP driver: allow client/server for remote JTAG interface control.
  52. @section thelistswd Serial Wire Debug
  53. - implement Serial Wire Debug interface
  54. @section thelistbs Boundary Scan Support
  55. - add STAPL support?
  56. - add BSDL support?
  57. A few possible options for the above:
  58. -# Fake a TCL equivalent?
  59. -# Integrate an existing library?
  60. -# Write a new C implementation a la Jim?
  61. Once the above are completed:
  62. - add support for programming flash using boundary scan techniques
  63. - add integration with a modified gerber view program:
  64. - provide means to view the PCB and select pins and traces
  65. - allow use-cases such as the following:
  66. - @b Stimulus
  67. -# Double-click on a pin (or trace) with the mouse.
  68. - @b Effects
  69. -# The trace starts blinking, and
  70. -# OpenOCD toggles the pin(s) 0/1.
  71. @section thelisttargets Target Support
  72. - general layer cleanup: @par
  73. https://lists.berlios.de/pipermail/openocd-development/2009-May/006590.html
  74. - regression: xscale does not place debug_handler.bin into the right spot. workaround:
  75. use -s option on command line to place xscale/debug_handler.bin in search path @par
  76. https://lists.berlios.de/pipermail/openocd-development/2009-July/009338.html
  77. - bug: either USBprog is broken with new tms sequence or there is a general
  78. problem with XScale and the new tms sequence. Workaround: use "tms_sequence long"
  79. @par
  80. https://lists.berlios.de/pipermail/openocd-development/2009-July/009426.html
  81. - regression: "reset halt" between 729(works) and 788(fails): @par
  82. https://lists.berlios.de/pipermail/openocd-development/2009-July/009206.html
  83. - ARM923EJS:
  84. - reset run/halt/step is not robust; needs testing to map out problems.
  85. - ARM11 improvements (MB?)
  86. - fix single stepping (reported by �H)
  87. - implement missing functionality (grep FNC_INFO_NOTIMPLEMENTED ...)
  88. - Cortex A8 support (ML)
  89. - add target implementation (ML)
  90. - MC1322x support (JW/DE?)
  91. - integrate and test support from JW (and DE?)
  92. - get working with a known good interface (i.e. not today's jlink)
  93. - AT91SAM92xx:
  94. - improvements for unknown-board-atmel-at91sam9260.cfg (RD)
  95. - STR9x: (ZW)
  96. - improvements to str912.cfg to be more general purpose
  97. - AVR: (SQ)
  98. - independently verify implementation
  99. - incrementally improve working prototype in trunk. (SQ)
  100. - work out how to debug this target
  101. - AVR debugging protocol.
  102. - FPGA:
  103. - Altera Nios Soft-CPU support
  104. - Coldfire (suggested by NC)
  105. - can we draw from the BDM project? @par
  106. http://bdm.sourceforge.net/
  107. or the OSBDM package @par
  108. http://forums.freescale.com/freescale/board/message?board.id=OSBDM08&thread.id=422
  109. @section thelistsvf SVF/XSVF
  110. - develop SVF unit tests
  111. - develop XSVF unit tests
  112. @section thelistflash Flash Support
  113. - aduc702x segfault reported by Thomas A Moulton
  114. https://lists.berlios.de/pipermail/openocd-development/2009-July/009186.html
  115. - aduc7024 programming w/working area does not work:
  116. https://lists.berlios.de/pipermail/openocd-development/2009-July/009337.html
  117. - finish documentation for the following flash drivers:
  118. - avr
  119. - ecosflash
  120. - pic32mx
  121. - ocl
  122. - str9xpec
  123. @subsection thelistflashcfi CFI
  124. - finish implementing bus width/chip width handling (suggested by NC)
  125. - factor vendor-specific code into separate source files
  126. - add new callback interface for vendor-specific code
  127. - investigate/implement "thin wrapper" to use eCos CFI drivers (�H)
  128. @section thelistdebug Debugger Support
  129. - breakpoints can get lost in some circumstances: @par
  130. https://lists.berlios.de/pipermail/openocd-development/2009-June/008853.html
  131. - integrate Keil AGDI interface to OpenOCD? (submitted by Dario Vecchio)
  132. @section thelisttesting Testing Suite
  133. This section includes several related groups of ideas:
  134. - @ref thelistunittests
  135. - @ref thelistsmoketests
  136. - @ref thelisttestreports
  137. - @ref thelisttestgenerichw
  138. @subsection thelistunittests Unit Tests
  139. - add testing skeleton to provide frameworks for adding tests
  140. - implement server unit tests
  141. - implement JTAG core unit tests
  142. - implement JTAG interface unit tests
  143. - implement flash unit tests
  144. - implement target unit tests
  145. @subsection thelistsmoketests Smoke Test Tools
  146. -# extend 'make check' with a smoketest app
  147. - checks for OOCD_TEST_CONFIG, etc. in environment (or config file)
  148. - if properly set, runs the smoke test with specified parameters
  149. - openocd -f ${OOCD_TEST_CONFIG}
  150. - implies a modular test suite (see below)
  151. - should be able to run some minimal tests with dummy interface:
  152. - compare results of baseline sanity checks with expected results
  153. -# builds a more complete test suite:
  154. - existing testing/examples/ look like a great start
  155. - all targets should be tested fully and for all capabilities
  156. - we do NOT want a "lowest common denominator" test suite
  157. - ... but can we start with one to get going?
  158. - probably requires one test configuration file per board/target
  159. - modularization can occur here, just like with targets/boards/chips
  160. - coverage can increase over time, building up bundles of tests
  161. -# add new 'smoketest' Makefile target:
  162. - calls 'make check' (and the smoketest app)
  163. - gather inputs and output into a report file
  164. @subsection thelisttestreports Test Feedback Tools
  165. These ideas were first introduced here: @par
  166. https://lists.berlios.de/pipermail/openocd-development/2009-May/006358.html
  167. - provide report submission scripts for e-mail and web forms
  168. - add new Makefile targets to post the report:
  169. - 'checkreportsend' -- send to list via e-mail (via sendmail)
  170. - 'checkreportpost' -- send web form (via curl or other script)
  171. @subsection thelisttestgenerichw Generic Hardware Tester
  172. - implement VHDL to use for FPGA-based JTAG TAP testing device
  173. - develop test suite that utilizes this testing device
  174. @section thelistautotools Autotools Build System
  175. - make entire configure process require less user consideration:
  176. - automatically detect the features that are available, unless
  177. options were specifically provided to configure
  178. - provide a report of the drivers that will be build at the end of
  179. running configure, so the users can verify which driverswill be
  180. built during 'make' (and their options) .
  181. - eliminate sources of confusion in @c bootstrap script:
  182. -# Make @c bootstrap call 'configure --enable-maintainer-mode \<opts\>'?
  183. -# Add @c buildstrap script to assist with boostrap and configure steps.
  184. - automatically build tool-chains required for cross-compiling
  185. - produce mingw32, arm-elf, others using in-tree scripts
  186. - build all required target code from sources
  187. - make JTAG and USB debug output a run-time configuration option
  188. @section thelistarchitecture Architectural Tasks
  189. The following architectural tasks need to be accomplished and should be
  190. fairly easy to complete:
  191. - clean-up code to match style guides
  192. - factor code to eliminate duplicated functionality
  193. - rewrite code that uses casts to access 16-bit and larger types
  194. from unaligned memory addresses
  195. - libopenocd support: @par
  196. https://lists.berlios.de/pipermail/openocd-development/2009-May/006405.html
  197. - review and clean up interface/target/flash APIs
  198. The following strategic tasks will require ambition, knowledge, and time
  199. to complete:
  200. - overhaul use of types to improve 32/64-bit portability
  201. - types for both host and target word sizes?
  202. - can we use GDB's CORE_TYPE support?
  203. - Allow N:M:P mapping of servers, targets, and interfaces
  204. - loadable module support for interface/target/flash drivers and commands
  205. - support both static and dynamic modules.
  206. - should probably use libltdl for dynamic library handing.
  207. @section thelistadmin Documentation Tasks
  208. - Develop milestone and release guidelines, processes, and scripts.
  209. - Develop "style" guidelines (and scripts) for maintainers:
  210. - reviewing patches
  211. - committing to Subversion
  212. - Review The Guide for OpenOCD Users for documentation errors or omissions
  213. - Update The Manual for OpenOCD Developerrs:
  214. - Add documentation describing the architecture of each module
  215. - Provide more Technical Primers to bootstrap contributor knowledge
  216. */
  217. /** @file
  218. This file contains the @ref thelist page.
  219. */