aboutsummaryrefslogtreecommitdiff
path: root/gdb/ocd.c
AgeCommit message (Collapse)AuthorFilesLines
2000-11-03* TODO: Note abstraction layer violation where "ocd reset" commandJ.T. Conklin1-12/+9
must invalidate the dcache, and how this might be fixed. * monitor.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (monitor_open): Removed code that created local dcache. (flush_monitor_dcache): Removed (unused function). (monitor_resume): Removed call to dcache_invd(). (monitor_load): Likewise. (monitor_xfer_memory): Changed to call monitor_write_memory(), monitor_write_memory_block(), and monitor_read_memory() instead of dcache_xfer_memory(). * monitor.h (flush_monitor_dcache): Removed (unused function). * ocd.c (#include "dcache.h"): Removed. (ocd_dcache): Removed. (ocd_open): Removed code that created local dcache. (ocd_resume): Removed call to dcache_invd(). (ocd_xfer_memory): Changed to call ocd_write_bytes() and ocd_read_bytes() instead of dcache_xfer_memory(). (bdm_reset_command): Invalidate target dcache. * remote-bug.c (bug_load): Remove call to dcache_invd(). (bug_resume): Likewise. (bug_settings): Remove dcache, readfunc, and writefunc fields from initializer. (bug_xfer_memory): Changed to call bug_read_memory() and bug_write_memory() instead of dcache_xfer_memory(). * remote-nindy.c (#include "dcache.h"): Removed. (nindy_dcache): Removed. (nindy_open): Removed code that created local dcache. (nindy_resume): Removed call to dcache_invd(). (nindy_load): Likewise. (nindy_xfer_inferior_memory): Changed to call ninMemPut() and ninMemGet() instead of dcache_xfer_memory(). * remote-sds.c (#include "dcache.h"): Removed. (sds_dcache): Removed. (sds_open): Removed code that created local dcache. (sds_resume): Removed call to dcache_invd(). (sds_xfer_memory): Changed to call sds_write_bytes() and sds_read_bytes() instead of dcache_xfer_memory(). * remote-utils.c (gr_open): Removed code that created local dcache. * remote-utils.h (#include "dcache.h"): Removed. (struct gr_settings): Removed dcache, readfunc, and writefunc fields. (gr_get_dcache, gr_set_dcache): Removed macro definitions. * remote.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (remote_open_1): Removed code that created local dcache. (remote_async_open_1): Likewise. (remote_resume): Removed call to dcache_invd(). (remote_async_resume): Likewise. (remote_xfer_memory): Changed to call remote_write_bytes() and remote_read_bytes() instead of dcache_xfer_memory(). * wince.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (child_create_inferior): Removed code that created local dcache. (child_xfer_memory): Changed to call remote_write_bytes() and remote_read_bytes() instead of dcache_xfer_memory(). (child_resume): Removed call to dcache_invd(). * target.c (target_dcache): Added. (target_load): Invalidate target_dcache. (do_xfer_memory): New function. (target_xfer_memory): Reimplement in terms of dcache_xfer_memory(). (target_xfer_memory_partial): Likewise. (initialize_targets): Create target_dcache. * target.h (#include "dcache.h"): Added. (target_open): Invalidate target_dcache. (target_resume): Likewise. (do_xfer_memory): New declaration. * dcache.c (dcache_init): Removed reading and writing arguments. (dcache_struct): Removed read_memory and write_memory fields. (dcache_write_line): Call do_xfer_memory. (dcache_read_line): Likewise. (dcache_xfer_memory): Likewise. (dcache_invalidate): Renamed from dcache_invd. (dcache_init): Updated. (dcache_xfer_memory): Updated. * dcache.h (memxferfunc): Removed definition.
2000-09-26Protoization.Kevin Buettner1-7/+4
2000-09-01* dcache.c (dcache_info): Output a cache line's state vector so itJ.T. Conklin1-2/+2
lines up under the data vector. * dcache.c (dcache_read_line): New function. (dcache_peek_byte): Use it. (dcache_alloc): Return NULL if write of reclaimed cache line fails. (dcache_peek_byte, dcache_poke_byte): Return failure if dcache_alloc() returns a NULL data block pointer. (dcache_xfer_memory): Don't force writeback unless we were writing. * monitor.c (monitor_expect): Change places where immediate_quit is set to 1 or 0 to increments and decrements respectively. This allows such changes to nest properly. * ocd.c (ocd_start_remote): Likewise. * remote-adapt.c (expect): Likewise. * remote-array.c (expect): Likewise. * remote-eb.c (expect): Likewise. * remote-e7000.c (e7000_start_remote): Likewise. * remote-mips.c (mips_expect_timeout, mips_getstring): Likewise. * remote-nrom.c (expect): Likewise. * remote-os9k.c (expect): Likewise. * remote-sds.c (sds_start_remote): Likewise. * remote-st.c (expect): Likewise. * remote-utils.c (sr_expect): Likewise. * remote.c (remote_start_remote): Likewise. * tracepoint.c (read_actions): Likewise. * remote-mips.c (mips_getstring): Balance changes to immediate_quit.
2000-08-18* MAINTAINERS: Add myself as dcache.c maintainer.J.T. Conklin1-3/+3
* remote-nindy.c (nindy_load): Invalidate dcache. * dcache.c (dcache_invd): Renamed from dcache_flush. The term flush with respect to caches usually implies that data will be written to memory. (dcache_init, dcache_xfer_memory): Updated. * monitor.c (flush_monitor_dcache, monitor_resume, monitor_load): Updated. * ocd.c (ocd_open, ocd_resume, bdm_reset_command): Updated. * remote-bug.c (bug_load, bug_resume): Updated. * remote-nindy.c (nindy_open, nindy_resume): Updated. * remote-sds.c (sds_open, sds_resume): Updated. * remote-utils.c (gr_open): Updated. * remote.c (remote_open_1, remote_resume, remote_async_resume, remote_cisco_open): Updated. * wince.c (child_create_inferior, child_resume): Updated. * monitor.c (monitor_open): Free dcache before creating a new one. * dcache.c (dcache_free): New function. * dcache.h (dcache_free): New prototype. -------------------------------------------------------------------
2000-08-10* monitor.c (monitor_open): If a dcache has already been created,J.T. Conklin1-1/+4
invalidate it rather than creating another. * ocd.c (ocd_open): Likewise. * remote-nindy.c (nindy_open): Likewise. * remote-sds.c (sds_open): Likewise. * remote-utils.c (gr_open): Likewise. * remote.c (remote_open_1, remote_cisco_open): Likewise. * dcache.c (dcache_alloc): Changed to take address of line as an argument, and to invalidate cache line before returning. (dcache_peek_byte): Updated. (dcache_poke_byte): Updated. -------------------------------------------------------------------
2000-07-30Protoization.Kevin Buettner1-108/+44
2000-06-04Eliminate PARAMS from function pointer declarations.Kevin Buettner1-1/+1
2000-05-28PARAMS removal.Kevin Buettner1-14/+13
2000-02-09Replace ../include/wait.h with gdb_wait.h.Andrew Cagney1-1/+1
1999-09-09import gdb-1999-09-08 snapshotStan Shebs1-3/+1
1999-07-07import gdb-1999-07-07 post reformatJason Molenda1-100/+132
1999-04-16Initial creation of sourceware repositorygdb-4_18-branchpointStan Shebs1-0/+1444
1999-04-16Initial creation of sourceware repositoryStan Shebs1-1444/+0
1999-01-19HPMERGE:Andrew Cagney1-4/+4
More wrong uses of gdb_stderr and stderr/stdout. More upddates to calls of catch_errors() so that call matches new interface.
1998-12-01Cleanup open comments.Andrew Cagney1-3/+6
1998-03-05 * ocd.c (ocd_open): If we fail ocd_start_remote, make sure weKeith Seitz1-1/+4
error () so that we abort out of bdm_ppc_open.
1997-08-26Mon Aug 25 17:08:01 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-6/+0
* ocd.c: revert Sun change -- enable log file handling
1997-08-25Sun Aug 24 21:16:59 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-0/+6
* ocd.c: comment out sections that create and flush wigglers.log log file when using the wiggler.
1997-08-21Thu Aug 21 14:56:04 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-21/+19
* ppc-bdm.c (bdm_ppc_wait): stop printfing ecr, der * ocd.c: initialize remote_timeout (ocd_wait): while looping, call ocd_do_command with OCD_AYT (ocd_get_packet): remove find_packet goto. If there isn't an 0x55 at the start, something is quite wrong so error out instead of advancing in the packet and trying again. If checksum is invalid, print error message instead of trying again. * ser-ocd.c (ocd_readchar): error if we attempt to read past the end of the from_wiggler_buffer.
1997-08-12Tue Aug 12 14:37:18 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-7/+11
* ocd.c (ocd_wait): loop until we're in BDM mode instead of assuming control has returned to GDB.
1997-08-11Mon Aug 11 16:22:36 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-5/+4
* ocd.c (ocd_insert_breakpoint, ocd_remove_breakpoint): macro BDM_BREAKPOINT already has braces around it, remove erroneous ones. * ser-ocd.c (ocd_write): conditionalize on _WIN32 instead of __CYGWIN32__ * config/powerpc/tm-ppc-eabi.h: remove BDM_NUM_REGS, BDM_REGMAP * ppc-bdm.c: move BDM_NUM_REGS, BDM_REGMAP here from tm.h file, fill in doc fields of bdm_ppc_ops. (bdm_ppc_fetch_registers): don't ask for invalid registers such as the MQ or floating point regs not present on ppc 8xx boards (bdm_ppc_store_registers): don't write those same invalid registers * config/i386/cygwin32.mh: stop including ocd.o ser-ocd.o * config/powerpc/ppc-eabi.mt: * config/powerpc/ppcle-eabi.mt: * config/powerpc/ppc-sim.mt: * config/powerpc/ppcle-sim.mt: include ser-ocd.o
1997-08-11Sun Aug 10 16:49:09 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-2/+2
* ocd.c: move ocd_write_bytes proto to ocd.h since it is used by ppc-bdm.c, use OCD_LOG_FILE to help debugging, define BDM_BREAKPOINT if not defined in tm.h (ocd_error): add new error cases (ocd_start_remote): send the OCD_INIT command before OCD_AYT and OCD_GET_VERSION calls, 80 was correct speed after all (ocd_write_bytes): no longer static (ocd_insert_breakpoint): no longer static (ocd_remove_breakpoint): new * ocd.h: add protos for ocd_write_bytes, ocd_insert_breakpoint, and ocd_remove_breakpoint * ppc-bdm.c: change bdm_ppc_ops so we call ocd_insert_breakpoint and ocd_remove_breakpoint instead of memory_insert_breakpoint and memory_remove_breakpoint. (bdm_ppc_open): after calling ocd_open, modify DER register so interrupts will drop us into debugging mode, finally disable the watchdog timer on the board so we don't leave BDM mode unexpectedly.
1997-08-11Sun Aug 10 16:49:09 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-21/+56
* ocd.c: move ocd_write_bytes proto to ocd.h since it is used by ppc-bdm.c, use OCD_LOG_FILE to help debugging, define BDM_BREAKPOINT if not defined in tm.h (ocd_error): add new error cases (ocd_start_remote): send the OCD_INIT command before OCD_AYT and OCD_GET_VERSION calls (ocd_write_bytes): no longer static (ocd_insert_breakpoint): no longer static (ocd_remove_breakpoint): new * ocd.h: add protos for ocd_write_bytes, ocd_insert_breakpoint, and ocd_remove_breakpoint * ppc-bdm.c: change bdm_ppc_ops so we call ocd_insert_breakpoint and ocd_remove_breakpoint instead of memory_insert_breakpoint and memory_remove_breakpoint. (bdm_ppc_open): after calling ocd_open, modify DER register so interrupts will drop us into debugging mode, finally disable the watchdog timer on the board so we don't leave BDM mode unexpectedly.
1997-08-08Thu Aug 7 19:40:52 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-5/+36
Changes to OCD support to support wiggler box as well as target boxes: * ocd.c: change speed in init command to 0 from 80, add (temporary) logging commands to help debugging, (ocd_open): if "target ocd wiggler lpt" then use special ser-ocd.c serial interface which communicates with Wigglers.dll, otherwise do as we did before (ocd_get_packet): add OCD_LOG_FILE and OCD_SET_CONNECTION to switch of known commands of len 0 * ocd.h: add OCD_LOG_FILE * serial.c (serial_open): do serial_interface_lookup on ocd in the case of ocd * ser-ocd.c: add buffer to contain responses from sending a command to the Wigglers.dll. (ocd_readchar): return curr char from buffer and increment ptr (ocd_write): send buffer to Wigglers.dll, storing response in return buffer and initializing curr location ptr to start of buffer.
1997-08-07Thu Aug 7 13:39:31 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-15/+15
* ocd.h: add OCD_SET_CONNECTION * ocd.c: rename "do_command" to "ocd_do_command"
1997-08-07Thu Aug 7 13:09:17 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-213/+213
Nomenclature change. BDM is a specific type of OCD (On chip debugging). Wiggler is the parallel port box controlled by Wigglers.dll. The faster target box from Macraigor Systems is not a wiggler. * ocd.c: * ocd.h: * ppc-bdm.c: * ser-ocd.c: Replace all instances of "wiggler_" with "ocd_" and change most other instances of "wiggler" to "ocd" or "ocd device" depending on context. * config/m68k/monitor.mt: remove remote-wiggler.o from TDEPFILES until OCD with that target is supported again.
1997-08-07Wed Aug 6 16:15:31 1997 Geoffrey Noer <noer@cygnus.com>Geoffrey Noer1-0/+1371
* Makefile.in: add DLLTOOL = @DLLTOOL@, pass on DLLTOOL to sub makes, change clean rule to also remove *.a to remove libwigglers.a, in dependencies: add ppc-bdm.o ocd.o ser-ocd.o and remove remote-wiggler.o * configure.in: add DLLTOOL support * configure: regenerate * wigglers.def: new file for imports for wigglers.dll * ser-ocd.c: new file which is layer between ocd.c and either the wigglers.dll or the target box, only stub so far * config/powerpc/ppc-eabi.mt: add ppc-bdm.o to TDEPFILES * config/powerpc/ppc-sim.mt: add ppc-bdm.o to TDEPFILES * config/i386/cygwin32.mh: add ocd.o ser-ocd.o libwigglers.a to XDEPFILES, add rules to build libwigglers.a checking in changes of Stu Grossman <grossman@cygnus.com>: * remote-wiggler.c: delete * ocd.c: new, was remote-wiggler.c always include sys/types.h, include ocd.h, move WIGGLER commands and many wiggler prototypes to ocd.h, make wiggler_desc static, stop making local wiggler functions static, define write_mem_command for wiggler_write_bytes (wiggler_start_remote): stop hardcoding the target type, instead set and use a target_type variable. (wiggler_open): add new target_type and ops args (wiggler_wait): now no longer takes pid and target_status as args, stop trying to set target_status struct, remove BGND insn checks (read_bdm_registers): renamed to wiggler_read_bdm_registers (wiggler_read_bdm_registers): numregs arg changed to reglen arg, remove pktlen check, set reglen instead of numregs (dump_all_bdm_regs): delete (wiggler_fetch_registers): delete (wiggler_prepare_to_store): now just an empty function (wiggler_store_registers): delete (wiggler_read_bdm_register): new (wiggler_write_bdm_registers): new (wiggler_write_bdm_register): new (wiggler_write_bytes): use write_mem_command variable instead of WIGGLER_WRITE_MEM (get_packet): renamed to wiggler_get_packet, change refs throughout (put_packet): renamed to wiggler_put_packet, change refs throughout (wiggler_get_packet): add break to default case of switch, change length of WIGGLER_GET_VERSION len to 10 from 4 to match specs (wiggler_mourn): unpush_target with current_ops, not &wiggler_ops (flash_xfer_memory): delete (noop_store_registers): new placeholder replacement for target_store_registers() which prevents generic_load from trying to set up the PC. (bdm_update_flash_command): add store_registers_tmp variable, make handling of wiggler_ops more generic -- define wiggler_ops in a target-specific file instead (such as ppc-bdm.c in the case of the ppc), use current_target to deal with registers again making this file less target-specific. (bdm_read_register_command): new (_initialize_remote_wiggler): stop doing add_target (&wiggler_ops), comment out add_cmd ("read-register", ...) * ocd.h: new, contains common wiggler prototypes, command definitions * ppc-bdm.c: file for ppc-specific OCD code, including target_ops structure for ppc bdm (bdm_ppc_open): new (bdm_ppc_wait): new (bdm_ppc_fetch_registers): new (bdm_ppc_store_registers_: new (_initialize_bdm_ppc): new * config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines