blob: 4a522191e00e82b19c8378cfe77920bf90c541e3 [file] [log] [blame]
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software
# Foundation, Inc.
#
# This file is part of DejaGnu.
#
# DejaGnu 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.
#
# DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# 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" {
incr 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
}