diff options
Diffstat (limited to 'config/ddb.exp')
-rw-r--r-- | config/ddb.exp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/config/ddb.exp b/config/ddb.exp new file mode 100644 index 0000000..13a18e0 --- /dev/null +++ b/config/ddb.exp @@ -0,0 +1,96 @@ +# Copyright (C) 1997 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# DejaGnu@cygnus.com + +# This file was written by Bob Manson (manson@cygnus.com) + +# We use GDB to talk to a vr4300 board. +load_generic_config "base68k"; + +set_board_info shell_prompt "NEC010> "; +set_board_info download_command "load tty0\n"; +set_board_info download_response "Downloading from"; +set_board_info go_command "g -e"; +set_board_info startaddr "a0100000" +set_board_info hex_startaddr "0xa0100000" +set_board_info go_response "(^|\[\r\n\])(Exception Cause|\[0-9a-z\]+ \[0-9a-z\]+ break|\\*\\*\\*EXIT code )\[^\r\n\]*\[\r\n\]" +set_board_info output_end "\[\r\n\](Exception Cause|\[0-9a-z\]+ \[0-9a-z\]+ break).*$" + +# Reset the prompt to what GDB needs. +proc ${board}_init { dest } { + global doing_ddb_init; + if [is_remote host] { + return; + } + + if ![info exists doing_ddb_init] { + set doing_ddb_init 1; + + for { set i 1; } { $i <= 3 } {incr i } { + remote_close $dest; + for { set x 0; } { $x < 3 } { incr x; } { + set shell_id [remote_open $dest]; + if { $shell_id == "" || $shell_id < 0 } { + remote_reboot $dest; + } else { + break; + } + } + + set count 0; + remote_send $dest "\n"; + remote_expect $dest 20 { + -re ".*PMON> $" { + remote_send $dest "set prompt \"NEC010> \"\n"; + exp_continue; + } + -re "NEC010> $" { + set i 10; + } + timeout { } + -re "0x0" { + count++; + if(count<5) { + exp_continue; + } + } + } + if { $i < 3 } { + remote_reboot $dest; + } + } + remote_close $dest; + unset doing_ddb_init; + } else { + return; + } +} + +set_board_info send_initial_cr 1 +set_board_info dont_wait_for_prompt 1 + +# If no output format is specified, use objcopy. +if ![board_info $board exists output_format] { + set tempfil [lookfor_file $tool_root_dir binutils/objcopy]; + if { $tempfil != "" } { + set_board_info objcopy $tempfil + } else { + set_board_info objcopy [transform objcopy] + } + unset tempfil +} |