forked from auracaster/openocd
Compare commits
15 Commits
v0.10.0-rc
...
v0.10.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
646566e006 | ||
|
|
0e7bcf850b | ||
|
|
59820c18d0 | ||
|
|
1c4aa20b21 | ||
|
|
9e74171775 | ||
|
|
f6279c00c3 | ||
|
|
af4a2f3518 | ||
|
|
93bc4ec40f | ||
|
|
390c9aca1f | ||
|
|
2934ac454e | ||
|
|
52a396656a | ||
|
|
7436f7c2c0 | ||
|
|
7851207cf0 | ||
|
|
33db10a158 | ||
|
|
c404ff5d3a |
4
NEWS
4
NEWS
@@ -3,7 +3,7 @@ source archive release.
|
|||||||
|
|
||||||
JTAG Layer:
|
JTAG Layer:
|
||||||
* New driver for J-Link adapters based on libjaylink
|
* New driver for J-Link adapters based on libjaylink
|
||||||
(including support for FPGA configuration and EMUCOM)
|
(including support for FPGA configuration, SWO and EMUCOM)
|
||||||
* FTDI improvements to work at 30MHz clock
|
* FTDI improvements to work at 30MHz clock
|
||||||
* BCM2835 native driver SWD and Raspberry Pi2 support
|
* BCM2835 native driver SWD and Raspberry Pi2 support
|
||||||
* BCM2835 is set to 4ma drive, slow slew rate
|
* BCM2835 is set to 4ma drive, slow slew rate
|
||||||
@@ -144,7 +144,7 @@ This release also contains a number of other important functional and
|
|||||||
cosmetic bugfixes. For more details about what has changed since the
|
cosmetic bugfixes. For more details about what has changed since the
|
||||||
last release, see the git repository history:
|
last release, see the git repository history:
|
||||||
|
|
||||||
http://sourceforge.net/p/openocd/code/ci/v0.10.0-rc1/log/?path=
|
http://sourceforge.net/p/openocd/code/ci/v0.10.0/log/?path=
|
||||||
|
|
||||||
|
|
||||||
For older NEWS, see the NEWS files associated with each release
|
For older NEWS, see the NEWS files associated with each release
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.64)
|
AC_PREREQ(2.64)
|
||||||
AC_INIT([openocd], [0.10.0-rc1],
|
AC_INIT([openocd], [0.10.0],
|
||||||
[OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
|
[OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
|
||||||
AC_CONFIG_SRCDIR([src/openocd.c])
|
AC_CONFIG_SRCDIR([src/openocd.c])
|
||||||
|
|
||||||
|
|||||||
@@ -2408,11 +2408,10 @@ This driver is for adapters using the MPSSE (Multi-Protocol Synchronous Serial
|
|||||||
Engine) mode built into many FTDI chips, such as the FT2232, FT4232 and FT232H.
|
Engine) mode built into many FTDI chips, such as the FT2232, FT4232 and FT232H.
|
||||||
|
|
||||||
The driver is using libusb-1.0 in asynchronous mode to talk to the FTDI device,
|
The driver is using libusb-1.0 in asynchronous mode to talk to the FTDI device,
|
||||||
bypassing intermediate libraries like libftdi of D2XX.
|
bypassing intermediate libraries like libftdi or D2XX.
|
||||||
|
|
||||||
A major improvement of this driver is that support for new FTDI based adapters
|
Support for new FTDI based adapters can be added competely through
|
||||||
can be added competely through configuration files, without the need to patch
|
configuration files, without the need to patch and rebuild OpenOCD.
|
||||||
and rebuild OpenOCD.
|
|
||||||
|
|
||||||
The driver uses a signal abstraction to enable Tcl configuration files to
|
The driver uses a signal abstraction to enable Tcl configuration files to
|
||||||
define outputs for one or several FTDI GPIO. These outputs can then be
|
define outputs for one or several FTDI GPIO. These outputs can then be
|
||||||
@@ -2421,6 +2420,12 @@ are reserved for nTRST, nSRST and LED (for blink) so that they, if defined,
|
|||||||
will be used for their customary purpose. Inputs can be read using the
|
will be used for their customary purpose. Inputs can be read using the
|
||||||
@command{ftdi_get_signal} command.
|
@command{ftdi_get_signal} command.
|
||||||
|
|
||||||
|
To support SWD, a signal named SWD_EN must be defined. It is set to 1 when the
|
||||||
|
SWD protocol is selected. When set, the adapter should route the SWDIO pin to
|
||||||
|
the data input. An SWDIO_OE signal, if defined, will be set to 1 or 0 as
|
||||||
|
required by the protocol, to tell the adapter to drive the data output onto
|
||||||
|
the SWDIO pin or keep the SWDIO pin Hi-Z, respectively.
|
||||||
|
|
||||||
Depending on the type of buffer attached to the FTDI GPIO, the outputs have to
|
Depending on the type of buffer attached to the FTDI GPIO, the outputs have to
|
||||||
be controlled differently. In order to support tristateable signals such as
|
be controlled differently. In order to support tristateable signals such as
|
||||||
nSRST, both a data GPIO and an output-enable GPIO can be specified for each
|
nSRST, both a data GPIO and an output-enable GPIO can be specified for each
|
||||||
@@ -2439,9 +2444,8 @@ These interfaces have several commands, used to configure the driver
|
|||||||
before initializing the JTAG scan chain:
|
before initializing the JTAG scan chain:
|
||||||
|
|
||||||
@deffn {Config Command} {ftdi_vid_pid} [vid pid]+
|
@deffn {Config Command} {ftdi_vid_pid} [vid pid]+
|
||||||
The vendor ID and product ID of the adapter. If not specified, the FTDI
|
The vendor ID and product ID of the adapter. Up to eight
|
||||||
default values are used.
|
[@var{vid}, @var{pid}] pairs may be given, e.g.
|
||||||
Currently, up to eight [@var{vid}, @var{pid}] pairs may be given, e.g.
|
|
||||||
@example
|
@example
|
||||||
ftdi_vid_pid 0x0403 0xcff8 0x15ba 0x0003
|
ftdi_vid_pid 0x0403 0xcff8 0x15ba 0x0003
|
||||||
@end example
|
@end example
|
||||||
@@ -4710,12 +4714,15 @@ and possibly stale information.
|
|||||||
|
|
||||||
@anchor{flashprotect}
|
@anchor{flashprotect}
|
||||||
@deffn Command {flash protect} num first last (@option{on}|@option{off})
|
@deffn Command {flash protect} num first last (@option{on}|@option{off})
|
||||||
Enable (@option{on}) or disable (@option{off}) protection of flash sectors
|
Enable (@option{on}) or disable (@option{off}) protection of flash blocks
|
||||||
in flash bank @var{num}, starting at sector @var{first}
|
in flash bank @var{num}, starting at protection block @var{first}
|
||||||
and continuing up to and including @var{last}.
|
and continuing up to and including @var{last}.
|
||||||
Providing a @var{last} sector of @option{last}
|
Providing a @var{last} block of @option{last}
|
||||||
specifies "to the end of the flash bank".
|
specifies "to the end of the flash bank".
|
||||||
The @var{num} parameter is a value shown by @command{flash banks}.
|
The @var{num} parameter is a value shown by @command{flash banks}.
|
||||||
|
The protection block is usually identical to a flash sector.
|
||||||
|
Some devices may utilize a protection block distinct from flash sector.
|
||||||
|
See @command{flash info} for a list of protection blocks.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn Command {flash padded_value} num value
|
@deffn Command {flash padded_value} num value
|
||||||
|
|||||||
@@ -50,10 +50,17 @@ int flash_driver_erase(struct flash_bank *bank, int first, int last)
|
|||||||
int flash_driver_protect(struct flash_bank *bank, int set, int first, int last)
|
int flash_driver_protect(struct flash_bank *bank, int set, int first, int last)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
int num_blocks;
|
||||||
|
|
||||||
|
if (bank->num_prot_blocks)
|
||||||
|
num_blocks = bank->num_prot_blocks;
|
||||||
|
else
|
||||||
|
num_blocks = bank->num_sectors;
|
||||||
|
|
||||||
|
|
||||||
/* callers may not supply illegal parameters ... */
|
/* callers may not supply illegal parameters ... */
|
||||||
if (first < 0 || first > last || last >= bank->num_sectors) {
|
if (first < 0 || first > last || last >= num_blocks) {
|
||||||
LOG_ERROR("illegal sector range");
|
LOG_ERROR("illegal protection block range");
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,11 +76,11 @@ int flash_driver_protect(struct flash_bank *bank, int set, int first, int last)
|
|||||||
* the target could have reset, power cycled, been hot plugged,
|
* the target could have reset, power cycled, been hot plugged,
|
||||||
* the application could have run, etc.
|
* the application could have run, etc.
|
||||||
*
|
*
|
||||||
* Drivers only receive valid sector range.
|
* Drivers only receive valid protection block range.
|
||||||
*/
|
*/
|
||||||
retval = bank->driver->protect(bank, set, first, last);
|
retval = bank->driver->protect(bank, set, first, last);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
LOG_ERROR("failed setting protection for areas %d to %d", first, last);
|
LOG_ERROR("failed setting protection for blocks %d to %d", first, last);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -936,10 +936,11 @@ static const struct command_registration flash_exec_command_handlers[] = {
|
|||||||
.name = "protect",
|
.name = "protect",
|
||||||
.handler = handle_flash_protect_command,
|
.handler = handle_flash_protect_command,
|
||||||
.mode = COMMAND_EXEC,
|
.mode = COMMAND_EXEC,
|
||||||
.usage = "bank_id first_sector [last_sector|'last'] "
|
.usage = "bank_id first_block [last_block|'last'] "
|
||||||
"('on'|'off')",
|
"('on'|'off')",
|
||||||
.help = "Turn protection on or off for a range of sectors "
|
.help = "Turn protection on or off for a range of protection "
|
||||||
"in a given flash bank.",
|
"blocks or sectors in a given flash bank. "
|
||||||
|
"See 'flash info' output for a list of blocks.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "padded_value",
|
.name = "padded_value",
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ else
|
|||||||
%C%_libhelper_la_SOURCES += %D%/ioutil_stubs.c
|
%C%_libhelper_la_SOURCES += %D%/ioutil_stubs.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
%C%_libhelper_la_CFLAGS =
|
%C%_libhelper_la_CFLAGS = $(AM_CFLAGS)
|
||||||
if IS_MINGW
|
if IS_MINGW
|
||||||
# FD_* macros are sloppy with their signs on MinGW32 platform
|
# FD_* macros are sloppy with their signs on MinGW32 platform
|
||||||
%C%_libhelper_la_CFLAGS += -Wno-sign-compare
|
%C%_libhelper_la_CFLAGS += -Wno-sign-compare
|
||||||
|
|||||||
@@ -1717,11 +1717,11 @@ void jtag_set_reset_config(enum reset_types type)
|
|||||||
|
|
||||||
int jtag_get_trst(void)
|
int jtag_get_trst(void)
|
||||||
{
|
{
|
||||||
return jtag_trst;
|
return jtag_trst == 1;
|
||||||
}
|
}
|
||||||
int jtag_get_srst(void)
|
int jtag_get_srst(void)
|
||||||
{
|
{
|
||||||
return jtag_srst;
|
return jtag_srst == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void jtag_set_nsrst_delay(unsigned delay)
|
void jtag_set_nsrst_delay(unsigned delay)
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ DRIVERFILES += %D%/jtag_vpi.c
|
|||||||
endif
|
endif
|
||||||
if USB_BLASTER_DRIVER
|
if USB_BLASTER_DRIVER
|
||||||
%C%_libocdjtagdrivers_la_LIBADD += %D%/usb_blaster/libocdusbblaster.la
|
%C%_libocdjtagdrivers_la_LIBADD += %D%/usb_blaster/libocdusbblaster.la
|
||||||
|
include %D%/usb_blaster/Makefile.am
|
||||||
endif
|
endif
|
||||||
if AMTJTAGACCEL
|
if AMTJTAGACCEL
|
||||||
DRIVERFILES += %D%/amt_jtagaccel.c
|
DRIVERFILES += %D%/amt_jtagaccel.c
|
||||||
@@ -171,4 +172,3 @@ DRIVERHEADERS = \
|
|||||||
%D%/versaloon/versaloon_include.h \
|
%D%/versaloon/versaloon_include.h \
|
||||||
%D%/versaloon/versaloon_internal.h
|
%D%/versaloon/versaloon_internal.h
|
||||||
|
|
||||||
include %D%/usb_blaster/Makefile.am
|
|
||||||
|
|||||||
Submodule src/jtag/drivers/libjaylink updated: dfa9bc8e91...699b7001d3
@@ -24,7 +24,7 @@ noinst_LTLIBRARIES += %D%/librtos.la
|
|||||||
%D%/rtos_mqx_stackings.h \
|
%D%/rtos_mqx_stackings.h \
|
||||||
%D%/rtos_ucos_iii_stackings.h
|
%D%/rtos_ucos_iii_stackings.h
|
||||||
|
|
||||||
%C%_librtos_la_CFLAGS =
|
%C%_librtos_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
|
||||||
if IS_MINGW
|
if IS_MINGW
|
||||||
# FD_* macros are sloppy with their signs on MinGW32 platform
|
# FD_* macros are sloppy with their signs on MinGW32 platform
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ noinst_LTLIBRARIES += %D%/libserver.la
|
|||||||
%D%/tcl_server.c \
|
%D%/tcl_server.c \
|
||||||
%D%/tcl_server.h
|
%D%/tcl_server.h
|
||||||
|
|
||||||
%C%_libserver_la_CFLAGS =
|
%C%_libserver_la_CFLAGS = $(AM_CFLAGS)
|
||||||
if IS_MINGW
|
if IS_MINGW
|
||||||
# FD_* macros are sloppy with their signs on MinGW32 platform
|
# FD_* macros are sloppy with their signs on MinGW32 platform
|
||||||
%C%_libserver_la_CFLAGS += -Wno-sign-compare
|
%C%_libserver_la_CFLAGS += -Wno-sign-compare
|
||||||
|
|||||||
@@ -574,8 +574,6 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
|
|||||||
if ((ctrlstat & (CDBGPWRUPREQ | CDBGPWRUPACK | CSYSPWRUPREQ | CSYSPWRUPACK)) !=
|
if ((ctrlstat & (CDBGPWRUPREQ | CDBGPWRUPACK | CSYSPWRUPREQ | CSYSPWRUPACK)) !=
|
||||||
(CDBGPWRUPREQ | CDBGPWRUPACK | CSYSPWRUPREQ | CSYSPWRUPACK)) {
|
(CDBGPWRUPREQ | CDBGPWRUPACK | CSYSPWRUPREQ | CSYSPWRUPACK)) {
|
||||||
LOG_ERROR("Debug regions are unpowered, an unexpected reset might have happened");
|
LOG_ERROR("Debug regions are unpowered, an unexpected reset might have happened");
|
||||||
retval = ERROR_JTAG_DEVICE_ERROR;
|
|
||||||
goto done;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctrlstat & SSTICKYERR)
|
if (ctrlstat & SSTICKYERR)
|
||||||
@@ -590,10 +588,7 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
|
|||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (ctrlstat & SSTICKYERR) {
|
|
||||||
retval = ERROR_JTAG_DEVICE_ERROR;
|
retval = ERROR_JTAG_DEVICE_ERROR;
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
|||||||
@@ -972,11 +972,14 @@ int arm_dpm_setup(struct arm_dpm *dpm)
|
|||||||
arm->read_core_reg = arm_dpm_read_core_reg;
|
arm->read_core_reg = arm_dpm_read_core_reg;
|
||||||
arm->write_core_reg = arm_dpm_write_core_reg;
|
arm->write_core_reg = arm_dpm_write_core_reg;
|
||||||
|
|
||||||
|
/* avoid duplicating the register cache */
|
||||||
|
if (arm->core_cache == NULL) {
|
||||||
cache = arm_build_reg_cache(target, arm);
|
cache = arm_build_reg_cache(target, arm);
|
||||||
if (!cache)
|
if (!cache)
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
|
||||||
*register_get_last_cache_p(&target->reg_cache) = cache;
|
*register_get_last_cache_p(&target->reg_cache) = cache;
|
||||||
|
}
|
||||||
|
|
||||||
/* coprocessor access setup */
|
/* coprocessor access setup */
|
||||||
arm->mrc = dpm_mrc;
|
arm->mrc = dpm_mrc;
|
||||||
|
|||||||
@@ -50,7 +50,8 @@ $_TARGETNAME configure -event reset-deassert-post {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# SRST (wired to RESET_N) resets debug circuitry
|
# SRST (wired to RESET_N) resets debug circuitry
|
||||||
reset_config srst_gates_jtag srst_pulls_trst
|
# srst_pulls_trst is not configured here to avoid an error raised in reset halt
|
||||||
|
reset_config srst_gates_jtag
|
||||||
|
|
||||||
# Do not use a reset button with other SWD adapter than Atmel's EDBG.
|
# Do not use a reset button with other SWD adapter than Atmel's EDBG.
|
||||||
# DSU usually locks MCU in reset state until you issue a reset command
|
# DSU usually locks MCU in reset state until you issue a reset command
|
||||||
|
|||||||
Reference in New Issue
Block a user