You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(75) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(70) |
Feb
(20) |
Mar
(52) |
Apr
(149) |
May
(387) |
Jun
(466) |
Jul
(133) |
Aug
(87) |
Sep
(122) |
Oct
(140) |
Nov
(185) |
Dec
(105) |
2010 |
Jan
(85) |
Feb
(45) |
Mar
(75) |
Apr
(17) |
May
(41) |
Jun
(52) |
Jul
(33) |
Aug
(29) |
Sep
(36) |
Oct
(15) |
Nov
(26) |
Dec
(34) |
2011 |
Jan
(26) |
Feb
(25) |
Mar
(26) |
Apr
(29) |
May
(20) |
Jun
(27) |
Jul
(15) |
Aug
(32) |
Sep
(13) |
Oct
(64) |
Nov
(60) |
Dec
(10) |
2012 |
Jan
(64) |
Feb
(63) |
Mar
(39) |
Apr
(43) |
May
(54) |
Jun
(11) |
Jul
(30) |
Aug
(45) |
Sep
(11) |
Oct
(70) |
Nov
(24) |
Dec
(23) |
2013 |
Jan
(17) |
Feb
(8) |
Mar
(35) |
Apr
(40) |
May
(20) |
Jun
(24) |
Jul
(36) |
Aug
(25) |
Sep
(42) |
Oct
(40) |
Nov
(9) |
Dec
(21) |
2014 |
Jan
(29) |
Feb
(24) |
Mar
(60) |
Apr
(22) |
May
(22) |
Jun
(46) |
Jul
(11) |
Aug
(23) |
Sep
(26) |
Oct
(10) |
Nov
(14) |
Dec
(2) |
2015 |
Jan
(28) |
Feb
(47) |
Mar
(33) |
Apr
(58) |
May
(5) |
Jun
(1) |
Jul
|
Aug
(8) |
Sep
(12) |
Oct
(25) |
Nov
(58) |
Dec
(21) |
2016 |
Jan
(12) |
Feb
(40) |
Mar
(2) |
Apr
(1) |
May
(67) |
Jun
(2) |
Jul
(5) |
Aug
(36) |
Sep
|
Oct
(24) |
Nov
(17) |
Dec
(50) |
2017 |
Jan
(14) |
Feb
(16) |
Mar
(2) |
Apr
(35) |
May
(14) |
Jun
(16) |
Jul
(3) |
Aug
(3) |
Sep
|
Oct
(19) |
Nov
|
Dec
(16) |
2018 |
Jan
(55) |
Feb
(11) |
Mar
(34) |
Apr
(14) |
May
(4) |
Jun
(20) |
Jul
(39) |
Aug
(16) |
Sep
(17) |
Oct
(16) |
Nov
(20) |
Dec
(30) |
2019 |
Jan
(29) |
Feb
(24) |
Mar
(37) |
Apr
(26) |
May
(19) |
Jun
(21) |
Jul
(2) |
Aug
(3) |
Sep
(9) |
Oct
(12) |
Nov
(12) |
Dec
(12) |
2020 |
Jan
(47) |
Feb
(36) |
Mar
(54) |
Apr
(44) |
May
(37) |
Jun
(19) |
Jul
(32) |
Aug
(13) |
Sep
(16) |
Oct
(24) |
Nov
(32) |
Dec
(11) |
2021 |
Jan
(14) |
Feb
(5) |
Mar
(40) |
Apr
(32) |
May
(42) |
Jun
(31) |
Jul
(29) |
Aug
(47) |
Sep
(38) |
Oct
(17) |
Nov
(74) |
Dec
(33) |
2022 |
Jan
(11) |
Feb
(15) |
Mar
(40) |
Apr
(21) |
May
(39) |
Jun
(44) |
Jul
(19) |
Aug
(46) |
Sep
(79) |
Oct
(35) |
Nov
(21) |
Dec
(15) |
2023 |
Jan
(56) |
Feb
(13) |
Mar
(43) |
Apr
(28) |
May
(60) |
Jun
(15) |
Jul
(29) |
Aug
(28) |
Sep
(32) |
Oct
(21) |
Nov
(42) |
Dec
(39) |
2024 |
Jan
(35) |
Feb
(17) |
Mar
(28) |
Apr
(7) |
May
(14) |
Jun
(35) |
Jul
(30) |
Aug
(35) |
Sep
(30) |
Oct
(28) |
Nov
(38) |
Dec
(18) |
2025 |
Jan
(21) |
Feb
(28) |
Mar
(36) |
Apr
(35) |
May
(34) |
Jun
(58) |
Jul
(9) |
Aug
(20) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <zw...@ma...> - 2009-07-01 00:25:20
|
Author: zwelch Date: 2009-07-01 00:25:09 +0200 (Wed, 01 Jul 2009) New Revision: 2438 Modified: trunk/src/flash/flash.c Log: Remove at91sam3.h from flash.c; use extern like other drivers. Modified: trunk/src/flash/flash.c =================================================================== --- trunk/src/flash/flash.c 2009-06-30 21:45:34 UTC (rev 2437) +++ trunk/src/flash/flash.c 2009-06-30 22:25:09 UTC (rev 2438) @@ -30,7 +30,6 @@ #include "flash.h" #include "image.h" #include "time_support.h" -#include "at91sam3.h" /* command handlers */ static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); @@ -49,6 +48,7 @@ */ extern flash_driver_t lpc2000_flash; extern flash_driver_t cfi_flash; +extern flash_driver_t at91sam3_flash; extern flash_driver_t at91sam7_flash; extern flash_driver_t str7x_flash; extern flash_driver_t str9x_flash; |
From: <zw...@ma...> - 2009-06-30 23:45:38
|
Author: zwelch Date: 2009-06-30 23:45:34 +0200 (Tue, 30 Jun 2009) New Revision: 2437 Modified: trunk/configure.in Log: Extend 'make dist' to produce both .tar.bz2 and .zip archives, to complement to the standard .tar.gz package. Now, pick your poison! Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-06-30 21:45:26 UTC (rev 2436) +++ trunk/configure.in 2009-06-30 21:45:34 UTC (rev 2437) @@ -3,7 +3,7 @@ [OpenOCD Mailing List <ope...@li...>]) AC_CONFIG_SRCDIR([src/openocd.c]) -AM_INIT_AUTOMAKE([-Wall -Wno-portability]) +AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip]) AM_MAINTAINER_MODE AM_CONFIG_HEADER(config.h) |
From: <zw...@ma...> - 2009-06-30 23:45:31
|
Author: zwelch Date: 2009-06-30 23:45:26 +0200 (Tue, 30 Jun 2009) New Revision: 2436 Modified: trunk/README trunk/doc/openocd.texi Log: Provide some useful information in README file, rather than punting. Add some text to introduce the project to new users. Move packaging, configuration, and compilation of OpenOCD out of the User's Guide and into README, where it can be used by users before configuring and compiling the documentation. Improve notes about required Subversion repository build steps. Add reference to the standard GNU INSTALL file. Modified: trunk/README =================================================================== --- trunk/README 2009-06-30 21:44:48 UTC (rev 2435) +++ trunk/README 2009-06-30 21:45:26 UTC (rev 2436) @@ -1,3 +1,390 @@ -openocd.texi is the authoritative source of OpenOCD documentation +Welcome to OpenOCD! +=================== +OpenOCD provides on-chip programming and debugging support with a +layered architecture of JTAG interface and TAP support, debug target +support (e.g. ARM, MIPS), and flash chip drivers (e.g. CFI, NAND, etc.). +Several network interfaces are available for interactiving with OpenOCD: +HTTP, telnet, TCL, and GDB. The GDB server enables OpenOCD to function +as a "remote target" for source-level debugging of embedded systems +using the GNU GDB program. +This README file contains an overview of the following topics: +- how to find and build more OpenOCD documentation, +- the build process +- packaging tips. +- configuration options + +===================== +OpenOCD Documentation +===================== + +In addition to in-tree documentation, the latest documentation may be +viewed on-line at the following URLs: + + OpenOCD User's Guide: + http://openocd.berlios.de/doc/html/index.html + + OpenOCD Developer's Manual: + http://openocd.berlios.de/doc/doxygen/index.html + +These reflect the latest development versions, so the following section +introduces how to build the complete documentation from the package. + + +For more information, refer to these documents or contact the developers +by subscribing to the OpenOCD developer mailing list: + + ope...@li... + +Building the OpenOCD Documentation +---------------------------------- + +The OpenOCD User's Guide can be produced in two different format: + + # If PDFVIEWER is set, this creates and views the PDF User Guide. + make pdf && ${PDFVIEWER} doc/openocd.pdf + + # If HTMLVIEWER is set, this creates and views the HTML User Guide. + make html && ${HTMLVIEWER} doc/openocd.html/index.html + +The OpenOCD Developer Manual contains information about the internal +architecture and other details about the code: + + make doxygen + + # If HTMLVIEWER is set, this views the HTML Doxygen output. + ${HTMLVIEWER} doxyegen/index.html + +The remaining sections describe how to configure the system such that +you can build the in-tree documentation. + +================== +Installing OpenOCD +================== + +A Note to OpenOCD Users +----------------------- + +If you would rather be working "with" OpenOCD rather than "on" it, your +operating system or interface supplier may provide binaries for you in a +convenient package. + +Such packages should be more stable than SVN trunk, where bleeding-edge +development takes place. These "Packagers" produce binary releases of +OpenOCD after the developers produces new "stable" versions of the +source code. Previous versions of OpenOCD cannot be used to diagnosed +problems with the current release, so users are encouraged to keep in +contact with their distribution package maintainers or interface vendors +to ensure suitable upgrades appear regularly. + +Users of these binary versions of OpenOCD must contact their Packager to +ask for support or newer versions of the binaries; the OpenOCD +developers do not support packages directly. + +A Note to OpenOCD Packagers +--------------------------- + +You are a PACKAGER of OpenOCD if you: + +- Sell dongles: and include pre-built binaries +- Supply tools: A complete development solution +- Supply IDEs: like Eclipse, or RHIDE, etc. +- Build packages: RPM files, or DEB files for a Linux Distro + +As a PACKAGER, you will experience first reports of most issues. +When you fix those problems for your users, your solution may help +prevent hundreds (if not thousands) of other questions from other users. + +If something does not work for you, please work to inform the OpenOCD +developers know how to improve the system or documentation to avoid +future problems, and follow-up to help us ensure the issue will be fully +resolved in our future releases. + +That said, the OpenOCD developers would also like you to follow a few +suggestions: + +- Send patches, including config files, upstream. +- Always build with printer ports enabled. +- Use libftdi + libusb for FT2232 support. + +Remember, the FTD2XX library cannot be used in binary distributions, due +to restrictions of the GPL v2. + +================ +Building OpenOCD +================ + +The INSTALL file contains generic instructions for running 'configure' +and compiling the OpenOCD source code. That file is provided by default +for all GNU automake packages, and + +if you are not familiar with the GNU autotools, then you should read +those instructions first. +Still, the +remainder of this document tries to provide complete instructions for +those looking for a quick-install + +OpenOCD Dependencies +-------------------- + +You will need to install the appropriate driver files, if you want to +build support for a USB or FTDI-based interface: + +- ft2232, jlink, rlink, vsllink, usbprog, arm-jtag-ew: + - libusb: required for portable communication with USB dongles +- ft2232 also requires: + - libftdi: http://www.intra2net.com/opensource/ftdi/ *OR* + - ftd2xx: http://www.ftdichip.com/Drivers/D2XX.htm, + or the Amontec version (from @uref{http://www.amontec.com}), for + easier support of JTAGkey's vendor and product IDs. + +Compiling OpenOCD +----------------- + +To build OpenOCD (on both Linux and Cygwin), use the following sequence +of commands: + + ./configure [with some options listed in the next section] + make + make install + +The 'configure' step generates the Makefiles required to build OpenOCD, +usually with one or more options provided to it. The first 'make' step +will build OpenOCD and place the final executable in ./src/. The +final (optional) step, ``make install'', places all of the files in the +required location. + +Configuration Options +--------------------- + +The configure script takes numerous options, specifying which JTAG +interfaces should be included (among other things). The following list +of options was extracted from the output of './configure --help'. Other +options may be available there: + + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + NOTE: This option is *required* for SVN builds! + It should *not* be used to build a release. + + --enable-dummy Enable building the dummy JTAG port driver + + --enable-ft2232_libftdi Enable building support for FT2232 based devices + using the libftdi driver, opensource alternate of + FTD2XX + --enable-ft2232_ftd2xx Enable building support for FT2232 based devices + using the FTD2XX driver from ftdichip.com + --enable-ftd2xx-highspeed + Enable building support for FT2232H and + FT4232H-based devices (requires >=libftd2xx-0.4.16) + + --enable-gw16012 Enable building support for the Gateworks GW16012 + JTAG Programmer + + --enable-parport Enable building the pc parallel port driver + --disable-parport-ppdev Disable use of ppdev (/dev/parportN) for parport + (for x86 only) + --enable-parport-giveio Enable use of giveio for parport (for CygWin only) + + --enable-presto_libftdi Enable building support for ASIX Presto Programmer + using the libftdi driver + --enable-presto_ftd2xx Enable building support for ASIX Presto Programmer + using the FTD2XX driver + + --enable-amtjtagaccel Enable building the Amontec JTAG-Accelerator driver + --enable-arm-jtag-ew Enable building support for the Olimex ARM-JTAG-EW + Programmer + --enable-jlink Enable building support for the Segger J-Link JTAG + Programmer + --enable-rlink Enable building support for the Raisonance RLink + JTAG Programmer + --enable-usbprog Enable building support for the usbprog JTAG + Programmer + --enable-vsllink Enable building support for the Versaloon-Link JTAG + Programmer + + --enable-oocd_trace Enable building support for the OpenOCD+trace ETM + capture device + + --enable-ep93xx Enable building support for EP93xx based SBCs + --enable-at91rm9200 Enable building support for AT91RM9200 based SBCs + + --enable-ecosboard Enable building support for eCos based JTAG debugger + --enable-zy1000 Enable ZY1000 interface + + --enable-minidriver-dummy + Enable the dummy minidriver. + + --enable-ioutil Enable ioutil functions - useful for standalone + OpenOCD implementations + --enable-httpd Enable builtin httpd server - useful for standalone + OpenOCD implementations + +Miscellaneous Configure Options +------------------------------- + +The following additional options may also be useful: + + --disable-assert turn off assertions + + --enable-verbose Enable verbose JTAG I/O messages (for debugging). + --enable-verbose-jtag-io + Enable verbose JTAG I/O messages (for debugging). + --enable-verbose-usb-io Enable verbose USB I/O messages (for debugging) + --enable-verbose-usb-comms + Enable verbose USB communication messages (for + debugging) + --enable-malloc-logging Include free space in logging messages (requires + malloc.h). + + --disable-gccwarnings Disable extra gcc warnings during build. + --disable-wextra Disable extra compiler warnings + --disable-werror Do not treat warnings as errors + + --enable-release Enable building of an OpenOCD release. This + option is intended for project maintainers. + It simply omits the svn version string when + the openocd -v is executed (to KISS). + + --disable-option-checking + Ignore unrecognized --enable and --with options. + --disable-dependency-tracking speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=no] + --enable-static[=PKGS] build static libraries [default=yes] + +Parallel Port Dongles +--------------------- + +If you want to access the parallel port using the PPDEV interface you +have to specify both --enable-parport AND --enable-parport-ppdev, since the +the later option is an option to the parport driver (see +http://forum.sparkfun.com/viewtopic.php?t=3795 for more info). + +The same is true for the --enable-parport-giveio option, you +have to use both the --enable-parport AND the --enable-parport-giveio +option if you want to use giveio instead of ioperm parallel port access +method. + +FT2232C Based USB Dongles +------------------------- + +There are 2 methods of using the FTD2232, either (1) using the +FTDICHIP.COM closed source driver, or (2) the open (and free) driver +libftdi. + +Using LIBFTDI +------------- + +For both Linux and Windows, both libusb and libftdi must be built and +installed. To use the newer FT2232H chips, supporting RTCK and USB high +speed (480 Mbps), you need libftdi version 0.16 or newer. Many Linux +distributions provide suitable packages for these libraries. + +For Windows, libftdi is supported with versions 0.14 and later. + +With these prerequisites met, configure the libftdi solution like this: + + ./configure --prefix=/path/for/your/install --enable-ft2232_libftdi + +Then type ``make'', and perhaps ``make install''. + +Using FTDI's FTD2XX +------------------- + +Some claim the (closed) FTDICHIP.COM solution is faster, which +is the motivation for supporting it even though its licensing restricts +it to non-redistributable OpenOCD binaries, and it is not available for +all operating systems used with OpenOCD. You may, however, build such +copies for personal use. + +The FTDICHIP drivers come as either a (win32) ZIP file, or a (Linux) +TAR.GZ file. You must unpack them ``some where'' convient. As of this +writing FTDICHIP does not supply means to install these files "in an +appropriate place." + +If your distribution does not package these, there are several +'./configure' options to solve this problem: + + --with-ftd2xx-win32-zipdir + Where (CYGWIN/MINGW) the zip file from ftdichip.com + was unpacked <default=search> + --with-ftd2xx-linux-tardir + Where (Linux/Unix) the tar file from ftdichip.com + was unpacked <default=search> + --with-ftd2xx-lib Use static or shared ftd2xx libs on default static + +If you are using the FTDICHIP.COM driver, download and unpack the +Windows or Linux FTD2xx drivers from the following location: + + http://www.ftdichip.com/Drivers/D2XX.htm + +Remember, this library is binary-only, while OpenOCD is licenced +according to GNU GPLv2 without any exceptions. That means that +_distributing_ copies of OpenOCD built with the FTDI code would violate +the OpenOCD licensing terms. + + +Cygwin/Win32 Notes +****************** + +The Cygwin/Win32 ZIP file contains a directory named ftd2xx.win32. +Assuming that you have extracted this archive in the same directory as +the OpenOCD package, you could configure with options like the following: + + ./configure \ + --enable-ft2232_ftd2xx \ + --with-ftd2xx-win32-zipdir=../ftd2xx.win32 \ + ... other options ... + +Linux Notes +*********** + +The Linux tar.gz archive contains a directory named libftd2xx0.4.16 +(or similar). Assuming that you have extracted this archive in the same +directory as the OpenOCD package, you could configure with options like +the following: + + ./configure \ + --enable-ft2232_ftd2xx \ + --with-ft2xx-linux-tardir=../libftd2xx0.4.16 \ + ... other options ... + +================================= +Obtaining OpenOCD From Subversion +--------------------------------- + +You can download the current SVN version with an SVN client of your +choice from the following repositories: + + svn://svn.berlios.de/openocd/trunk +or + http://svn.berlios.de/svnroot/repos/openocd/trunk + +Using the SVN command line client, you can use the following command to +fetch the latest version (make sure there is no (non-svn) directory +called "openocd" in the current directory): + + svn checkout svn://svn.berlios.de/openocd/trunk openocd + +If you prefer GIT based tools, the @command{git-svn} package works too: + + git svn clone -s svn://svn.berlios.de/openocd + +Tips For Building From The Subversion Repository +************************************************ + +Building OpenOCD from a repository requires a recent version of the GNU +autotools (autoconf >= 2.59 and automake >= 1.9). For building on +Windows, you have to use Cygwin. Make sure that your @env{PATH} +environment variable contains no other locations with Unix utils (like +UnxUtils) - these can't handle the Cygwin paths, resulting in obscure +dependency errors. This was an observation gathered from the logs of +one user; please correct us if this is wrong. + +1) Run './bootstrap' to create the 'configure' script and prepare + the build process for your host system. + +2) Run './configure --enable-maintainer-mode' with other options. + + Modified: trunk/doc/openocd.texi =================================================================== --- trunk/doc/openocd.texi 2009-06-30 21:44:48 UTC (rev 2435) +++ trunk/doc/openocd.texi 2009-06-30 21:45:26 UTC (rev 2436) @@ -61,7 +61,6 @@ @menu * About:: About OpenOCD * Developers:: OpenOCD Developers -* Building OpenOCD:: Building OpenOCD From SVN * JTAG Hardware Dongles:: JTAG Hardware Dongles * About JIM-Tcl:: About JIM-Tcl * Running:: Running OpenOCD @@ -174,10 +173,26 @@ @section OpenOCD Subversion Repository -The ``Building From Source'' section provides instructions to retrieve -and and build the latest version of the OpenOCD source code. -@xref{Building OpenOCD}. +You can download the current SVN version with an SVN client of your +choice from the following repositories: + svn://svn.berlios.de/openocd/trunk +or + http://svn.berlios.de/svnroot/repos/openocd/trunk + +Using the SVN command line client, you can use the following command to +fetch the latest version (make sure there is no (non-svn) directory +called "openocd" in the current directory): + + svn checkout svn://svn.berlios.de/openocd/trunk openocd + +If you prefer GIT based tools, the @command{git-svn} package works too: + + git svn clone -s svn://svn.berlios.de/openocd + +The ``README'' file contains the instructions for building the project +from the repository. + Developers that want to contribute patches to the OpenOCD system are @b{strongly} encouraged to base their work off of the most recent trunk revision. Patches created against older versions may require additional @@ -209,275 +224,6 @@ @uref{https://lists.berlios.de/mailman/listinfo/openocd-svn} -@node Building OpenOCD -@chapter Building OpenOCD -@cindex building - -@section Pre-Built Tools -If you are interested in getting actual work done rather than building -OpenOCD, then check if your interface supplier provides binaries for -you. Chances are that that binary is from some SVN version that is more -stable than SVN trunk where bleeding edge development takes place. - -@section Packagers Please Read! - -You are a @b{PACKAGER} of OpenOCD if you - -@enumerate -@item @b{Sell dongles} and include pre-built binaries -@item @b{Supply tools} i.e.: A complete development solution -@item @b{Supply IDEs} like Eclipse, or RHIDE, etc. -@item @b{Build packages} i.e.: RPM files, or DEB files for a Linux Distro -@end enumerate - -As a @b{PACKAGER}, you will experience first reports of most issues. -When you fix those problems for your users, your solution may help -prevent hundreds (if not thousands) of other questions from other users. - -If something does not work for you, please work to inform the OpenOCD -developers know how to improve the system or documentation to avoid -future problems, and follow-up to help us ensure the issue will be fully -resolved in our future releases. - -That said, the OpenOCD developers would also like you to follow a few -suggestions: - -@enumerate -@item Send patches, including config files, upstream. -@item Always build with printer ports enabled. -@item Use libftdi + libusb for FT2232 support. -@end enumerate - -@section Building From Source - -You can download the current SVN version with an SVN client of your choice from the -following repositories: - - @uref{svn://svn.berlios.de/openocd/trunk} - -or - - @uref{http://svn.berlios.de/svnroot/repos/openocd/trunk} - -Using the SVN command line client, you can use the following command to fetch the -latest version (make sure there is no (non-svn) directory called "openocd" in the -current directory): - -@example - svn checkout svn://svn.berlios.de/openocd/trunk openocd -@end example - -If you prefer GIT based tools, the @command{git-svn} package works too: - -@example - git svn clone -s svn://svn.berlios.de/openocd -@end example - -Building OpenOCD from a repository requires a recent version of the -GNU autotools (autoconf >= 2.59 and automake >= 1.9). -For building on Windows, -you have to use Cygwin. Make sure that your @env{PATH} environment variable contains no -other locations with Unix utils (like UnxUtils) - these can't handle the Cygwin -paths, resulting in obscure dependency errors (This is an observation I've gathered -from the logs of one user - correct me if I'm wrong). - -You further need the appropriate driver files, if you want to build support for -a FTDI FT2232 based interface: - -@itemize @bullet -@item @b{ftdi2232} libftdi (@uref{http://www.intra2net.com/opensource/ftdi/}) -@item @b{ftd2xx} libftd2xx (@uref{http://www.ftdichip.com/Drivers/D2XX.htm}), -or the Amontec version (from @uref{http://www.amontec.com}), -for easier support of JTAGkey's vendor and product IDs. -@end itemize - -libftdi is supported under Windows. Do not use versions earlier than 0.14. -To use the newer FT2232H chips, supporting RTCK and USB high speed (480 Mbps), -you need libftdi version 0.16 or newer. - -Some people say that FTDI's libftd2xx code provides better performance. -However, it is binary-only, while OpenOCD is licenced according -to GNU GPLv2 without any exceptions. -That means that @emph{distributing} copies of OpenOCD built with -the FTDI code would violate the OpenOCD licensing terms. -You may, however, build such copies for personal use. - -To build OpenOCD (on both Linux and Cygwin), use the following commands: - -@example - ./bootstrap -@end example - -Bootstrap generates the configure script, and prepares building on your system. - -@example - ./configure [options, see below] -@end example - -Configure generates the Makefiles used to build OpenOCD. - -@example - make - make install -@end example - -Make builds OpenOCD, and places the final executable in ./src/, the last step, ``make install'' is optional. - -The configure script takes several options, specifying which JTAG interfaces -should be included (among other things): - -@itemize @bullet -@item -@option{--enable-parport} - Enable building the PC parallel port driver. -@item -@option{--enable-parport_ppdev} - Enable use of ppdev (/dev/parportN) for parport. -@item -@option{--enable-parport_giveio} - Enable use of giveio for parport instead of ioperm. -@item -@option{--enable-amtjtagaccel} - Enable building the Amontec JTAG-Accelerator driver. -@item -@option{--enable-ecosboard} - Enable building support for eCosBoard based JTAG debugger. -@item -@option{--enable-ioutil} - Enable ioutil functions - useful for standalone OpenOCD implementations. -@item -@option{--enable-httpd} - Enable builtin httpd server - useful for standalone OpenOCD implementations. -@item -@option{--enable-ep93xx} - Enable building support for EP93xx based SBCs. -@item -@option{--enable-at91rm9200} - Enable building support for AT91RM9200 based SBCs. -@item -@option{--enable-gw16012} - Enable building support for the Gateworks GW16012 JTAG programmer. -@item -@option{--enable-ft2232_ftd2xx} - Support FT2232-family chips using -the closed-source library from FTDICHIP.COM -(result not for re-distribution). -@item -@option{--enable-ft2232_libftdi} - Support FT2232-family chips using -a GPL'd ft2232 support library (result OK for re-distribution). -@item -@option{--with-ftd2xx-win32-zipdir=PATH} - If using FTDICHIP.COM ft2232c driver, -give the directory where the Win32 FTDICHIP.COM 'CDM' driver zip file was unpacked. -@item -@option{--with-ftd2xx-linux-tardir=PATH} - If using FTDICHIP.COM ft2232c driver -on Linux, give the directory where the Linux driver's TAR.GZ file was unpacked. -@item -@option{--with-ftd2xx-lib=shared|static} - Linux only. Default: static. -Specifies how the FTDICHIP.COM libftd2xx driver should be linked. -Note: 'static' only works in conjunction with @option{--with-ftd2xx-linux-tardir}. -The 'shared' value is supported, however you must manually install the required -header files and shared libraries in an appropriate place. -@item -@option{--enable-presto_libftdi} - Enable building support for ASIX Presto programmer using the libftdi driver. -@item -@option{--enable-presto_ftd2xx} - Enable building support for ASIX Presto programmer using the FTD2XX driver. -@item -@option{--enable-usbprog} - Enable building support for the USBprog JTAG programmer. -@item -@option{--enable-oocd_trace} - Enable building support for the OpenOCD+trace ETM capture device. -@item -@option{--enable-jlink} - Enable building support for the Segger J-Link JTAG programmer. -@item -@option{--enable-vsllink} - Enable building support for the Versaloon-Link JTAG programmer. -@item -@option{--enable-rlink} - Enable building support for the Raisonance RLink JTAG programmer. -@item -@option{--enable-arm-jtag-ew} - Enable building support for the Olimex ARM-JTAG-EW programmer. -@item -@option{--enable-dummy} - Enable building the dummy port driver. -@end itemize - -@section Parallel Port Dongles - -If you want to access the parallel port using the PPDEV interface you have to specify -both the @option{--enable-parport} AND the @option{--enable-parport_ppdev} option since -the @option{--enable-parport_ppdev} option actually is an option to the parport driver -(see @uref{http://forum.sparkfun.com/viewtopic.php?t=3795} for more info). - -The same is true for the @option{--enable-parport_giveio} option, you have to -use both the @option{--enable-parport} AND the @option{--enable-parport_giveio} option if you want to use giveio instead of ioperm parallel port access method. - -@section FT2232C Based USB Dongles - -There are 2 methods of using the FTD2232, either (1) using the -FTDICHIP.COM closed source driver, or (2) the open (and free) driver -libftdi. Some claim the (closed) FTDICHIP.COM solution is faster, -which is the motivation for supporting it even though its licensing -restricts it to non-redistributable OpenOCD binaries, and it is -not available for all operating systems used with OpenOCD. - -The FTDICHIP drivers come as either a (win32) ZIP file, or a (Linux) -TAR.GZ file. You must unpack them ``some where'' convient. As of this -writing FTDICHIP does not supply means to install these -files ``in an appropriate place''. -As a result, there are two -``./configure'' options that help. - -Below is an example build process: - -@enumerate -@item Check out the latest version of ``openocd'' from SVN. - -@item If you are using the FTDICHIP.COM driver, download -and unpack the Windows or Linux FTD2xx drivers -(@uref{http://www.ftdichip.com/Drivers/D2XX.htm}). -If you are using the libftdi driver, install that package -(e.g. @command{apt-get install libftdi} on systems with APT). - -@example -/home/duane/ftd2xx.win32 => the Cygwin/Win32 ZIP file contents -/home/duane/libftd2xx0.4.16 => the Linux TAR.GZ file contents -@end example - -@item Configure with options resembling the following. - -@enumerate a -@item Cygwin FTDICHIP solution: -@example -./configure --prefix=/home/duane/mytools \ - --enable-ft2232_ftd2xx \ - --with-ftd2xx-win32-zipdir=/home/duane/ftd2xx.win32 -@end example - -@item Linux FTDICHIP solution: -@example -./configure --prefix=/home/duane/mytools \ - --enable-ft2232_ftd2xx \ - --with-ft2xx-linux-tardir=/home/duane/libftd2xx0.4.16 -@end example - -@item Cygwin/Linux LIBFTDI solution ... assuming that -@itemize -@item For Windows -- that the Windows port of LIBUSB is in place. -@item For Linux -- that libusb has been built/installed and is in place. -@item That libftdi has been built and installed (relies on libusb). -@end itemize - -Then configure the libftdi solution like this: - -@example -./configure --prefix=/home/duane/mytools \ - --enable-ft2232_libftdi -@end example -@end enumerate - -@item Then just type ``make'', and perhaps ``make install''. -@end enumerate - - -@section Miscellaneous Configure Options - -@itemize @bullet -@item -@option{--disable-option-checking} - Ignore unrecognized @option{--enable} and @option{--with} options. -@item -@option{--enable-gccwarnings} - Enable extra gcc warnings during build. -Default is enabled. -@item -@option{--enable-release} - Enable building of an OpenOCD release, generally -this is for developers. It simply omits the svn version string when the -openocd @option{-v} is executed. -@end itemize - @node JTAG Hardware Dongles @chapter JTAG Hardware Dongles @cindex dongles |
From: <zw...@ma...> - 2009-06-30 23:44:52
|
Author: zwelch Date: 2009-06-30 23:44:48 +0200 (Tue, 30 Jun 2009) New Revision: 2435 Removed: trunk/INSTALL Modified: trunk/Makefile.am trunk/bootstrap Log: Switch automake handling to use --gnu mode, not --foreign. Remove INSTALL file; automake generates a copy of the latest version. Deleted: trunk/INSTALL =================================================================== --- trunk/INSTALL 2009-06-30 21:13:53 UTC (rev 2434) +++ trunk/INSTALL 2009-06-30 21:44:48 UTC (rev 2435) @@ -1 +0,0 @@ -openocd.texi is the authoritative source of OpenOCD documentation Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2009-06-30 21:13:53 UTC (rev 2434) +++ trunk/Makefile.am 2009-06-30 21:44:48 UTC (rev 2435) @@ -1,6 +1,6 @@ # not a GNU package. You can remove this line, if # have all needed files, that a GNU package needs -AUTOMAKE_OPTIONS = foreign 1.6 +AUTOMAKE_OPTIONS = gnu 1.6 nobase_dist_pkgdata_DATA = \ contrib/libdcc/dcc_stdio.c \ @@ -34,7 +34,7 @@ TCL_PATH = tcl # command to find paths of script files, relative to TCL_PATH -TCL_FILES := find $(srcdir)/$(TCL_PATH) -name '*.cfg' -o -name '*.tcl' | \ +TCL_FILES = find $(srcdir)/$(TCL_PATH) -name '*.cfg' -o -name '*.tcl' | \ sed -e 's,^$(srcdir)/$(TCL_PATH),,' dist-hook: @@ -61,6 +61,7 @@ DISTCLEANFILES = doxygen.log MAINTAINERCLEANFILES = \ + $(srcdir)/INSTALL \ $(srcdir)/configure \ $(srcdir)/Makefile.in \ $(srcdir)/depcomp \ Modified: trunk/bootstrap =================================================================== --- trunk/bootstrap 2009-06-30 21:13:53 UTC (rev 2434) +++ trunk/bootstrap 2009-06-30 21:44:48 UTC (rev 2435) @@ -17,7 +17,7 @@ ${libtoolize} --automake --copy autoconf autoheader -automake --foreign --add-missing --copy +automake --gnu --add-missing --copy ) # AM_MAINTAINER_MODE requires SVN users provide --enable-maintainer-mode |
From: ntfreak at B. <nt...@ma...> - 2009-06-30 23:13:54
|
Author: ntfreak Date: 2009-06-30 23:13:53 +0200 (Tue, 30 Jun 2009) New Revision: 2434 Modified: trunk/src/flash/at91sam3.c Log: - remove cygwin build warnings in at91sam3.c Modified: trunk/src/flash/at91sam3.c =================================================================== --- trunk/src/flash/at91sam3.c 2009-06-30 20:44:21 UTC (rev 2433) +++ trunk/src/flash/at91sam3.c 2009-06-30 21:13:53 UTC (rev 2434) @@ -1308,9 +1308,9 @@ static void sam3_explain_mckr(struct sam3_chip *pChip) { - uint32_t css, pres,fin; - int pdiv; - const char *cp; + uint32_t css, pres, fin = 0; + int pdiv = 0; + const char *cp = NULL; css = sam3_reg_fieldname(pChip, "CSS", pChip->cfg.PMC_MCKR, 0, 2); switch (css & 3) { |
From: <zw...@ma...> - 2009-06-30 22:44:33
|
Author: zwelch Date: 2009-06-30 22:44:21 +0200 (Tue, 30 Jun 2009) New Revision: 2433 Modified: trunk/tcl/board/atmel_sam3u_ek.cfg trunk/tcl/board/csb337.cfg trunk/tcl/target/at91sam3u1c.cfg trunk/tcl/target/at91sam3u1e.cfg trunk/tcl/target/at91sam3u2c.cfg trunk/tcl/target/at91sam3u2e.cfg trunk/tcl/target/at91sam3u4c.cfg trunk/tcl/target/at91sam3u4e.cfg trunk/tcl/target/at91sam3uXX.cfg trunk/tcl/target/cs351x.cfg Log: Add svn:eol-style native property to TCL files that are missing it. Modified: trunk/tcl/board/atmel_sam3u_ek.cfg =================================================================== --- trunk/tcl/board/atmel_sam3u_ek.cfg 2009-06-30 20:39:02 UTC (rev 2432) +++ trunk/tcl/board/atmel_sam3u_ek.cfg 2009-06-30 20:44:21 UTC (rev 2433) @@ -1 +1 @@ -source [find target/at91sam3u4e.cfg] +source [find target/at91sam3u4e.cfg] Property changes on: trunk/tcl/board/atmel_sam3u_ek.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/board/csb337.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u1c.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u1e.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u2c.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u2e.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u4c.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3u4e.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/at91sam3uXX.cfg ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/tcl/target/cs351x.cfg =================================================================== --- trunk/tcl/target/cs351x.cfg 2009-06-30 20:39:02 UTC (rev 2432) +++ trunk/tcl/target/cs351x.cfg 2009-06-30 20:44:21 UTC (rev 2433) @@ -1,30 +1,30 @@ -if { [info exists CHIPNAME] } { - set _CHIPNAME $CHIPNAME -} else { - set _CHIPNAME cs351x -} - -if { [info exists ENDIAN] } { - set _ENDIAN $ENDIAN -} else { - set _ENDIAN little -} - -if { [info exists CPUTAPID ] } { - set _CPUTAPID $CPUTAPID -} else { - set _CPUTAPID 0x00526fa1 -} - -jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID - -# Create the GDB Target. -set _TARGETNAME [format "%s.cpu" $_CHIPNAME] -target create $_TARGETNAME fa526 -endian $_ENDIAN -chain-position $_TARGETNAME -variant fa526 -# There is 16K of SRAM on this chip -# FIXME: flash programming is not working by using this work area. So comment this out for now. -#$_TARGETNAME configure -work-area-virt 0x00000000 -work-area-phys 0x00000000 -work-area-size 0x4000 -work-area-backup 1 - -# This chip has a DCC ... use it -arm7_9 dcc_downloads enable - +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME cs351x +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + set _ENDIAN little +} + +if { [info exists CPUTAPID ] } { + set _CPUTAPID $CPUTAPID +} else { + set _CPUTAPID 0x00526fa1 +} + +jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID + +# Create the GDB Target. +set _TARGETNAME [format "%s.cpu" $_CHIPNAME] +target create $_TARGETNAME fa526 -endian $_ENDIAN -chain-position $_TARGETNAME -variant fa526 +# There is 16K of SRAM on this chip +# FIXME: flash programming is not working by using this work area. So comment this out for now. +#$_TARGETNAME configure -work-area-virt 0x00000000 -work-area-phys 0x00000000 -work-area-size 0x4000 -work-area-backup 1 + +# This chip has a DCC ... use it +arm7_9 dcc_downloads enable + Property changes on: trunk/tcl/target/cs351x.cfg ___________________________________________________________________ Name: svn:eol-style + native |
From: <zw...@ma...> - 2009-06-30 22:39:10
|
Author: zwelch Date: 2009-06-30 22:39:02 +0200 (Tue, 30 Jun 2009) New Revision: 2432 Modified: trunk/tcl/board/atmel_sam3u_ek.cfg trunk/tcl/target/at91sam3u1c.cfg trunk/tcl/target/at91sam3u1e.cfg trunk/tcl/target/at91sam3u2c.cfg trunk/tcl/target/at91sam3u2e.cfg trunk/tcl/target/at91sam3u4c.cfg trunk/tcl/target/at91sam3u4e.cfg trunk/tcl/target/at91sam3uXX.cfg Log: Remove executable bits from at91sam3 configuration files. Property changes on: trunk/tcl/board/atmel_sam3u_ek.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u1c.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u1e.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u2c.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u2e.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u4c.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3u4e.cfg ___________________________________________________________________ Name: svn:executable - * Property changes on: trunk/tcl/target/at91sam3uXX.cfg ___________________________________________________________________ Name: svn:executable - * |
From: oharboe at B. <oh...@ma...> - 2009-06-30 13:50:05
|
Author: oharboe Date: 2009-06-30 13:50:04 +0200 (Tue, 30 Jun 2009) New Revision: 2431 Modified: trunk/tcl/board/olimex_stm32_h103.cfg trunk/tcl/target/stm32.cfg Log: fre...@op... fix handling of workarea Modified: trunk/tcl/board/olimex_stm32_h103.cfg =================================================================== --- trunk/tcl/board/olimex_stm32_h103.cfg 2009-06-30 09:11:10 UTC (rev 2430) +++ trunk/tcl/board/olimex_stm32_h103.cfg 2009-06-30 11:50:04 UTC (rev 2431) @@ -1,11 +1,7 @@ -# # Olimex STM32-H103 eval board -# # http://olimex.com/dev/stm32-h103.html -# -#Set flash size to 128k for STM32103RB device -set WORKAREASIZE 0x20000 +# Work-area size (RAM size) = 20kB for STM32F103RB device +set WORKAREASIZE 0x5000 source [find target/stm32.cfg] - Modified: trunk/tcl/target/stm32.cfg =================================================================== --- trunk/tcl/target/stm32.cfg 2009-06-30 09:11:10 UTC (rev 2430) +++ trunk/tcl/target/stm32.cfg 2009-06-30 11:50:04 UTC (rev 2431) @@ -12,16 +12,16 @@ set _ENDIAN little } -#Checking if user had set the work-area-size for the chip -#If not, the value will be set to 16k +# Work-area is a space in RAM used for flash programming +# By default use 16kB if { [info exists WORKAREASIZE] } { set _WORKAREASIZE $WORKAREASIZE } else { set _WORKAREASIZE 0x4000 } -# jtag speed -jtag_khz 500 +# JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz +jtag_khz 1000 jtag_nsrst_delay 100 jtag_ntrst_delay 100 |
From: <zw...@ma...> - 2009-06-30 11:11:14
|
Author: zwelch Date: 2009-06-30 11:11:10 +0200 (Tue, 30 Jun 2009) New Revision: 2430 Modified: trunk/tcl/board/ek-lm3s9b9x.cfg trunk/tcl/interface/luminary-icdi.cfg trunk/tcl/target/lm3s9b9x.cfg Log: Add svn:eol-style properties missed in last commit. Property changes on: trunk/tcl/board/ek-lm3s9b9x.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/interface/luminary-icdi.cfg ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/tcl/target/lm3s9b9x.cfg ___________________________________________________________________ Name: svn:eol-style + native |
From: <zw...@ma...> - 2009-06-30 11:09:37
|
Author: zwelch Date: 2009-06-30 11:09:30 +0200 (Tue, 30 Jun 2009) New Revision: 2429 Added: trunk/tcl/board/ek-lm3s9b9x.cfg trunk/tcl/interface/luminary-icdi.cfg trunk/tcl/target/lm3s9b9x.cfg Modified: trunk/doc/openocd.texi trunk/src/jtag/ft2232.c Log: Marcel Jost <mar...@bf...>: This patch adds support for the Luminary Micro LM3S9B90 target and LM3S9B92 Evaluation Kit. These kits include a new ft2232 adapter, the Luminary In-Circuit Debug Interface (ICDI) Board, so this is added as a new ft2232 layout called "luminary_icdi". Modified: trunk/doc/openocd.texi =================================================================== --- trunk/doc/openocd.texi 2009-06-30 09:03:59 UTC (rev 2428) +++ trunk/doc/openocd.texi 2009-06-30 09:09:30 UTC (rev 2429) @@ -539,6 +539,8 @@ @* See: @url{http://www.signalyzer.com} @item @b{evb_lm3s811} @* See: @url{http://www.luminarymicro.com} - The Stellaris LM3S811 eval board has an FTD2232C chip built in. +@item @b{luminary_icdi} +@* See: @url{http://www.luminarymicro.com} - Luminary In-Circuit Debug Interface (ICDI) Board, included in the Stellaris LM3S9B90 and LM3S9B92 Evaluation Kits. @item @b{olimex-jtag} @* See: @url{http://www.olimex.com} @item @b{flyswatter} @@ -1829,6 +1831,7 @@ @item @b{evb_lm3s811} Luminary Micro EVB_LM3S811 as a JTAG interface, either for the local Cortex-M3 (SRST only) or in a passthrough mode (neither SRST nor TRST) +@item @b{luminary_icdi} Luminary In-Circuit Debug Interface (ICDI) Board @item @b{flyswatter} Tin Can Tools Flyswatter @item @b{icebear} ICEbear JTAG adapter from Section 5 @item @b{jtagkey} Amontec JTAGkey and JTAGkey-Tiny (and compatibles) Modified: trunk/src/jtag/ft2232.c =================================================================== --- trunk/src/jtag/ft2232.c 2009-06-30 09:03:59 UTC (rev 2428) +++ trunk/src/jtag/ft2232.c 2009-06-30 09:09:30 UTC (rev 2429) @@ -156,6 +156,7 @@ { "oocdlink", jtagkey_init, jtagkey_reset, NULL }, { "signalyzer", usbjtag_init, usbjtag_reset, NULL }, { "evb_lm3s811", usbjtag_init, usbjtag_reset, NULL }, + { "luminary_icdi", usbjtag_init, usbjtag_reset, NULL }, { "olimex-jtag", olimex_jtag_init, olimex_jtag_reset, olimex_jtag_blink }, { "flyswatter", flyswatter_init, flyswatter_reset, flyswatter_jtag_blink }, { "turtelizer2", turtle_init, turtle_reset, turtle_jtag_blink }, @@ -2163,6 +2164,15 @@ low_output = 0x88; low_direction = 0x8b; } + else if (strcmp(ft2232_layout, "luminary_icdi") == 0) + { + nTRST = 0x0; + nTRSTnOE = 0x00; + nSRST = 0x20; + nSRSTnOE = 0x20; + low_output = 0x88; + low_direction = 0xcb; + } else { LOG_ERROR("BUG: usbjtag_init called for unknown layout '%s'", ft2232_layout); Added: trunk/tcl/board/ek-lm3s9b9x.cfg =================================================================== --- trunk/tcl/board/ek-lm3s9b9x.cfg 2009-06-30 09:03:59 UTC (rev 2428) +++ trunk/tcl/board/ek-lm3s9b9x.cfg 2009-06-30 09:09:30 UTC (rev 2429) @@ -0,0 +1,18 @@ +# +# Luminary Micro Stellaris LM3S9B9x Evaluation Kits +# +# http://www.luminarymicro.com/products/ek-lm3s9b90.html +# http://www.luminarymicro.com/products/ek-lm3s9b92.html +# + +source [find interface/luminary-icdi.cfg] +source [find target/lm3s9b9x.cfg] + +# jtag speed +jtag_khz 500 + +jtag_nsrst_delay 100 +jtag_ntrst_delay 100 + +#LM3S9B9x Evaluation Board has only srst +reset_config srst_only Added: trunk/tcl/interface/luminary-icdi.cfg =================================================================== --- trunk/tcl/interface/luminary-icdi.cfg 2009-06-30 09:03:59 UTC (rev 2428) +++ trunk/tcl/interface/luminary-icdi.cfg 2009-06-30 09:09:30 UTC (rev 2429) @@ -0,0 +1,12 @@ +# +# Luminary Micro Stellaris LM3S9B9x Evaluation Kits +# In-Circuit Debug Interface (ICDI) Board +# +# http://www.luminarymicro.com/products/ek-lm3s9b90.html +# http://www.luminarymicro.com/products/ek-lm3s9b92.html +# + +interface ft2232 +ft2232_device_desc "Luminary Micro ICDI Board" +ft2232_layout luminary_icdi +ft2232_vid_pid 0x0403 0xbcda Added: trunk/tcl/target/lm3s9b9x.cfg =================================================================== --- trunk/tcl/target/lm3s9b9x.cfg 2009-06-30 09:03:59 UTC (rev 2428) +++ trunk/tcl/target/lm3s9b9x.cfg 2009-06-30 09:09:30 UTC (rev 2429) @@ -0,0 +1,39 @@ +# +# Luminary Micro Stellaris LM3S9B9x Microcontroller +# +# http://www.luminarymicro.com/products/lm3s9b90.html +# http://www.luminarymicro.com/products/lm3s9b92.htm +# + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME lm3s9b9x +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + # this defaults to a little endian + set _ENDIAN little +} + +if { [info exists CPUTAPID ] } { + set _CPUTAPID $CPUTAPID +} else { + # forth generation Tempest device + set _CPUTAPID 0x4ba00477 +} + +#jtag scan chain +jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0xf -expected-id $_CPUTAPID + +#Cortex-M3 with Luminary lm3s variant +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME -variant lm3s + +# 16k working area at base of ram +$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 0x4000 -work-area-backup 0 + +#flash configuration +flash bank stellaris 0 0 0 0 0 |
From: <zw...@ma...> - 2009-06-30 11:04:04
|
Author: zwelch Date: 2009-06-30 11:03:59 +0200 (Tue, 30 Jun 2009) New Revision: 2428 Modified: trunk/doc/openocd.texi trunk/src/jtag/tcl.c Log: David Brownell <da...@pa...>: Add "jtag names" command, mirroring "target names" but returning TAP names instead of target names. This starts letting TAPs be manipulated in scripts ... much like what works now for targets. It's a bit limited just yet, since "jtag cget $TAPNAME" doesn't expose all TAP attributes. "$TARGETNAME cget" is more functional. Modified: trunk/doc/openocd.texi =================================================================== --- trunk/doc/openocd.texi 2009-06-30 05:34:44 UTC (rev 2427) +++ trunk/doc/openocd.texi 2009-06-30 09:03:59 UTC (rev 2428) @@ -2354,9 +2354,16 @@ @option{str912}, to support more than one chip of each type. @xref{Config File Guidelines}. -At this writing there is only a single command to work with -scan chains, and there is no support for enumerating -TAPs or examining their attributes. +@deffn Command {jtag names} +Returns the names of all current TAPs in the scan chain. +Use @command{jtag cget} or @command{jtag tapisenabled} +to examine attributes and state of each TAP. +@example +foreach t [jtag names] @{ + puts [format "TAP: %s\n" $t] +@} +@end example +@end deffn @deffn Command {scan_chain} Displays the TAPs in the scan chain configuration, @@ -2369,10 +2376,8 @@ each TAP's instruction register can also change. @end deffn -@c FIXME! there should be commands to enumerate TAPs -@c and get their attributes, like there are for targets. -@c "jtag cget ..." will handle attributes. -@c "jtag names" for enumerating TAPs, maybe. +@c FIXME! "jtag cget" should be able to return all TAP +@c attributes, like "$target_name cget" does for targets. @c Probably want "jtag eventlist", and a "tap-reset" event @c (on entry to RESET state). Modified: trunk/src/jtag/tcl.c =================================================================== --- trunk/src/jtag/tcl.c 2009-06-30 05:34:44 UTC (rev 2427) +++ trunk/src/jtag/tcl.c 2009-06-30 09:03:59 UTC (rev 2428) @@ -391,7 +391,8 @@ JTAG_CMD_TAPDISABLE, JTAG_CMD_TAPISENABLED, JTAG_CMD_CONFIGURE, - JTAG_CMD_CGET + JTAG_CMD_CGET, + JTAG_CMD_NAMES, }; const Jim_Nvp jtag_cmds[] = { @@ -403,6 +404,7 @@ { .name = "tapdisable" , .value = JTAG_CMD_TAPDISABLE }, { .name = "configure" , .value = JTAG_CMD_CONFIGURE }, { .name = "cget" , .value = JTAG_CMD_CGET }, + { .name = "names" , .value = JTAG_CMD_NAMES }, { .name = NULL, .value = -1 }, }; @@ -497,7 +499,8 @@ case JTAG_CMD_CGET: if (goi.argc < 2) { - Jim_WrongNumArgs(goi.interp, 0, NULL, "?tap-name? -option ..."); + Jim_WrongNumArgs(goi.interp, 0, NULL, + "cget tap_name queryparm"); return JIM_ERR; } @@ -517,7 +520,8 @@ case JTAG_CMD_CONFIGURE: if (goi.argc < 3) { - Jim_WrongNumArgs(goi.interp, 0, NULL, "?tap-name? -option ?VALUE? ..."); + Jim_WrongNumArgs(goi.interp, 0, NULL, + "configure tap_name attribute value ..."); return JIM_ERR; } @@ -533,6 +537,27 @@ goi.isconfigure = 1; return jtag_tap_configure_cmd(&goi, t); } + break; + + case JTAG_CMD_NAMES: + if (goi.argc != 0) { + Jim_WrongNumArgs(goi.interp, 1, goi.argv, "Too many parameters"); + return JIM_ERR; + } + Jim_SetResult(goi.interp, Jim_NewListObj(goi.interp, NULL, 0)); + { + jtag_tap_t *tap; + + for (tap = jtag_all_taps(); tap; tap = tap->next_tap) { + Jim_ListAppendElement(goi.interp, + Jim_GetResult(goi.interp), + Jim_NewStringObj(goi.interp, + tap->dotted_name, -1)); + } + return JIM_OK; + } + break; + } return JIM_ERR; |
From: <zw...@ma...> - 2009-06-30 07:34:54
|
Author: zwelch Date: 2009-06-30 07:34:44 +0200 (Tue, 30 Jun 2009) New Revision: 2427 Modified: trunk/BUGS Log: Improve BUGS file wording and layout. Modified: trunk/BUGS =================================================================== --- trunk/BUGS 2009-06-30 05:34:36 UTC (rev 2426) +++ trunk/BUGS 2009-06-30 05:34:44 UTC (rev 2427) @@ -5,24 +5,35 @@ ope...@li... -To minimize work for OpenOCD developers, you can include -all the information below. If you feel that some of the -items below are unnecessary for a clear bug report, you -leave them out. +To minimize work for OpenOCD developers, you should try to include +all of the information listed below. If you feel that some of the +items below are unnecessary for a clear bug report, you may leave +them out; likewise, feel free to include additional information +that may be important. - Target PCB/board description -- Config scripts +- Configuration scripts - OpenOCD command line - List of commands issued or GDB operations performed - Expected result - Actual result -- Logs using @c debug_level 3 (e.g. add '-d 3' to the command line) -- If this is a regression, include logs for working and broken version -- If this is a regression, please find out the precise version that - caused the regression. This can be done via a binary search; For - example: if testing version 550 works but 600 fail, then try 575, etc. +- Logs using <code>debug_level 3</code> (or with '-d 3' on the command line) +- If the report is for a regression: + - Include logs for both working and broken versions. + - Find the precise version that caused the regression by binary search. + For example: if testing version 550 works but 600 fail, then try 575, etc. -- If OpenOCD is crashing, you can use GDB to get a trace:@par +If possible, please develop and attach a patch that helps to expose or +solve the reported problem. See the PATCHES file for more information +for that process. + +Attach all files directly to your posting. The mailing list knows to +transform attachments to links, but attachments must be less than 300KB +in total. + +@section bugscrashdump Obtaining Crash Backtraces + +If OpenOCD is crashing, you can use GDB to get a trace:@par @code % gdb --args openocd .... (gdb) run @@ -30,8 +41,10 @@ => here a stack trace is dumped. @endcode -- To run or debug the in-tree executable (not recommended), you must - use libtool to set up the correct shared library paths: +@section bugsintreedebug Running and Debugging In-Tree + +To run or debug the in-tree executable (not recommended), you must +use libtool to set up the correct shared library paths: @code libtool gdb --args openocd .... @endcode @@ -39,9 +52,6 @@ @code libtool --mode=execute gdb --args openocd .... @endcode -- Attach files directly to the posting. The mailing list knows to -transform attachments to links so you will not be bloating anyones mail -box. Please keep attachments to less than 100KB. */ /** @file |
From: <zw...@ma...> - 2009-06-30 07:34:41
|
Author: zwelch Date: 2009-06-30 07:34:36 +0200 (Tue, 30 Jun 2009) New Revision: 2426 Modified: trunk/src/helper/membuf.h Log: Fix doxygen 'undocumented parameter' warnings in membuf.h. Modified: trunk/src/helper/membuf.h =================================================================== --- trunk/src/helper/membuf.h 2009-06-30 05:34:28 UTC (rev 2425) +++ trunk/src/helper/membuf.h 2009-06-30 05:34:36 UTC (rev 2426) @@ -79,6 +79,7 @@ /** Tokenize lines using strtok() * @param pBuf - buffer to tokenize * @param delim - delimiter parameter for strtok_r() + * @param pSave - pointer to string context for tokenization * * Identical to "strtok()" - pass "pBuff = NULL" on second call * @@ -112,7 +113,7 @@ * Modified symantics of "strcat()". On memory allocation failure * returns NULL. On success, returns pointer to orginal membuf. */ -struct membuf *membuf_strcat(struct membuf *pBuf, const char *s); +struct membuf *membuf_strcat(struct membuf *pBuf, const char *str); #endif |
From: <zw...@ma...> - 2009-06-30 07:34:33
|
Author: zwelch Date: 2009-06-30 07:34:28 +0200 (Tue, 30 Jun 2009) New Revision: 2425 Modified: trunk/src/flash/flash.h Log: Fix search and replace casualty in flash.h doxygen block. Modified: trunk/src/flash/flash.h =================================================================== --- trunk/src/flash/flash.h 2009-06-30 05:34:21 UTC (rev 2424) +++ trunk/src/flash/flash.h 2009-06-30 05:34:28 UTC (rev 2425) @@ -76,7 +76,7 @@ * that matches @c DRIVERNAME. * * The flash subsystem calls some of the other drivers routines a using - * corresponding static <code > flash_driver_ < i>callback</i > ()</code> + * corresponding static <code>flash_driver_<i>callback</i>()</code> * routine in flash.c. */ typedef struct flash_driver_s |
From: <zw...@ma...> - 2009-06-30 07:34:26
|
Author: zwelch Date: 2009-06-30 07:34:21 +0200 (Tue, 30 Jun 2009) New Revision: 2424 Modified: trunk/src/jtag/jtag.h Log: Fix doxygen warning in jtag.h caused by a changed parameter name. Modified: trunk/src/jtag/jtag.h =================================================================== --- trunk/src/jtag/jtag.h 2009-06-30 05:34:07 UTC (rev 2423) +++ trunk/src/jtag/jtag.h 2009-06-30 05:34:21 UTC (rev 2424) @@ -437,7 +437,7 @@ * arguments. * * @param f The callback function to add. - * @param in Typically used to point to the data to operate on. + * @param data0 Typically used to point to the data to operate on. * Frequently this will be the data clocked in during a shift operation. * @param data1 An integer big enough to use as an @c int or a pointer. * @param data2 An integer big enough to use as an @c int or a pointer. |
From: <zw...@ma...> - 2009-06-30 07:34:13
|
Author: zwelch Date: 2009-06-30 07:34:07 +0200 (Tue, 30 Jun 2009) New Revision: 2423 Modified: trunk/src/flash/at91sam3.c Log: Fix doxygen warnings in new at91sam3 source file; normalize style. Remove editor configuration from end of file. Modified: trunk/src/flash/at91sam3.c =================================================================== --- trunk/src/flash/at91sam3.c 2009-06-30 05:33:57 UTC (rev 2422) +++ trunk/src/flash/at91sam3.c 2009-06-30 05:34:07 UTC (rev 2423) @@ -554,8 +554,8 @@ **********************************************************************/ /* *ATMEL* style code - from the SAM3 driver code */ -/** Get the current status of the EEFC - * +/** + * Get the current status of the EEFC and * the value of some status bits (LOCKE, PROGE). * @param pPrivate - info about the bank * @param v - result goes here @@ -574,7 +574,8 @@ return r; } -/** Get the result of the last executed command. +/** + * Get the result of the last executed command. * @param pPrivate - info about the bank * @param v - result goes here */ @@ -683,8 +684,8 @@ return r; } -/** Performs the given command and wait until its completion (or an error). - * +/** + * Performs the given command and wait until its completion (or an error). * @param pPrivate - info about the bank * @param command - Command to perform. * @param argument - Optional command argument. @@ -741,13 +742,11 @@ -/** Read the unique ID. - * - * \param pPrivate - info about the bank - * +/** + * Read the unique ID. + * @param pPrivate - info about the bank * The unique ID is stored in the 'pPrivate' structure. */ - static int FLASHD_ReadUniqueID (struct sam3_bank_private *pPrivate) { @@ -787,7 +786,8 @@ } -/** Erases the entire flash. +/** + * Erases the entire flash. * @param pPrivate - the info about the bank. */ static int @@ -799,11 +799,11 @@ -/** Gets current GPNVM state. +/** + * Gets current GPNVM state. * @param pPrivate - info about the bank. * @param gpnvm - GPNVM bit index. * @param puthere - result stored here. - * */ //------------------------------------------------------------------------------ static int @@ -845,10 +845,11 @@ -/** Clears the selected GPNVM bit. - * @param gpnvm GPNVM index. - * - * Returns 0 if successful; otherwise returns an error code. +/** + * Clears the selected GPNVM bit. + * @param pPrivate info about the bank + * @param gpnvm GPNVM index. + * @returns 0 if successful; otherwise returns an error code. */ static int FLASHD_ClrGPNVM(struct sam3_bank_private *pPrivate, unsigned gpnvm) @@ -880,9 +881,10 @@ -/** Sets the selected GPNVM bit. - * @param gpnvm GPNVM index. - * +/** + * Sets the selected GPNVM bit. + * @param pPrivate info about the bank + * @param gpnvm GPNVM index. */ static int FLASHD_SetGPNVM(struct sam3_bank_private *pPrivate, unsigned gpnvm) @@ -916,12 +918,11 @@ } -/** Returns a bit field (at most 64) of locked regions within a page. - * @param pPrivate - info about the bank - * @param v - where to store locked bits - * \param end End address of range. +/** + * Returns a bit field (at most 64) of locked regions within a page. + * @param pPrivate info about the bank + * @param v where to store locked bits */ - static int FLASHD_GetLockBits(struct sam3_bank_private *pPrivate, uint32_t *v) { @@ -936,10 +937,11 @@ } -/**Unlocks all the regions in the given address range. - * - * \param start_sector - first sector to unlock - * \param end_sector - last (inclusive) to unlock +/** + * Unlocks all the regions in the given address range. + * @param pPrivate info about the bank + * @param start_sector first sector to unlock + * @param end_sector last (inclusive) to unlock */ static int @@ -969,13 +971,12 @@ } -/** Locks regions - * +/** + * Locks regions + * @param pPrivate - info about the bank * @param start_sector - first sector to lock * @param end_sector - last sector (inclusive) to lock */ - - static int FLASHD_Lock(struct sam3_bank_private *pPrivate, unsigned start_sector, @@ -1460,9 +1461,9 @@ return (struct sam3_bank_private *)(bank->driver_priv); } -/* - * Given a pointer to where it goes in the structure.. - * Determine the register name, address from the all registers table. +/** + * Given a pointer to where it goes in the structure, + * determine the register name, address from the all registers table. */ static const struct sam3_reg_list * sam3_GetReg(struct sam3_chip *pChip, uint32_t *goes_here) @@ -2528,13 +2529,3 @@ .protect_check = sam3_protect_check, .info = sam3_info }; - - - -/** - * Local Variables: ** - * mode: c ** - * c-basic-offset: 4 ** - * tab-width: 4 ** - * End: ** - */ |
From: <zw...@ma...> - 2009-06-30 07:34:04
|
Author: zwelch Date: 2009-06-30 07:33:57 +0200 (Tue, 30 Jun 2009) New Revision: 2422 Modified: trunk/src/jtag/interfaces.c trunk/src/jtag/interfaces.h Log: Fix @file documentation blocks in new interfaces source files. Modified: trunk/src/jtag/interfaces.c =================================================================== --- trunk/src/jtag/interfaces.c 2009-06-30 05:33:41 UTC (rev 2421) +++ trunk/src/jtag/interfaces.c 2009-06-30 05:33:57 UTC (rev 2422) @@ -33,12 +33,12 @@ #include "interfaces.h" -/** - * @file This file includes declarations for all built-in jtag interfaces, - * which are then listed in the jtag_interfaces array. +/** @file + * This file includes declarations for all built-in jtag interfaces, + * which are then listed in the jtag_interfaces array. * - * Dynamic loading can be implemented be searching for shared libraries - * that contain a jtag_interface structure that can added to this list. + * Dynamic loading can be implemented be searching for shared libraries + * that contain a jtag_interface structure that can added to this list. */ #if BUILD_ZY1000 == 1 Modified: trunk/src/jtag/interfaces.h =================================================================== --- trunk/src/jtag/interfaces.h 2009-06-30 05:33:41 UTC (rev 2421) +++ trunk/src/jtag/interfaces.h 2009-06-30 05:33:57 UTC (rev 2422) @@ -30,8 +30,8 @@ #ifndef OPENOCD_JTAG_INTERFACES_H #define OPENOCD_JTAG_INTERFACES_H -/** - * @file Exports the list of JTAG interface drivers, along with routines +/** @file + * Exports the list of JTAG interface drivers, along with routines * for loading and unloading them dynamically from shared libraries. */ |
From: <zw...@ma...> - 2009-06-30 07:33:55
|
Author: zwelch Date: 2009-06-30 07:33:41 +0200 (Tue, 30 Jun 2009) New Revision: 2421 Modified: trunk/src/openocd.c Log: Make bug reporting output at program start-ups use fewer new lines: - Move repository URL output associate it with the version; they relate. - 'openocd --version' output now appears much more terse, as expected. Modified: trunk/src/openocd.c =================================================================== --- trunk/src/openocd.c 2009-06-30 05:33:17 UTC (rev 2420) +++ trunk/src/openocd.c 2009-06-30 05:33:41 UTC (rev 2421) @@ -253,10 +253,11 @@ } #endif - LOG_OUTPUT("\n\nBUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS\n\n\n"); - print_version(); + LOG_OUTPUT("For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS\n"); + + command_context_mode(cmd_ctx, COMMAND_CONFIG); command_set_output_handler(cmd_ctx, configuration_output_handler, NULL); |
From: <zw...@ma...> - 2009-06-30 07:33:39
|
Author: zwelch Date: 2009-06-30 07:33:17 +0200 (Tue, 30 Jun 2009) New Revision: 2420 Modified: trunk/tools/logger.pl Log: Fix logger.pl script to avoid spurious empty line in some cases. Modified: trunk/tools/logger.pl =================================================================== --- trunk/tools/logger.pl 2009-06-29 22:08:34 UTC (rev 2419) +++ trunk/tools/logger.pl 2009-06-30 05:33:17 UTC (rev 2420) @@ -37,4 +37,4 @@ print STDERR "\n" unless ++$c % $C; } -print STDERR "\n" +print STDERR "\n" if $c; |
From: <oh...@ma...> - 2009-06-30 00:08:37
|
Author: oharboe Date: 2009-06-30 00:08:34 +0200 (Tue, 30 Jun 2009) New Revision: 2419 Modified: trunk/tcl/board/olimex_stm32_h103.cfg trunk/tcl/target/stm32.cfg Log: Kevin Bortis <st...@bo...> fix worksize Modified: trunk/tcl/board/olimex_stm32_h103.cfg =================================================================== --- trunk/tcl/board/olimex_stm32_h103.cfg 2009-06-29 20:04:21 UTC (rev 2418) +++ trunk/tcl/board/olimex_stm32_h103.cfg 2009-06-29 22:08:34 UTC (rev 2419) @@ -4,5 +4,8 @@ # http://olimex.com/dev/stm32-h103.html # +#Set flash size to 128k for STM32103RB device +set WORKAREASIZE 0x20000 + source [find target/stm32.cfg] Modified: trunk/tcl/target/stm32.cfg =================================================================== --- trunk/tcl/target/stm32.cfg 2009-06-29 20:04:21 UTC (rev 2418) +++ trunk/tcl/target/stm32.cfg 2009-06-29 22:08:34 UTC (rev 2419) @@ -12,6 +12,14 @@ set _ENDIAN little } +#Checking if user had set the work-area-size for the chip +#If not, the value will be set to 16k +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x4000 +} + # jtag speed jtag_khz 500 @@ -50,7 +58,7 @@ set _TARGETNAME [format "%s.cpu" $_CHIPNAME] target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME -$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 16384 -work-area-backup 0 +$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 flash bank stm32x 0 0 0 0 0 |
From: <zw...@ma...> - 2009-06-29 22:04:25
|
Author: zwelch Date: 2009-06-29 22:04:21 +0200 (Mon, 29 Jun 2009) New Revision: 2418 Modified: trunk/tcl/target/ti_dm6446.cfg Log: David Brownell <da...@pa...>: Minor bugfix ... previous version was tested *with* ICEpick active. The "-disable" can swap with "-enable"; but not with an empty string. Modified: trunk/tcl/target/ti_dm6446.cfg =================================================================== --- trunk/tcl/target/ti_dm6446.cfg 2009-06-29 20:04:14 UTC (rev 2417) +++ trunk/tcl/target/ti_dm6446.cfg 2009-06-29 20:04:21 UTC (rev 2418) @@ -16,7 +16,7 @@ # may need to slow the JTAG clock down quite a lot (under 2 MHz). # source [find target/icepick.cfg] -set EMU01 "" +set EMU01 "-enable" #set EMU01 "-disable" # Subsidiary TAP: unknown ... must enable via ICEpick |
From: <zw...@ma...> - 2009-06-29 22:04:19
|
Author: zwelch Date: 2009-06-29 22:04:14 +0200 (Mon, 29 Jun 2009) New Revision: 2417 Modified: trunk/src/target/arm7_9_common.c trunk/src/target/arm926ejs.c Log: David Brownell <da...@pa...>: Remove some bogus warnings during server startup for ARM926ejs targets that were already halted for debug ... e.g. started up a freshly built instance. Modified: trunk/src/target/arm7_9_common.c =================================================================== --- trunk/src/target/arm7_9_common.c 2009-06-29 20:04:08 UTC (rev 2416) +++ trunk/src/target/arm7_9_common.c 2009-06-29 20:04:14 UTC (rev 2417) @@ -913,8 +913,9 @@ /* LOG_DEBUG("DBGACK set, dbg_state->value: 0x%x", buf_get_u32(dbg_stat->value, 0, 32));*/ if (target->state == TARGET_UNKNOWN) { + /* Starting OpenOCD with target in debug-halt */ target->state = TARGET_RUNNING; - LOG_WARNING("DBGACK set while target was in unknown state. Reset or initialize target."); + LOG_DEBUG("DBGACK already set during server startup."); } if ((target->state == TARGET_RUNNING) || (target->state == TARGET_RESET)) { Modified: trunk/src/target/arm926ejs.c =================================================================== --- trunk/src/target/arm926ejs.c 2009-06-29 20:04:08 UTC (rev 2416) +++ trunk/src/target/arm926ejs.c 2009-06-29 20:04:14 UTC (rev 2417) @@ -262,10 +262,12 @@ if ((retval = jtag_execute_queue()) != ERROR_OK) return retval; + /* Method-Of-Entry (MOE) field */ debug_reason = buf_get_u32(dbg_stat->value, 6, 4); switch (debug_reason) { + /* case 0: no debug entry */ case 1: LOG_DEBUG("breakpoint from EICE unit 0"); target->debug_reason = DBG_REASON_BREAKPOINT; @@ -307,7 +309,21 @@ target->debug_reason = DBG_REASON_DBGRQ; break; case 11: - LOG_ERROR("BUG: debug re-entry from system speed access shouldn't be handled here"); + LOG_DEBUG("debug re-entry from system speed access"); + /* This is normal when connecting to something that's + * already halted, or in some related code paths, but + * otherwise is surprising (and presumably wrong). + */ + switch (target->debug_reason) { + case DBG_REASON_DBGRQ: + break; + default: + LOG_ERROR("unexpected -- debug re-entry"); + /* FALLTHROUGH */ + case DBG_REASON_UNDEFINED: + target->debug_reason = DBG_REASON_DBGRQ; + break; + } break; case 12: /* FIX!!!! here be dragons!!! We need to fail here so |
From: <zw...@ma...> - 2009-06-29 22:04:12
|
Author: zwelch Date: 2009-06-29 22:04:08 +0200 (Mon, 29 Jun 2009) New Revision: 2416 Modified: trunk/tcl/board/pxa255_sst.cfg trunk/tcl/target/pxa255.cfg Log: David Brownell <da...@pa...>: Improve the PXA255 target config: move all that board-specific setup to the pxa255_sst board.cfg, to which it evidently belongs (it's the only PXA255 board now included). Provide the PXA255 JTAG id from Intel docs, and add a comment about how this chip is now EOL'd (last orders taken). Note that I still can't get my old PXA255 board to work. There's something broken in the reset sequence, which is preventing the TAP from coming up at all. Old mailing list posts suggest this is a longstanding bug... Modified: trunk/tcl/board/pxa255_sst.cfg =================================================================== --- trunk/tcl/board/pxa255_sst.cfg 2009-06-29 20:03:59 UTC (rev 2415) +++ trunk/tcl/board/pxa255_sst.cfg 2009-06-29 20:04:08 UTC (rev 2416) @@ -8,8 +8,91 @@ # Flash at 0x00000000 # source [find target/pxa255.cfg] + # Target name is set by above $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x4000000 -work-area-size 0x4000 -work-area-backup 0 -# flash bank <driver> <base> <size> <chip_width> <bus_width> <targetNum> [options] -flash bank cfi 0x00000000 0x80000 2 2 0 jedec_probe +# flash bank <driver> <base> <size> <chip_width> <bus_width> <target> [options] +flash bank cfi 0x00000000 0x80000 2 2 $_TARGETNAME jedec_probe + +proc pxa255_sst_init {} { + xscale cp15 15 0x00002001 #Enable CP0 and CP13 access + # + # setup GPIO + # + mww 0x40E00018 0x00008000 #CPSR0 + sleep 20 + mww 0x40E0001C 0x00000002 #GPSR1 + sleep 20 + mww 0x40E00020 0x00000008 #GPSR2 + sleep 20 + mww 0x40E0000C 0x00008000 #GPDR0 + sleep 20 + mww 0x40E00054 0x80000000 #GAFR0_L + sleep 20 + mww 0x40E00058 0x00188010 #GAFR0_H + sleep 20 + mww 0x40E0005C 0x60908018 #GAFR1_L + sleep 20 + mww 0x40E0000C 0x0280E000 #GPDR0 + sleep 20 + mww 0x40E00010 0x821C88B2 #GPDR1 + sleep 20 + mww 0x40E00014 0x000F03DB #GPDR2 + sleep 20 + mww 0x40E00000 0x000F03DB #GPLR0 + sleep 20 + + + mww 0x40F00004 0x00000020 #PSSR + sleep 20 + + # + # setup memory controller + # + mww 0x48000008 0x01111998 #MSC0 + sleep 20 + mww 0x48000010 0x00047ff0 #MSC2 + sleep 20 + mww 0x48000014 0x00000000 #MECR + sleep 20 + mww 0x48000028 0x00010504 #MCMEM0 + sleep 20 + mww 0x4800002C 0x00010504 #MCMEM1 + sleep 20 + mww 0x48000030 0x00010504 #MCATT0 + sleep 20 + mww 0x48000034 0x00010504 #MCATT1 + sleep 20 + mww 0x48000038 0x00004715 #MCIO0 + sleep 20 + mww 0x4800003C 0x00004715 #MCIO1 + sleep 20 + # + mww 0x48000004 0x03CA4018 #MDREF + sleep 20 + mww 0x48000004 0x004B4018 #MDREF + sleep 20 + mww 0x48000004 0x000B4018 #MDREF + sleep 20 + mww 0x48000004 0x000BC018 #MDREF + sleep 20 + mww 0x48000000 0x00001AC8 #MDCNFG + sleep 20 + + sleep 20 + + mww 0x48000000 0x00001AC9 #MDCNFG + sleep 20 + mww 0x48000040 0x00000000 #MDMRS + sleep 20 +} + +$_TARGETNAME configure -event reset-init {pxa255_sst_init} + +reset_config trst_and_srst + +jtag_nsrst_delay 200 +jtag_ntrst_delay 200 + +#xscale debug_handler 0 0xFFFF0800 # debug handler base address Modified: trunk/tcl/target/pxa255.cfg =================================================================== --- trunk/tcl/target/pxa255.cfg 2009-06-29 20:03:59 UTC (rev 2415) +++ trunk/tcl/target/pxa255.cfg 2009-06-29 20:04:08 UTC (rev 2416) @@ -1,3 +1,6 @@ +# PXA255 chip ... originally from Intel, PXA line was sold to Marvell. +# This chip is now at end-of-life. Final orders have been taken. + if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { @@ -13,92 +16,11 @@ if { [info exists CPUTAPID ] } { set _CPUTAPID $CPUTAPID } else { - # force an error till we get a good number - set _CPUTAPID 0xffffffff + set _CPUTAPID 0x69264013 } -jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID +jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1e -irmask 0x1f -expected-id $_CPUTAPID -jtag_nsrst_delay 200 -jtag_ntrst_delay 200 -set _TARGETNAME [format "%s.cpu" $_CHIPNAME] -target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME -variant pxa255 -$_TARGETNAME configure -event reset-init { - xscale cp15 15 0x00002001 #Enable CP0 and CP13 access - # - # setup GPIO - # - mww 0x40E00018 0x00008000 #CPSR0 - sleep 20 - mww 0x40E0001C 0x00000002 #GPSR1 - sleep 20 - mww 0x40E00020 0x00000008 #GPSR2 - sleep 20 - mww 0x40E0000C 0x00008000 #GPDR0 - sleep 20 - mww 0x40E00054 0x80000000 #GAFR0_L - sleep 20 - mww 0x40E00058 0x00188010 #GAFR0_H - sleep 20 - mww 0x40E0005C 0x60908018 #GAFR1_L - sleep 20 - mww 0x40E0000C 0x0280E000 #GPDR0 - sleep 20 - mww 0x40E00010 0x821C88B2 #GPDR1 - sleep 20 - mww 0x40E00014 0x000F03DB #GPDR2 - sleep 20 - mww 0x40E00000 0x000F03DB #GPLR0 - sleep 20 - - - mww 0x40F00004 0x00000020 #PSSR - sleep 20 - - # - # setup memory controller - # - mww 0x48000008 0x01111998 #MSC0 - sleep 20 - mww 0x48000010 0x00047ff0 #MSC2 - sleep 20 - mww 0x48000014 0x00000000 #MECR - sleep 20 - mww 0x48000028 0x00010504 #MCMEM0 - sleep 20 - mww 0x4800002C 0x00010504 #MCMEM1 - sleep 20 - mww 0x48000030 0x00010504 #MCATT0 - sleep 20 - mww 0x48000034 0x00010504 #MCATT1 - sleep 20 - mww 0x48000038 0x00004715 #MCIO0 - sleep 20 - mww 0x4800003C 0x00004715 #MCIO1 - sleep 20 - # - mww 0x48000004 0x03CA4018 #MDREF - sleep 20 - mww 0x48000004 0x004B4018 #MDREF - sleep 20 - mww 0x48000004 0x000B4018 #MDREF - sleep 20 - mww 0x48000004 0x000BC018 #MDREF - sleep 20 - mww 0x48000000 0x00001AC8 #MDCNFG - sleep 20 - - sleep 20 - - mww 0x48000000 0x00001AC9 #MDCNFG - sleep 20 - mww 0x48000040 0x00000000 #MDMRS - sleep 20 -} - -reset_config trst_and_srst - - - -#xscale debug_handler 0 0xFFFF0800 # debug handler base address - +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME +debug_level 3 |
From: <zw...@ma...> - 2009-06-29 22:04:06
|
Author: zwelch Date: 2009-06-29 22:03:59 +0200 (Mon, 29 Jun 2009) New Revision: 2415 Modified: trunk/doc/openocd.texi trunk/src/flash/str9xpec.c trunk/src/jtag/core.c trunk/src/jtag/jtag.h Log: David Brownell <da...@pa...>: Warn when people (or scripts) use numeric identifiers for TAPs, instead of dotted.name values. We want this usage to go away, so that for example adding more TAPs doesn't cause config scripts to break because some sequence number changed. It's been deprecated since late 2008, but putting a warning on this should help us remove it (say, in June 2010) by helping to phase out old (ab)usage in config scripts. Other than in various config files, the only code expecting such a number was the almost unused str9xpec driver. This code was changed to use the TAP it was passed, instead of making its own dubious lookup and ignoring that TAP. Modified: trunk/doc/openocd.texi =================================================================== --- trunk/doc/openocd.texi 2009-06-29 20:03:52 UTC (rev 2414) +++ trunk/doc/openocd.texi 2009-06-29 20:03:59 UTC (rev 2415) @@ -2397,8 +2397,9 @@ In older code, JTAG TAPs were numbered from 0..N. This feature is still present. However its use is highly discouraged, and -should not be counted upon. -Update all of your scripts to use TAP names rather than numbers. +should not be relied on; it will be removed by mid-2010. +Update all of your scripts to use TAP names rather than numbers, +by paying attention to the runtime warnings they trigger. Using TAP numbers in target configuration scripts prevents reusing those scripts on boards with multiple targets. @end quotation Modified: trunk/src/flash/str9xpec.c =================================================================== --- trunk/src/flash/str9xpec.c 2009-06-29 20:03:52 UTC (rev 2414) +++ trunk/src/flash/str9xpec.c 2009-06-29 20:03:59 UTC (rev 2415) @@ -318,14 +318,14 @@ str9xpec_info = malloc(sizeof(str9xpec_flash_controller_t)); bank->driver_priv = str9xpec_info; - /* find out jtag position of flash controller - * it is always after the arm966 core */ - + /* REVISIT verify that the jtag position of flash controller is + * right after *THIS* core, which must be a STR9xx core ... + */ armv4_5 = bank->target->arch_info; arm7_9 = armv4_5->arch_info; jtag_info = &arm7_9->jtag_info; - str9xpec_info->tap = jtag_tap_by_position(jtag_info->tap->abs_chain_position - 1); + str9xpec_info->tap = bank->target->tap; str9xpec_info->isc_enable = 0; str9xpec_build_block_list(bank); Modified: trunk/src/jtag/core.c =================================================================== --- trunk/src/jtag/core.c 2009-06-29 20:03:52 UTC (rev 2414) +++ trunk/src/jtag/core.c 2009-06-29 20:03:59 UTC (rev 2415) @@ -162,10 +162,22 @@ *tap = t; } +/* returns a pointer to the n-th device in the scan chain */ +static inline jtag_tap_t *jtag_tap_by_position(unsigned n) +{ + jtag_tap_t *t = jtag_all_taps(); + + while (t && n-- > 0) + t = t->next_tap; + + return t; +} + jtag_tap_t *jtag_tap_by_string(const char *s) { /* try by name first */ jtag_tap_t *t = jtag_all_taps(); + while (t) { if (0 == strcmp(t->dotted_name, s)) @@ -178,7 +190,16 @@ if (parse_uint(s, &n) != ERROR_OK) return NULL; - return jtag_tap_by_position(n); + /* FIXME remove this numeric fallback code late June 2010, along + * with all info in the User's Guide that TAPs have numeric IDs. + * Also update "scan_chain" output to not display the numbers. + */ + t = jtag_tap_by_position(n); + if (t) + LOG_WARNING("Specify TAP '%s' by name, not number %u", + t->dotted_name, n); + + return t; } jtag_tap_t *jtag_tap_by_jim_obj(Jim_Interp *interp, Jim_Obj *o) @@ -192,17 +213,6 @@ return t; } -/* returns a pointer to the n-th device in the scan chain */ -jtag_tap_t *jtag_tap_by_position(unsigned n) -{ - jtag_tap_t *t = jtag_all_taps(); - - while (t && n-- > 0) - t = t->next_tap; - - return t; -} - jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p) { p = p ? p->next_tap : jtag_all_taps(); Modified: trunk/src/jtag/jtag.h =================================================================== --- trunk/src/jtag/jtag.h 2009-06-29 20:03:52 UTC (rev 2414) +++ trunk/src/jtag/jtag.h 2009-06-29 20:03:59 UTC (rev 2415) @@ -185,7 +185,6 @@ extern const char *jtag_tap_name(const jtag_tap_t *tap); extern jtag_tap_t* jtag_tap_by_string(const char* dotted_name); extern jtag_tap_t* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj); -extern jtag_tap_t* jtag_tap_by_position(unsigned abs_position); extern jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p); extern unsigned jtag_tap_count_enabled(void); extern unsigned jtag_tap_count(void); |
From: <zw...@ma...> - 2009-06-29 22:03:56
|
Author: zwelch Date: 2009-06-29 22:03:52 +0200 (Mon, 29 Jun 2009) New Revision: 2414 Modified: trunk/doc/openocd.texi Log: David Brownell <da...@pa...>: Minor fixup to the User's Guide, primarily related to the handful of commands defined in "startup.tcl"; "help" was not previously documented. Also, be more consistent about "Config Command" definitions (and to be explicit about that doc convention). Modified: trunk/doc/openocd.texi =================================================================== --- trunk/doc/openocd.texi 2009-06-29 00:00:50 UTC (rev 2413) +++ trunk/doc/openocd.texi 2009-06-29 20:03:52 UTC (rev 2414) @@ -696,6 +696,8 @@ @item @b{Commands} @* At the OpenOCD telnet command line (or via the GDB mon command) one can type a Tcl for() loop, set variables, etc. +Some of the commands documented in this guide are implemented +as Tcl scripts, from a @file{startup.tcl} file internal to the server. @item @b{Historical Note} @* JIM-Tcl was introduced to OpenOCD in spring 2008. @@ -1513,12 +1515,18 @@ @section Configuration Stage @cindex configuration stage -@cindex configuration command +@cindex config command When the OpenOCD server process starts up, it enters a @emph{configuration stage} which is the only time that certain commands, @emph{configuration commands}, may be issued. -Those configuration commands include declaration of TAPs +In this manual, the definition of a configuration command is +presented as a @emph{Config Command}, not as a @emph{Command} +which may be issued interactively. + +Those configuration commands include declaration of TAPs, +flash banks, +the interface used for JTAG communication, and other basic setup. The server must leave the configuration stage before it may access or activate TAPs. @@ -1607,19 +1615,19 @@ breakpoints if the memory map has been set up for flash regions. @end deffn -@deffn {Config command} gdb_detach (@option{resume}|@option{reset}|@option{halt}|@option{nothing}) +@deffn {Config Command} gdb_detach (@option{resume}|@option{reset}|@option{halt}|@option{nothing}) Configures what OpenOCD will do when GDB detaches from the daemon. Default behaviour is @option{resume}. @end deffn @anchor{gdb_flash_program} -@deffn {Config command} gdb_flash_program (@option{enable}|@option{disable}) +@deffn {Config Command} gdb_flash_program (@option{enable}|@option{disable}) Set to @option{enable} to cause OpenOCD to program the flash memory when a vFlash packet is received. The default behaviour is @option{enable}. @end deffn -@deffn {Config command} gdb_memory_map (@option{enable}|@option{disable}) +@deffn {Config Command} gdb_memory_map (@option{enable}|@option{disable}) Set to @option{enable} to cause OpenOCD to send the memory configuration to GDB when requested. GDB will then know when to set hardware breakpoints, and program flash using the GDB load command. @command{gdb_flash_program enable} must also be enabled @@ -1628,7 +1636,7 @@ @xref{gdb_flash_program}. @end deffn -@deffn {Config command} gdb_report_data_abort (@option{enable}|@option{disable}) +@deffn {Config Command} gdb_report_data_abort (@option{enable}|@option{disable}) Specifies whether data aborts cause an error to be reported by GDB memory read packets. The default behaviour is @option{disable}; @@ -1806,6 +1814,8 @@ in case the vendor provides unique IDs and more than one FT2232 device is connected to the host. If not specified, serial numbers are not considered. +(Note that USB serial numbers can be arbitrary Unicode strings, +and are not restricted to containing only decimal digits.) @end deffn @deffn {Config Command} {ft2232_layout} name @@ -2023,7 +2033,7 @@ @defun jtag_rclk fallback_speed_kHz @cindex RTCK -This Tcl proc (defined in startup.tcl) attempts to enable RTCK/RCLK. +This Tcl proc (defined in @file{startup.tcl}) attempts to enable RTCK/RCLK. If that fails (maybe the interface, board, or target doesn't support it), falls back to the specified frequency. @example @@ -4268,6 +4278,15 @@ Exits the current telnet session. @end deffn +@c note EXTREMELY ANNOYING word wrap at column 75 +@c even when lines are e.g. 100+ columns ... +@c coded in startup.tcl +@deffn {Command} help [string] +With no parameters, prints help text for all commands. +Otherwise, prints each helptext containing @var{string}. +Not every command provides helptext. +@end deffn + @deffn Command sleep msec [@option{busy}] Wait for at least @var{msec} milliseconds before resuming. If @option{busy} is passed, busy-wait instead of sleeping. @@ -5717,7 +5736,7 @@ @end itemize OpenOCD commands can consist of two words, e.g. "flash banks". The -startup.tcl "unknown" proc will translate this into a Tcl proc +@file{startup.tcl} "unknown" proc will translate this into a Tcl proc called "flash_banks". @section OpenOCD specific Global Variables |