The revision 2.48 change (grossman 1995/10/16) had unfortunately
broken the prompt spotting for the <RISQ> variant of the IDT monitor. Also took this opportunity to add the vr4300 configure.in options.
This commit is contained in:
parent
bef5440479
commit
0e3a4b1e8e
4 changed files with 31 additions and 23 deletions
|
@ -1,3 +1,13 @@
|
|||
Mon Oct 23 16:03:33 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
|
||||
|
||||
* configure.in (configdirs): Added support for the VR4300 default
|
||||
builds (mips64*vr4300*el-*-elf*, mips64*vr4300*-*-elf*).
|
||||
|
||||
* configure: Regenerated.
|
||||
|
||||
* remote-mips.c (mips_load): Updated the prompt spotting code to
|
||||
make use of the TARGET_MONITOR_PROMPT manifest.
|
||||
|
||||
Sat Oct 21 06:11:49 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
* alpha-tdep.c, mips-tdep.c (init_extra_frame_info):
|
||||
|
|
2
gdb/configure
vendored
2
gdb/configure
vendored
|
@ -2289,6 +2289,8 @@ mips*-dec-mach3*) gdb_target=mach3 ;;
|
|||
mips*-dec-*) gdb_target=decstation ;;
|
||||
mips64*el-*-ecoff*) gdb_target=idtl64 ;;
|
||||
mips64*-idt-ecoff*) gdb_target=idt64 ;;
|
||||
mips64*vr4300*el-*-elf*) gdb_target=vr4300el ;;
|
||||
mips64*vr4300*-*-elf*) gdb_target=vr4300 ;;
|
||||
mips64*el-*-elf*) gdb_target=idtl64 ;;
|
||||
mips64*-*-elf*) gdb_target=idt64 ;;
|
||||
mips*el-*-ecoff*) gdb_target=idtl ;;
|
||||
|
|
|
@ -370,6 +370,8 @@ mips*-dec-mach3*) gdb_target=mach3 ;;
|
|||
mips*-dec-*) gdb_target=decstation ;;
|
||||
mips64*el-*-ecoff*) gdb_target=idtl64 ;;
|
||||
mips64*-idt-ecoff*) gdb_target=idt64 ;;
|
||||
mips64*vr4300*el-*-elf*) gdb_target=vr4300el ;;
|
||||
mips64*vr4300*-*-elf*) gdb_target=vr4300 ;;
|
||||
mips64*el-*-elf*) gdb_target=idtl64 ;;
|
||||
mips64*-*-elf*) gdb_target=idt64 ;;
|
||||
mips*el-*-ecoff*) gdb_target=idtl ;;
|
||||
|
|
|
@ -330,7 +330,7 @@ mips_expect (string)
|
|||
{
|
||||
|
||||
/* Must use SERIAL_READCHAR here cuz mips_readchar would get confused if we
|
||||
were waiting for "<IDT>"... */
|
||||
were waiting for the TARGET_MONITOR_PROMPT... */
|
||||
|
||||
c = SERIAL_READCHAR (mips_desc, 2);
|
||||
|
||||
|
@ -357,31 +357,25 @@ mips_expect (string)
|
|||
|
||||
/* Read a character from the remote, aborting on error. Returns
|
||||
SERIAL_TIMEOUT on timeout (since that's what SERIAL_READCHAR
|
||||
returns). FIXME: If we see the string "<IDT>" from the board, then
|
||||
we are debugging on the main console port, and we have somehow
|
||||
dropped out of remote debugging mode. In this case, we
|
||||
automatically go back in to remote debugging mode. This is a hack,
|
||||
put in because I can't find any way for a program running on the
|
||||
remote board to terminate without also ending remote debugging
|
||||
returns). FIXME: If we see the string TARGET_MONITOR_PROMPT from
|
||||
the board, then we are debugging on the main console port, and we
|
||||
have somehow dropped out of remote debugging mode. In this case,
|
||||
we automatically go back in to remote debugging mode. This is a
|
||||
hack, put in because I can't find any way for a program running on
|
||||
the remote board to terminate without also ending remote debugging
|
||||
mode. I assume users won't have any trouble with this; for one
|
||||
thing, the IDT documentation generally assumes that the remote
|
||||
debugging port is not the console port. This is, however, very
|
||||
convenient for DejaGnu when you only have one connected serial
|
||||
port. */
|
||||
|
||||
/* CYGNUS LOCAL jsmith */
|
||||
/* The old code assumed a 5 character identification string, making it
|
||||
a chore to change the string value. However, we need to ensure
|
||||
that the method of ascertaining the length of the string is
|
||||
completely portable, without resorting to calling strlen(). */
|
||||
|
||||
static int
|
||||
mips_readchar (timeout)
|
||||
int timeout;
|
||||
{
|
||||
int ch;
|
||||
static int state = 0;
|
||||
static char nextstate[] = TARGET_MONITOR_PROMPT; /* CYGNUS LOCAL jsmith */
|
||||
static char nextstate[] = TARGET_MONITOR_PROMPT;
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
int i;
|
||||
|
||||
|
@ -390,7 +384,7 @@ mips_readchar (timeout)
|
|||
i = watchdog;
|
||||
#endif
|
||||
|
||||
if (state == (sizeof(nextstate) / sizeof(char))) /* CYGNUS LOCAL jsmith */
|
||||
if (state == (sizeof(nextstate) / sizeof(char)))
|
||||
timeout = 1;
|
||||
ch = SERIAL_READCHAR (mips_desc, timeout);
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
|
@ -414,13 +408,13 @@ mips_readchar (timeout)
|
|||
printf_unfiltered ("Timed out in read\n");
|
||||
}
|
||||
|
||||
/* If we have seen <IDT> and we either time out, or we see a @
|
||||
(which was echoed from a packet we sent), reset the board as
|
||||
described above. The first character in a packet after the SYN
|
||||
(which is not echoed) is always an @ unless the packet is more
|
||||
than 64 characters long, which ours never are. */
|
||||
/* If we have seen TARGET_MONITOR_PROMPT and we either time out, or
|
||||
we see a @ (which was echoed from a packet we sent), reset the
|
||||
board as described above. The first character in a packet after
|
||||
the SYN (which is not echoed) is always an @ unless the packet is
|
||||
more than 64 characters long, which ours never are. */
|
||||
if ((ch == SERIAL_TIMEOUT || ch == '@')
|
||||
&& state == (sizeof(nextstate) / sizeof(char)) /* CYGNUS LOCAL jsmith */
|
||||
&& state == (sizeof(nextstate) / sizeof(char))
|
||||
&& ! mips_initializing)
|
||||
{
|
||||
if (sr_get_debug () > 0)
|
||||
|
@ -1788,14 +1782,14 @@ mips_load (file, from_tty)
|
|||
int from_tty;
|
||||
{
|
||||
int err;
|
||||
static char prompt[] = TARGET_MONITOR_PROMPT;
|
||||
|
||||
/* Get the board out of remote debugging mode. */
|
||||
|
||||
mips_request ('x', (unsigned int) 0, (unsigned int) 0, &err,
|
||||
mips_receive_wait);
|
||||
|
||||
|
||||
if (!mips_expect ("\015\012<IDT>"))
|
||||
if (!mips_expect ("\015\012") || !mips_expect (prompt))
|
||||
error ("mips_load: Couldn't get into monitor mode.");
|
||||
|
||||
mips_load_srec (file);
|
||||
|
|
Loading…
Reference in a new issue