aboutsummaryrefslogtreecommitdiff
path: root/baseboards
diff options
context:
space:
mode:
authorRob Savoye <rob@welcomehome.org>2001-02-05 04:14:59 +0000
committerRob Savoye <rob@welcomehome.org>2001-02-05 04:14:59 +0000
commit20f1185dd84bcadf4b238d1d2ca18f5ca79157d4 (patch)
treeda300d5097593bc1d61123a8e32179914440e85f /baseboards
downloaddejagnu-20f1185dd84bcadf4b238d1d2ca18f5ca79157d4.zip
dejagnu-20f1185dd84bcadf4b238d1d2ca18f5ca79157d4.tar.gz
dejagnu-20f1185dd84bcadf4b238d1d2ca18f5ca79157d4.tar.bz2
Initial revision
Diffstat (limited to 'baseboards')
-rw-r--r--baseboards/README15
-rw-r--r--baseboards/a29k-udi.exp23
-rw-r--r--baseboards/arc-sim.exp37
-rw-r--r--baseboards/arm-ice.exp48
-rw-r--r--baseboards/arm-sim.exp52
-rw-r--r--baseboards/basic-sim.exp51
-rw-r--r--baseboards/cf.exp73
-rw-r--r--baseboards/cygmon.exp31
-rw-r--r--baseboards/cygwin.exp12
-rw-r--r--baseboards/d10v-sim.exp48
-rw-r--r--baseboards/d10v.exp60
-rw-r--r--baseboards/d30v-sim.exp33
-rw-r--r--baseboards/danlite-elf.exp42
-rw-r--r--baseboards/dos.exp25
-rw-r--r--baseboards/fr30-cygmon.exp31
-rw-r--r--baseboards/fr30-elf.exp40
-rw-r--r--baseboards/fr30-sim.exp34
-rw-r--r--baseboards/h8300-sim.exp44
-rw-r--r--baseboards/h8300.exp68
-rw-r--r--baseboards/i386-bozo.exp51
-rw-r--r--baseboards/i960-cyclone.exp47
-rw-r--r--baseboards/i960-sim.exp28
-rw-r--r--baseboards/jmr3904-sim.exp14
-rw-r--r--baseboards/linux-gdbserver.exp36
-rw-r--r--baseboards/linux-libremote.exp36
-rw-r--r--baseboards/m32r-elf.exp40
-rw-r--r--baseboards/m32r-sim.exp34
-rw-r--r--baseboards/m68k-emc.exp35
-rw-r--r--baseboards/mcore-elf.exp35
-rw-r--r--baseboards/mcore-moto-sim.exp125
-rw-r--r--baseboards/mcore-pe.exp35
-rw-r--r--baseboards/mcore-sim.exp37
-rw-r--r--baseboards/mips-idt.exp31
-rw-r--r--baseboards/mips-lnews-sim.exp5
-rw-r--r--baseboards/mips-lsi-sim.exp8
-rw-r--r--baseboards/mips-sim.exp30
-rw-r--r--baseboards/mips64-sim.exp29
-rw-r--r--baseboards/mips64vr4100-sim.exp33
-rw-r--r--baseboards/mn10200-cygmon.exp32
-rw-r--r--baseboards/mn10200-sim.exp45
-rw-r--r--baseboards/mn10300-cygmon.exp32
-rw-r--r--baseboards/mn10300-sim.exp41
-rw-r--r--baseboards/msparc-cygmon.exp1
-rw-r--r--baseboards/op50n.exp36
-rw-r--r--baseboards/powerpc-bug.exp29
-rw-r--r--baseboards/powerpc-bug1.exp5
-rw-r--r--baseboards/powerpc-sim.exp28
-rw-r--r--baseboards/powerpcle-sim.exp28
-rw-r--r--baseboards/rom68k-idp.exp69
-rw-r--r--baseboards/sh-hms-sim.exp48
-rw-r--r--baseboards/sh-hms.exp47
-rw-r--r--baseboards/sparc64-sim.exp31
-rw-r--r--baseboards/sparclet-aout.exp48
-rw-r--r--baseboards/sparclite-coff.exp41
-rw-r--r--baseboards/sparclite-cygmon.exp6
-rw-r--r--baseboards/sparclite-sim-le.exp47
-rw-r--r--baseboards/sparclite-sim.exp37
-rw-r--r--baseboards/strongarm-cygmon.exp41
-rw-r--r--baseboards/tic80-sim.exp28
-rw-r--r--baseboards/tx39-dve.exp48
-rw-r--r--baseboards/tx39-sim.exp3
-rw-r--r--baseboards/unix.exp8
-rw-r--r--baseboards/usparc-cygmon.exp48
-rw-r--r--baseboards/v850-sim.exp31
-rw-r--r--baseboards/vr4100-ddb.exp33
-rw-r--r--baseboards/vr4100-sim.exp12
-rw-r--r--baseboards/vr4111-sim.exp12
-rw-r--r--baseboards/vr4300-ddb.exp19
-rw-r--r--baseboards/vr4300-sim.exp12
-rw-r--r--baseboards/vr4300.exp41
-rw-r--r--baseboards/vr5000-ddb.exp40
-rw-r--r--baseboards/vx4300.exp25
-rw-r--r--baseboards/vx68k.exp25
-rw-r--r--baseboards/vx960.exp29
-rw-r--r--baseboards/vxsparc.exp25
-rw-r--r--baseboards/x86-cygmon.exp11
-rw-r--r--baseboards/xscale-cygmon.exp37
77 files changed, 2635 insertions, 0 deletions
diff --git a/baseboards/README b/baseboards/README
new file mode 100644
index 0000000..590bc43
--- /dev/null
+++ b/baseboards/README
@@ -0,0 +1,15 @@
+The files in this directory are used to describe the basic
+configuration of a board. (Note that we use "board" in its loosest
+sense, referring to either a target or host). The structure of these
+files is very similar, and I would suggest that you follow this when
+writing a new one.
+
+Two files need to be created for a given board; the appropriate file
+in this directory, and one in devo/dejagnu/config. The one in here is
+used to set up entries in the data array describing the board, while
+the one in devo/dejagnu/config is used to describe the actions used to
+actually communicate with the board.
+
+A third file (the site-specific machine file) can be used to describe
+any site-specific functionality, such as port numbers, serial devices,
+etc.
diff --git a/baseboards/a29k-udi.exp b/baseboards/a29k-udi.exp
new file mode 100644
index 0000000..3b4c506
--- /dev/null
+++ b/baseboards/a29k-udi.exp
@@ -0,0 +1,23 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {a29k-amd-udi};
+
+# Load the generic configuration for this board.
+load_generic_config "udi";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+# The basic set of flags needed to build "hello world" for this
+# board. This target uses libgloss and newlib.
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# We don't need a linker script.
+set_board_info ldscript "";
+
+# mondfe can't return exit statuses, so gcc (ctorture et al) needs to
+# do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
diff --git a/baseboards/arc-sim.exp b/baseboards/arc-sim.exp
new file mode 100644
index 0000000..4bb9d4a
--- /dev/null
+++ b/baseboards/arc-sim.exp
@@ -0,0 +1,37 @@
+# There is currently no ARC simulator. This exists so gcc compile.exp testing
+# works.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {arc-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "arc" is the name of the sim subdir in devo/sim.
+setup_sim arc
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
diff --git a/baseboards/arm-ice.exp b/baseboards/arm-ice.exp
new file mode 100644
index 0000000..8e03737
--- /dev/null
+++ b/baseboards/arm-ice.exp
@@ -0,0 +1,48 @@
+# Load the generic configuration for this board. This will define a basic
+# set of routines used to communicate with the board.
+load_generic_config "arm-ice"
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+if { [board_info $board obj_format] == "pe" } {
+ set additional_options "-Wl,-oformat,pe-arm-little,--image-base,0"
+} else {
+ set additional_options ""
+}
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+# The basic set of flags needed to build "hello world" for this
+# board. This board uses libgloss and newlib.
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] $additional_options"
+# This board doesn't use a linker script.
+set_board_info ldscript "";
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+
+# We use "target rdi" to talk to the board.
+set_board_info gdb_protocol "rdi"
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# Make this variable go away, we don't need it.
+unset additional_options;
+
+# Can't call functions from GDB.
+set_board_info gdb,cannot_call_functions 1
+
+# Or do I/O.
+set_board_info gdb,noinferiorio 1
+
+# Or have signals.
+set_board_info gdb,nosignals 1
+
+# Exit statuses are invalid.
+set_board_info exit_statuses_bad 1
diff --git a/baseboards/arm-sim.exp b/baseboards/arm-sim.exp
new file mode 100644
index 0000000..9e96c1b
--- /dev/null
+++ b/baseboards/arm-sim.exp
@@ -0,0 +1,52 @@
+# Load the generic configuration for this board. This will define a basic
+# set of routines used to communicate with the board.
+load_generic_config "sim"
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+if { [board_info $board obj_format] == "pe" } {
+ set additional_options "-Wl,-oformat,pe-arm-little,--image-base,0"
+# set_board_info uses_underscores 1
+} else {
+
+# if [istarget "*-*-coff"] {
+# set_board_info uses_underscores 1
+# }
+
+ set additional_options ""
+}
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the directory in the build tree where the simulator lives.
+setup_sim arm;
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# The basic set of flags needed to build "hello world" for this
+# board. This board uses libgloss and newlib.
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] $additional_options"
+
+# This board doesn't use a linker script.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# More time is needed to compile PlumHall tests
+set_board_info gcc,timeout 800
+
+# Make this variable go away, we don't need it.
+unset additional_options;
diff --git a/baseboards/basic-sim.exp b/baseboards/basic-sim.exp
new file mode 100644
index 0000000..3fa7c4d
--- /dev/null
+++ b/baseboards/basic-sim.exp
@@ -0,0 +1,51 @@
+# find_sim -- find a usable simulator
+# This proc is local to this file and is used to locate a simulator to use.
+# First we see if SIM=foo was specified on the command line.
+# Otherwise we search the build tree, then $PATH.
+
+proc find_sim { target_alias sim_dir sim_name } {
+ global tool_root_dir;
+ global SIM
+
+ if [info exists SIM] {
+ return $SIM
+ }
+
+ if [is_remote host] {
+ if ![board_info host exists no_transform_name] {
+ return ${target_alias}-${sim_name};
+ } else {
+ return ${sim_name};
+ }
+ }
+
+ # We have to search because tool_root_dir may actually point to that blasted
+ # "target" subdirectory.
+ set try [lookfor_file ${tool_root_dir} sim/${sim_dir}/${sim_name}];
+ if { $try != "" } {
+ return $try;
+ }
+ return ${target_alias}-${sim_name};
+}
+
+proc setup_sim { subdir_name } {
+ global target_alias;
+ global tool_root_dir;
+ global board;
+
+ if [info exists target_alias] {
+ set tmp $target_alias;
+ } else {
+ if [board_info $board exists target_install] {
+ set tmp [lindex [board_info $board target_install] 0];
+ }
+ }
+
+ if ![board_info $board exists sim] {
+ set_board_info sim [find_sim $tmp $subdir_name run];
+ }
+
+ verbose "Using simulator [board_info $board sim]\n"
+}
+
+set_board_info is_simulator 1;
diff --git a/baseboards/cf.exp b/baseboards/cf.exp
new file mode 100644
index 0000000..f4d73c3
--- /dev/null
+++ b/baseboards/cf.exp
@@ -0,0 +1,73 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m68k-elf};
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "cfdbug";
+
+# Need -m5200 by default.
+process_multilib_options "-m5200"
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+
+# Nasty hack.
+if { [board_info $board obj_format] == "a.out" } {
+ # Need to pass the start address to objcopy.
+ set_board_info use_vma_offset 1;
+ # Wrapping has to be specially done for m68k-aout, for whatever reason.
+ set_board_info wrap_m68k_aout 1;
+
+ set extra_m68k_ld_flags "-N"
+
+ # We need to tell GDB to load at the correct offset.
+ set_board_info gdb_load_offset [board_info $board hex_startaddr];
+} else {
+ set extra_m68k_ld_flags ""
+}
+
+set_board_info ldflags "$extra_m68k_ld_flags [libgloss_link_flags] [newlib_link_flags]"
+unset extra_m68k_ld_flags
+
+
+# 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
+}
+
+# SBC5204 linker script.
+set_board_info ldscript "-Wl,-Tsbc5204.ld";
+# The idt interface can't return exit statuses, so gcc (ctorture et
+# al) needs to do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can be.
+# The board has 192K of RAM. We will set stack size to one third of that.
+set_board_info gcc,stack_size 65536
+
+# GDB needs to use "target dbug" to talk to the board.
+set_board_info gdb_protocol "dbug";
+
+# Can't pass arguments to the program under test.
+set_board_info noargs 1
+
+# Nor can it do I/O in GDB.
+set_board_info gdb,noinferiorio 1
+
+# It has no signals.
+set_board_info gdb,nosignals 1
+
+# It can't return results when debugging with GDB.
+set_board_info gdb,noresults 1
+
+# Pseudo-random guess.
+set_board_info sys_speed_value 200;
diff --git a/baseboards/cygmon.exp b/baseboards/cygmon.exp
new file mode 100644
index 0000000..6ee4458
--- /dev/null
+++ b/baseboards/cygmon.exp
@@ -0,0 +1,31 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparc-elf sparc64-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "cygmon";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "-nostdlib [libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+set_board_info ldscript "-Tcygmon.ld"
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+
+set_board_info use_gdb_stub 1;
diff --git a/baseboards/cygwin.exp b/baseboards/cygwin.exp
new file mode 100644
index 0000000..80d4407
--- /dev/null
+++ b/baseboards/cygwin.exp
@@ -0,0 +1,12 @@
+# The canonical unix board description.
+load_generic_config "unix";
+
+process_multilib_options "";
+
+set_board_info compiler "[find_gcc]";
+
+set_board_info bmk,use_alarm 1;
+
+set_board_info gdb,noinferiorio 1;
+
+send_user "configuring for cygwin testing\n";
diff --git a/baseboards/d10v-sim.exp b/baseboards/d10v-sim.exp
new file mode 100644
index 0000000..f744cdc
--- /dev/null
+++ b/baseboards/d10v-sim.exp
@@ -0,0 +1,48 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {d10v-elf}
+
+# Load the generic configuration for this board. This will define any
+# routines needed to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the simulator directory is "d10v".
+setup_sim d10v
+
+# No multilib options needed by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info cflags "[newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "";
+
+# Can't pass arguments to programs on this target..
+set_board_info noargs 1
+# And there's no support for signals.
+set_board_info gdb,nosignals 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
+# Used by a few gcc.c-torture testcases when trampolines are used.
+set_board_info gcc,no_trampolines 1
+
+# Used by a few gcc.c-torture testcases when labels as values are used.
+set_board_info gcc,no_label_values 1
+
+# Torture test gcc.c-torture/execute/920501-6.c takes > 5 minutes on a
+# 90 Mhz Pentium, so up the time limit.
+set board_info($board,sim_time_limit) 600
+
+# sizeof int != sizeof long.
+set_board_info gdb,short_int 1
diff --git a/baseboards/d10v.exp b/baseboards/d10v.exp
new file mode 100644
index 0000000..254556e
--- /dev/null
+++ b/baseboards/d10v.exp
@@ -0,0 +1,60 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {d10v-elf}
+
+# Load the generic configuration for this board. This will define a base set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "d10v"
+
+# No multilib options are needed by default for this board.
+process_multilib_options "";
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+# No linker script needed.
+set_board_info ldscript "";
+
+# The board can't really return exit statuses and we need to indicate this;
+# however, the standard GCC wrapper won't work with this target because
+# it can't do I/O.
+#set_board_info needs_status_wrapper 1
+
+# It uses the remote stub protocol to talk to the board.
+set_board_info gdb_protocol "remote"
+set_board_info use_gdb_stub 1
+
+# Both the EVA and TS3 boards currently deal badly with X packets.
+set_board_info disable_x_packet 1
+
+# Both the EVA and TS3 boards currently deal badly with Z packets.
+set_board_info disable_z_packet 1
+
+# Used by gdb-comm.
+set_board_info gdb_run_command "jump *_start";
+set_board_info gdb,start_symbol "_start";
+
+# Can't pass arguments to programs on this target.
+set_board_info noargs 1
+# And there's no support for signals.
+set_board_info gdb,nosignals 1
+# And it can't do I/O.
+set_board_info gdb,noinferiorio 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
+# Used by a few gcc.c-torture testcases when trampolines are used.
+set_board_info gcc,no_trampolines 1
+
+# Used by a few gcc.c-torture testcases when labels as values are used.
+set_board_info gcc,no_label_values 1
+
+# sizeof int != sizeof long.
+set_board_info gdb,short_int 1
+
+# Some d10v:ts3 boards are in ts2-board compatibility mode after a reset.
+# Force it into d10v:ts3 internal mode
+set_board_info gdb_init_command "set \$dmap2 = 0x2000"
diff --git a/baseboards/d30v-sim.exp b/baseboards/d30v-sim.exp
new file mode 100644
index 0000000..c795165
--- /dev/null
+++ b/baseboards/d30v-sim.exp
@@ -0,0 +1,33 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {d30v-elf}
+
+# Load the generic configuration for this board. This will define any
+# routines needed to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the simulator directory is "d30v".
+setup_sim d30v
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+# Pass -C to the assembler to suppress the warning about symbols being the same name as registers
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags] -Wa,-C"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] -mextmem -Wl,--defsym,__stack=0x80800000"
+# No linker script needed.
+set_board_info ldscript "";
+
+# Can't pass arguments to programs on this target..
+set_board_info noargs 1
+# And there's no support for signals.
+set_board_info gdb,nosignals 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
diff --git a/baseboards/danlite-elf.exp b/baseboards/danlite-elf.exp
new file mode 100644
index 0000000..e22db2f
--- /dev/null
+++ b/baseboards/danlite-elf.exp
@@ -0,0 +1,42 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparc86x-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "slite";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+
+set_board_info ldflags "-nostartfiles [libgloss_link_flags] [newlib_link_flags]";
+
+# DANlite (sparc86x) linker script.
+set_board_info ldscript "-Tsparc86x.ld";
+
+# The address at which the stub needs to be linked.
+# set_board_info gdb_stub_offset "0x40000000";
+
+# The board doesn't return exit statuses and we need to indicate this.
+# However, the standard GCC wrapper won't work with this target because
+# it doesn't return stuff from printf ().
+set_board_info needs_status_wrapper 1;
+
+# We use a GDB stub to talk to the board.
+set_board_info use_gdb_stub 1;
+# For GDB, we need to use a real stub (not the separate loader scheme
+# we use for Sparclet).
+set_board_info gdb_stub "";
+# And the protocol is "sparclite".
+set_board_info gdb_protocol "sparclite";
+# No mathlib.
+set_board_info mathlib "";
+# We can't do I/O in GDB.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
diff --git a/baseboards/dos.exp b/baseboards/dos.exp
new file mode 100644
index 0000000..8702a03
--- /dev/null
+++ b/baseboards/dos.exp
@@ -0,0 +1,25 @@
+# This is a list of the installed tools for this board. Of course,
+# we apparently don't create a compiler for this board, but...
+set_board_info target_install {i386-cygwin32}
+
+# Load the generic configuration for the board. This will define any routines
+# needed by the tool to communicate with the board.
+
+load_generic_config "dos";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+# The basic set of flags needed to build "hello world" for this
+# board. This target uses libgloss, libio and winsup.
+set_board_info cflags "[newlib_include_flags] [libio_include_flags] [winsup_include_flags]";
+set_board_info ldflags "[newlib_link_flags] [libio_link_flags] [winsup_link_flags]"
+# We don't need a link script.
+set_board_info ldscript "";
+
+# mondfe can't return exit statuses, so gcc (ctorture et al) needs to
+# do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+set_board_info gdb_opts "--command gdbinit"
+set_board_info gdb,nointerrupts 1
diff --git a/baseboards/fr30-cygmon.exp b/baseboards/fr30-cygmon.exp
new file mode 100644
index 0000000..b18fa59
--- /dev/null
+++ b/baseboards/fr30-cygmon.exp
@@ -0,0 +1,31 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {fr30-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "cygmon";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+set_board_info ldscript "-specs=eval1.specs"
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info gdb,noargs 1;
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+set_board_info use_gdb_stub 1;
diff --git a/baseboards/fr30-elf.exp b/baseboards/fr30-elf.exp
new file mode 100644
index 0000000..3c8f514
--- /dev/null
+++ b/baseboards/fr30-elf.exp
@@ -0,0 +1,40 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {fr30-elf}
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+if { $is_gdb_remote } {
+ load_generic_config "fr30-stub"
+} else {
+ load_generic_config "fr30"
+}
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+set_board_info ldscript "-Wl,-Teva.ld"
+set_board_info gdb,start_symbol "_start"
+
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol used for this target.
+if { ! $is_gdb_remote } {
+ set_board_info gdb_protocol "fr30"
+} else {
+ set_board_info gdb_protocol "fr30"
+ set_board_info use_gdb_stub 1
+ set_board_info gdb_stub_ldscript "-Wl,-Teva-stub.ld"
+}
+
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
diff --git a/baseboards/fr30-sim.exp b/baseboards/fr30-sim.exp
new file mode 100644
index 0000000..73fad4c
--- /dev/null
+++ b/baseboards/fr30-sim.exp
@@ -0,0 +1,34 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {fr30-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "fr30" is the name of the sim subdir in devo/sim.
+setup_sim fr30
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
diff --git a/baseboards/h8300-sim.exp b/baseboards/h8300-sim.exp
new file mode 100644
index 0000000..39415df
--- /dev/null
+++ b/baseboards/h8300-sim.exp
@@ -0,0 +1,44 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {h8300-hms}
+
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the simulator is "h8300" (as in h8300-hms-run).
+setup_sim h8300
+
+# No multilib options are used by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target.
+set_board_info cflags "[newlib_include_flags]"
+set_board_info ldflags "[newlib_link_flags]"
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1
+
+# There's no support for argument-passing.
+set_board_info noargs 1
+# Nor does it have real signals.
+set_board_info gdb,nosignals 1
+# And it can't do I/O.
+set_board_info gdb,noinferiorio 1
+# Nor can it return results.
+set_board_info gdb,noresults 1
+
+# Limit the stack size to something real tiny.
+set_board_info gcc,stack_size 4096
+
+# There's no long long support on this target
+set_board_info no_long_long 1
+
+# sizeof int != sizeof long.
+set_board_info gdb,short_int 1
diff --git a/baseboards/h8300.exp b/baseboards/h8300.exp
new file mode 100644
index 0000000..f42dbb0
--- /dev/null
+++ b/baseboards/h8300.exp
@@ -0,0 +1,68 @@
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "h8300"
+
+# Don't use anything by default.
+process_multilib_options ""
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info cflags "[newlib_include_flags]"
+set_board_info ldflags "[newlib_link_flags]"
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "remote"
+# It's running a GDB stub in ROM.
+set_board_info use_gdb_stub 1;
+
+# There's no support for argument-passing.
+set_board_info noargs 1
+# Nor does it have real signals.
+set_board_info gdb,nosignals 1
+# And it can't do I/O.
+set_board_info gdb,noinferiorio 1
+# Nor can it return results.
+set_board_info gdb,noresults 1
+
+# Limit the stack size to something real tiny.
+set_board_info gcc,stack_size 4096
+
+# The board can get wedged in amusing and interesting ways.
+set_board_info unreliable 1
+
+# There's no long long support on this target
+set_board_info no_long_long 1
+
+# sizeof int != sizeof long.
+set_board_info gdb,short_int 1
+
+# Pick the right linker script if -mh/-ms is specified.
+
+set linker_script "h8300.ld"
+
+foreach x $board_variant_list {
+ regsub -all "^\[ \t\]*" "$x" "" x;
+ regsub -all "\[ \t\]*$" "$x" "" x;
+
+ case $x in {
+ { h -mh } {
+ set linker_script "h8300h.ld"
+ }
+ { s -ms } {
+ set linker_script "h8300s.ld"
+ }
+ }
+}
+
+# Whee, magic linker scripts hidden away.
+#
+# This one's dependent on the multilib options in use, sadly. And we
+# *need* a linker script. Really. Otherwise the code gets linked at
+# the wrong address and it won't run on the board.
+set_board_info ldscript "-Wl,-T${prefix_dir}/h8300-hms/${linker_script}"
+
+unset linker_script
diff --git a/baseboards/i386-bozo.exp b/baseboards/i386-bozo.exp
new file mode 100644
index 0000000..1dbfae0
--- /dev/null
+++ b/baseboards/i386-bozo.exp
@@ -0,0 +1,51 @@
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "i386-bozo"
+
+# Use no multilib options by default.
+process_multilib_options ""
+
+# Default to COFF.
+set add_flags "";
+if { [board_info $board obj_format] == "a.out" } {
+ set_board_info support_libs "${prefix_dir}/i386-aout/"
+ set_board_info gdb_load_offset "0x41000000";
+ set_board_info gdb_sect_offset "0x41000000";
+ set add_flags "-N ";
+} elseif { [board_info $board obj_format] == "elf" } {
+ set_board_info support_libs "${prefix_dir}/i386-elf/"
+} else {
+ set_board_info support_libs "${prefix_dir}/i386-coff/"
+}
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info cflags "[newlib_include_flags]"
+set_board_info ldflags "${add_flags}[newlib_link_flags] -B[board_info $board support_libs]"
+# Whee, magic linker scripts hidden away.
+set_board_info ldscript "-Tbozo.ld"
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "remote"
+# It's running a GDB stub in ROM.
+set_board_info use_gdb_stub 1;
+
+# There's no support for argument-passing.
+set_board_info noargs 1
+# Can't do input.
+set_board_info gdb,noinferiorio 1
+# Nor does it have real signals.
+set_board_info gdb,nosignals 1
+
+# Limit the stack size.
+set_board_info gcc,stack_size 16384
+
+# Status wrapper will work, although exit statuses are reliable.
+set_board_info needs_status_wrapper 1
+
+# This is the start symbol in crt0.o.
+set_board_info gdb,start_symbol "_start";
diff --git a/baseboards/i960-cyclone.exp b/baseboards/i960-cyclone.exp
new file mode 100644
index 0000000..6ce5ce7
--- /dev/null
+++ b/baseboards/i960-cyclone.exp
@@ -0,0 +1,47 @@
+# Danger, Will Robinson! Settings in this file do not override
+# previous settings for the board being defined.
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "i960"
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We want to strip executables before downloading them via xmodem.
+if ![board_info $board exists strip] {
+ set tempfil [lookfor_file $tool_root_dir binutils/strip];
+ if { $tempfil != "" } {
+ set_board_info strip $tempfil
+ } else {
+ set_board_info strip [transform strip]
+ }
+ unset tempfil
+}
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info start_addr 0xa0008000
+set_board_info ldflags "-Wl,-Ttext,[board_info $board start_addr] [libgloss_link_flags] [newlib_link_flags] -B${prefix_dir}/i960-coff/"
+# IDT linker script.
+set_board_info ldscript "-Wl,-T${prefix_dir}/i960-coff/i960.ld"
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "mon960"
+
+# Can't pass arguments to the program.
+set_board_info noargs 1
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+set_board_info gdb_prompt "\\(gdb960\\)"
+
+# The board tends to be unreliable.
+set_board_info unreliable 1
diff --git a/baseboards/i960-sim.exp b/baseboards/i960-sim.exp
new file mode 100644
index 0000000..98ca8de
--- /dev/null
+++ b/baseboards/i960-sim.exp
@@ -0,0 +1,28 @@
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+# This tells it which directory to look in for the simulator.
+setup_sim i960;
+
+# No multilib flags are set by default.
+# Set -msoft-float, because the simulator doesn't have FP support yet.
+process_multilib_options "-msoft-float";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+
+set_board_info cflags "-mka [libgloss_include_flags] [newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+
+# Use mon960.
+set_board_info ldscript "-Wl,-Tmon960.ld";
+
+# And, it can't do arguments, and doesn't have real signals.
+# ??? Unknown if this is right.
+set_board_info noargs 1;
+set_board_info gdb,nosignals 1;
diff --git a/baseboards/jmr3904-sim.exp b/baseboards/jmr3904-sim.exp
new file mode 100644
index 0000000..244e2b5
--- /dev/null
+++ b/baseboards/jmr3904-sim.exp
@@ -0,0 +1,14 @@
+# And we use the jmr3904 linker script.
+set_board_info ldscript "-Tjmr3904app.ld"
+
+# Pass --board=jmr3904 to the standalone simulator
+set_board_info sim,options "--board=jmr3904"
+set_board_info gdb,target_sim_options "--board=jmr3904"
+
+# Pass -G 0 when testing libjava
+set_board_info libjava,options "-G 0"
+
+set_board_info gcc,stack_size "8192"
+
+# Otherwise we're the same as the standard MIPS simulator.
+load_base_board_description "mips-sim";
diff --git a/baseboards/linux-gdbserver.exp b/baseboards/linux-gdbserver.exp
new file mode 100644
index 0000000..abf06d7
--- /dev/null
+++ b/baseboards/linux-gdbserver.exp
@@ -0,0 +1,36 @@
+# gdbserver running native.
+
+load_generic_config "gdbserver";
+
+process_multilib_options "";
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]";
+
+# We will be using the standard GDB remote protocol
+set_board_info gdb_protocol "remote"
+
+# Path to the gdbserver executable, if required.
+set_board_info gdb_server_prog \
+ "../gdbserver/gdbserver"
+
+# Name of the computer whose socket will be used, if required.
+set_board_info sockethost "localhost:"
+
+# Port ID to use for socket connection
+# set_board_info gdb,socketport "4004"
+
+# Use techniques appropriate to a stub
+set_board_info use_gdb_stub 1;
+
+# This gdbserver can only run a process once per session.
+set_board_info gdb,do_reload_on_run 1;
+
+# There's no support for argument-passing (yet).
+set_board_info noargs 1
+
+# Can't do input (or output) in the current gdbserver.
+set_board_info gdb,noinferiorio 1
+
+# Can't do hardware watchpoints, in general
+set_board_info gdb,no_hardware_watchpoints 1;
diff --git a/baseboards/linux-libremote.exp b/baseboards/linux-libremote.exp
new file mode 100644
index 0000000..8310969
--- /dev/null
+++ b/baseboards/linux-libremote.exp
@@ -0,0 +1,36 @@
+# Libremote gdbserver running native.
+
+load_generic_config "gdbserver";
+
+process_multilib_options "";
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]";
+
+# We will be using the standard GDB remote protocol
+set_board_info gdb_protocol "remote"
+
+# Path to the gdbserver executable, if required.
+set_board_info gdb_server_prog \
+ "../../libremote/native/server"
+
+# Name of the computer whose socket will be used, if required.
+# set_board_info sockethost "localhost"
+
+# Port ID to use for socket connection
+# set_board_info gdb,socketport "4004"
+
+# Use techniques appropriate to a stub
+set_board_info use_gdb_stub 1;
+
+# This gdbserver can only run a process once per session.
+set_board_info gdb,do_reload_on_run 1;
+
+# There's no support for argument-passing (yet).
+set_board_info noargs 1
+
+# Can't do input (or output) in the current gdbserver.
+set_board_info gdb,noinferiorio 1
+
+# Can't do hardware watchpoints, in general
+set_board_info gdb,no_hardware_watchpoints 1;
diff --git a/baseboards/m32r-elf.exp b/baseboards/m32r-elf.exp
new file mode 100644
index 0000000..ab402ae
--- /dev/null
+++ b/baseboards/m32r-elf.exp
@@ -0,0 +1,40 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m32r-elf}
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+if { $is_gdb_remote } {
+ load_generic_config "m32r-stub"
+} else {
+ load_generic_config "m32r"
+}
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+set_board_info ldscript "-Wl,-Teva.ld"
+set_board_info gdb,start_symbol "_start"
+
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol used for this target.
+if { ! $is_gdb_remote } {
+ set_board_info gdb_protocol "m32r"
+} else {
+ set_board_info gdb_protocol "m32r"
+ set_board_info use_gdb_stub 1
+ set_board_info gdb_stub_ldscript "-Wl,-Teva-stub.ld"
+}
+
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
diff --git a/baseboards/m32r-sim.exp b/baseboards/m32r-sim.exp
new file mode 100644
index 0000000..eaa7145
--- /dev/null
+++ b/baseboards/m32r-sim.exp
@@ -0,0 +1,34 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m32r-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "m32r" is the name of the sim subdir in devo/sim.
+setup_sim m32r
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
diff --git a/baseboards/m68k-emc.exp b/baseboards/m68k-emc.exp
new file mode 100644
index 0000000..7b57649
--- /dev/null
+++ b/baseboards/m68k-emc.exp
@@ -0,0 +1,35 @@
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "m68k-emc";
+
+# No multilib options by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+
+set_board_info ldflags "-nostdlib [libgloss_link_flags] [newlib_link_flags]"
+
+# No linker script.
+set_board_info ldscript "";
+# The idt interface can't return exit statuses, so gcc (ctorture et
+# al) needs to do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+# GDB needs to use "target remote" to talk to the board.
+set_board_info gdb_protocol "remote";
+
+# Can't pass arguments to the program under test.
+set_board_info noargs 1
+
+# Nor can it do I/O in GDB.
+set_board_info gdb,noinferiorio 1
+
+# It has no signals.
+set_board_info gdb,nosignals 1
+
+# It can't return results when debugging with GDB.
+set_board_info gdb,noresults 1
diff --git a/baseboards/mcore-elf.exp b/baseboards/mcore-elf.exp
new file mode 100644
index 0000000..a50df98
--- /dev/null
+++ b/baseboards/mcore-elf.exp
@@ -0,0 +1,35 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mcore-elf}
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "mcore"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "-specs=cmb.specs [libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+set_board_info ldscript ""
+set_board_info gdb,start_symbol "_start"
+
+#set_board_info needs_status_wrapper 1
+
+# The GDB protocol used for this target.
+set_board_info gdb_protocol "picobug"
+set_board_info use_gdb_stub 1
+
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio. It can't handle FP, either.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+set_board_info gdb,skip_float_tests 1
+
+# Increase the timeout
+set timeout 60
diff --git a/baseboards/mcore-moto-sim.exp b/baseboards/mcore-moto-sim.exp
new file mode 100644
index 0000000..a362f4f
--- /dev/null
+++ b/baseboards/mcore-moto-sim.exp
@@ -0,0 +1,125 @@
+# This is a HACKED version of mcore-sim.exp that is intended to
+# support running tests on Motorola's proprietry MCore simulator.
+
+# It is quite likely that thia file will need to be modified in
+# order for you to use Motorola's simulator.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mcore-elf, mcore-pe}
+
+# Do general config stuff but do not load anything. "jim" was
+# chosen because it does not exist.
+load_generic_config "jim"
+
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# No linker script needed.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+
+# Rather than include the normal simulator support files,
+# their functions are reproduced (and modified) here.
+# --------------------------------------------------------------
+proc sim_spawn { dest cmdline args } {
+
+ # Choose whoch simulator to run
+ ## XXX - fixme - this should be automatic based on the
+ ## multilib option.
+ ## XXX - fixme - this should not be hardcoded.
+ set sim "/home/nickc/bin/linux/sim-be"
+# set sim "/home/nickc/bin/linux/sim-le"
+
+ set simflags "-m abi"
+
+ # Create a script to run the program
+ set handle [open doit w]
+ puts $handle "load $cmdline"
+ puts $handle "reset"
+ puts $handle "g 28"
+ puts $handle "quit"
+ close $handle
+
+ return [eval remote_spawn host \{ $sim $simflags "-sdoit" \} $args];
+}
+
+proc sim_wait { dest timeout } {
+ return [remote_wait host $timeout];
+}
+
+proc sim_load { dest prog args } {
+
+ if ![file exists $prog] then {
+ perror "sim.exp: $prog to be downloaded does not exist."
+ verbose -log "$prog to be downloaded does not exist." 3
+ return [list "untested" ""];
+ }
+
+ set sim_time_limit 240
+
+ set output "";
+
+ set res [remote_spawn target "${prog}"];
+
+ if { $res <= 0 } {
+ return [list "fail" "remote_spawn failed"];
+ }
+
+ set state [remote_wait target $sim_time_limit];
+ set status [lindex $state 0];
+ set output [lindex $state 1];
+ verbose "Output is $output";
+
+ set status2 [check_for_board_status output];
+ if { $status2 >= 0 } {
+ set status $status2
+ }
+
+ # FIXME: Do we need to examine $status?
+ # Yes, we do--what if the simulator itself gets an error and coredumps?
+
+ verbose "Return status was: $status" 2
+ if { $status == 0 } {
+ set result "pass"
+ } else {
+ set result "fail"
+ }
+ return [list $result $output];
+}
+
+set_board_info protocol "sim";
+
+# By default, assume the simulator is slow. This causes some tests
+# to either be simplified or skipped completely.
+set_board_info slow_simulator 1
+
+# -----------------------------------------------------------
+# find_sim -- find a usable simulator
+# This proc is local to this file and is used to locate a simulator to use.
+# First we see if SIM=foo was specified on the command line.
+# Otherwise we search the build tree, then $PATH.
+
+proc find_sim { target_alias sim_dir sim_name } {
+
+ ## XXX - fixme - this should not be hardcoded.
+ ## XXX - fixme - this should vary depending upon endianism selected.
+
+ return "/home/nickc/bin/linux/sim-be";
+}
+
+set_board_info is_simulator 1;
diff --git a/baseboards/mcore-pe.exp b/baseboards/mcore-pe.exp
new file mode 100644
index 0000000..526f674
--- /dev/null
+++ b/baseboards/mcore-pe.exp
@@ -0,0 +1,35 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mcore-pe}
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "mcore"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "-specs=cmb.specs [libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+set_board_info ldscript ""
+set_board_info gdb,start_symbol "_start"
+
+#set_board_info needs_status_wrapper 1
+
+# The GDB protocol used for this target.
+set_board_info gdb_protocol "picobug"
+set_board_info use_gdb_stub 1
+
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio. It can't handle FP, either.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+set_board_info gdb,skip_float_tests 1
+
+# Increase the timeout
+set timeout 60
diff --git a/baseboards/mcore-sim.exp b/baseboards/mcore-sim.exp
new file mode 100644
index 0000000..ae863ca
--- /dev/null
+++ b/baseboards/mcore-sim.exp
@@ -0,0 +1,37 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mcore-elf, mcore-pe}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "mcore" is the name of the sim subdir in devo/sim.
+setup_sim mcore
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# Doesn't pass arguments or signals, can't return results, and doesn't
+# do inferiorio.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+set_board_info gdb,skip_float_tests 1
+
+set timeout 45
diff --git a/baseboards/mips-idt.exp b/baseboards/mips-idt.exp
new file mode 100644
index 0000000..17c6ca8
--- /dev/null
+++ b/baseboards/mips-idt.exp
@@ -0,0 +1,31 @@
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "mips-idt";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+
+# We don't use any multilib options by default.
+process_multilib_options ""
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+
+# Use idt.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tidtecoff.ld";
+} else {
+ set_board_info ldscript "-Wl,-Tidt.ld";
+}
+
+# The idt interface can't return exit statuses, so gcc (ctorture et
+# al) needs to do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+# GDB needs to use "target mips" to talk to the board.
+set_board_info gdb_protocol "mips";
+
+# And, it can't do arguments, and doesn't have real signals.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
diff --git a/baseboards/mips-lnews-sim.exp b/baseboards/mips-lnews-sim.exp
new file mode 100644
index 0000000..b4685df
--- /dev/null
+++ b/baseboards/mips-lnews-sim.exp
@@ -0,0 +1,5 @@
+# lnews linker script.
+set_board_info ldscript "-Wl,-Tlnews.ld"
+
+# Otherwise, it's the same as the standard mips simulator.
+load_base_board_description "mips-sim";
diff --git a/baseboards/mips-lsi-sim.exp b/baseboards/mips-lsi-sim.exp
new file mode 100644
index 0000000..47cae89
--- /dev/null
+++ b/baseboards/mips-lsi-sim.exp
@@ -0,0 +1,8 @@
+# We need mips16.
+add_multilib_option "-mips16"
+
+# And we use the lsi linker script.
+set_board_info ldscript "-Wl,-Tlsi.ld"
+
+# Otherwise we're the same as the standard MIPS simulator.
+load_base_board_description "mips-sim";
diff --git a/baseboards/mips-sim.exp b/baseboards/mips-sim.exp
new file mode 100644
index 0000000..104188a
--- /dev/null
+++ b/baseboards/mips-sim.exp
@@ -0,0 +1,30 @@
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+# This tells it which directory to look in for the simulator.
+setup_sim mips;
+
+# No multilib flags are set by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+
+# Use idt.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tidtecoff.ld";
+} else {
+ set_board_info ldscript "-Wl,-Tidt.ld";
+}
+
+# And, it can't do arguments, and doesn't have real signals.
+set_board_info noargs 1;
+set_board_info gdb,nosignals 1;
diff --git a/baseboards/mips64-sim.exp b/baseboards/mips64-sim.exp
new file mode 100644
index 0000000..3315619
--- /dev/null
+++ b/baseboards/mips64-sim.exp
@@ -0,0 +1,29 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips64vr4300-elf
+ mips64-elf}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+# This tells it which directory to look in for the simulator.
+setup_sim mips;
+
+# No multilib flags are set by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+# PMON linker script.
+set_board_info ldscript "-Wl,-Tpmon.ld"
+
+# And, it can't do arguments or signals in GDB.
+set_board_info noargs 1;
+set_board_info gdb,nosignals 1;
diff --git a/baseboards/mips64vr4100-sim.exp b/baseboards/mips64vr4100-sim.exp
new file mode 100644
index 0000000..6e1d5eb
--- /dev/null
+++ b/baseboards/mips64vr4100-sim.exp
@@ -0,0 +1,33 @@
+# This is the name of the installed tools for this target.
+set target_install "mips64vr4100-elf"
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+load_lib "libgloss.exp"
+
+# We need this for find_gcc and *_include_flags/*_link_flags.
+load_board_description "basic-sim"
+
+if ![info exists board_info($board,multilib_flags)] {
+ set board_info($board,multilib_flags) "-mips16"
+}
+
+# This tells it which directory to look in for the simulator.
+setup_sim mips
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set board_info($board,compiler) "[find_gcc]"
+set board_info($board,cflags) "[libgloss_include_flags] [newlib_include_flags] [libio_include_flags]"
+set board_info($board,ldflags) "[libgloss_link_flags] [newlib_link_flags] [libio_link_flags]"
+# IDT linker script.
+set board_info($board,ldscript) "-Wl,-Tidt.ld"
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set board_info($board,needs_status_wrapper) 1
+set board_info($board,gdb,noargs) 1
+set_board_info gdb,nosignals 1;
+set_board_info noargs 1;
diff --git a/baseboards/mn10200-cygmon.exp b/baseboards/mn10200-cygmon.exp
new file mode 100644
index 0000000..1d122e3
--- /dev/null
+++ b/baseboards/mn10200-cygmon.exp
@@ -0,0 +1,32 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mn10200-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "mn10200-eval";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+set_board_info ldscript "-Teval.ld"
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info gdb,noargs 1;
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+
+set_board_info use_gdb_stub 1;
diff --git a/baseboards/mn10200-sim.exp b/baseboards/mn10200-sim.exp
new file mode 100644
index 0000000..2356e3a
--- /dev/null
+++ b/baseboards/mn10200-sim.exp
@@ -0,0 +1,45 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mn10200-elf}
+
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# This is the name of the sim subdir in devo/sim (and in the build tree).
+setup_sim mn10200
+
+# No multilib flags are set by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target.
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Simulator linker script.
+set_board_info ldscript "-Tsim.ld"
+
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1
+
+# We can't pass args to the simulator or get exit status back from the
+# simulator, nor does the simulator support real signals.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+
+# The mn10200 doesn't support long long data types or double data types.
+set_board_info no_long_long 1
+set_board_info no_double 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 4096;
diff --git a/baseboards/mn10300-cygmon.exp b/baseboards/mn10300-cygmon.exp
new file mode 100644
index 0000000..86c65e1
--- /dev/null
+++ b/baseboards/mn10300-cygmon.exp
@@ -0,0 +1,32 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mn10300-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "mn10300-eval";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+set_board_info ldscript "-Teval.ld"
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info gdb,noargs 1;
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+
+set_board_info use_gdb_stub 1;
diff --git a/baseboards/mn10300-sim.exp b/baseboards/mn10300-sim.exp
new file mode 100644
index 0000000..eff6a62
--- /dev/null
+++ b/baseboards/mn10300-sim.exp
@@ -0,0 +1,41 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mn10300-elf}
+
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# This is the name of the sim subdir in devo/sim (and in the build tree).
+setup_sim mn10300
+
+# No multilib flags are set by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target.
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Simulator linker script.
+set_board_info ldscript "-Tsim.ld"
+
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1
+
+# We can't pass args to the simulator or get exit status back from the
+# simulator, nor does the simulator support real signals.
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,noinferiorio 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 4096;
diff --git a/baseboards/msparc-cygmon.exp b/baseboards/msparc-cygmon.exp
new file mode 100644
index 0000000..55fc491
--- /dev/null
+++ b/baseboards/msparc-cygmon.exp
@@ -0,0 +1 @@
+load_base_board_description "cygmon";
diff --git a/baseboards/op50n.exp b/baseboards/op50n.exp
new file mode 100644
index 0000000..dee8ca3
--- /dev/null
+++ b/baseboards/op50n.exp
@@ -0,0 +1,36 @@
+# Load the tool-specific configuration for this board, as well as the
+# generic configuration. This will define any routines needed by the
+# tool to communicate with the board.
+load_generic_config "proelf";
+
+# GDB needs to use "target op50n" to talk to the board.
+set_board_info gdb_protocol "op50n";
+
+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
+}
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+# It's an op50n board.
+set_board_info ldscript "-Wl,-Top50n.ld";
+# The proelf interface has no way to return status information, so we
+# need to indicate this.
+set_board_info needs_status_wrapper 1;
+
+# No support for signals.
+set_board_info gdb,nosignals 1;
+# Nor can we do I/O.
+set_board_info gdb,noinferiorio 1;
+
+# The monitor interface is really slow.
+set_board_info gdb,timeout 540;
diff --git a/baseboards/powerpc-bug.exp b/baseboards/powerpc-bug.exp
new file mode 100644
index 0000000..2428f72
--- /dev/null
+++ b/baseboards/powerpc-bug.exp
@@ -0,0 +1,29 @@
+load_generic_config "powerpc-bug";
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {powerpc-eabi};
+
+# We need mvme by default.
+process_multilib_options "mvme";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# No linker script needed for this board.
+set_board_info ldscript "";
+
+# Can't pass arguments to programs on this target..
+set_board_info noargs 1
+# And there's no support for signals.
+set_board_info gdb,nosignals 1
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol for this board is...
+set_board_info gdb_protocol "ppcbug"
diff --git a/baseboards/powerpc-bug1.exp b/baseboards/powerpc-bug1.exp
new file mode 100644
index 0000000..fe25678
--- /dev/null
+++ b/baseboards/powerpc-bug1.exp
@@ -0,0 +1,5 @@
+# This config uses ppcbug1 protocol in GDB.
+set_board_info gdb_protocol "ppcbug1"
+
+# But otherwise we're the same as powerpc-bug.
+load_base_board_description "powerpc-bug"
diff --git a/baseboards/powerpc-sim.exp b/baseboards/powerpc-sim.exp
new file mode 100644
index 0000000..db579e1
--- /dev/null
+++ b/baseboards/powerpc-sim.exp
@@ -0,0 +1,28 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {powerpc-eabi}
+
+# Load the generic configuration for this board, This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the simulator is "ppc".
+setup_sim ppc
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "-msim [libgloss_link_flags] [newlib_link_flags]"
+
+# No support for signals on this target.
+set_board_info gdb,nosignals 1;
+
+# Can't call functions from GDB.
+set_board_info gdb,cannot_call_functions 1
diff --git a/baseboards/powerpcle-sim.exp b/baseboards/powerpcle-sim.exp
new file mode 100644
index 0000000..20754fa
--- /dev/null
+++ b/baseboards/powerpcle-sim.exp
@@ -0,0 +1,28 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {powerpcle-eabi}
+
+# Load the generic configuration for this board, This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the simulator is "ppc".
+setup_sim ppc
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "-msim [libgloss_link_flags] [newlib_link_flags]"
+
+# No support for signals on this target.
+set_board_info gdb,nosignals 1;
+
+# Can't call functions from GDB.
+set_board_info gdb,cannot_call_functions 1
diff --git a/baseboards/rom68k-idp.exp b/baseboards/rom68k-idp.exp
new file mode 100644
index 0000000..4f0d1ad
--- /dev/null
+++ b/baseboards/rom68k-idp.exp
@@ -0,0 +1,69 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m68k-coff m68k-elf};
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "rom68k";
+
+# Need soft-float by default.
+process_multilib_options "-msoft-float"
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+
+# Nasty hack.
+if { [board_info $board obj_format] == "a.out" } {
+ # Need to pass the start address to objcopy.
+ set_board_info use_vma_offset 1;
+ # Wrapping has to be specially done for m68k-aout, for whatever reason.
+ set_board_info wrap_m68k_aout 1;
+
+ set extra_m68k_ld_flags "-N -nostdlib "
+
+ # We need to tell GDB to load at the correct offset.
+ set_board_info gdb_load_offset [board_info $board hex_startaddr];
+} else {
+ set extra_m68k_ld_flags ""
+}
+
+set_board_info ldflags "$extra_m68k_ld_flags [libgloss_link_flags] [newlib_link_flags]"
+unset extra_m68k_ld_flags
+
+
+# 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
+}
+
+# IDP linker script.
+set_board_info ldscript "-Wl,-Tidp.ld";
+# The idt interface can't return exit statuses, so gcc (ctorture et
+# al) needs to do what it can to get them.
+set_board_info needs_status_wrapper 1;
+
+# GDB needs to use "target rom68k" to talk to the board.
+set_board_info gdb_protocol "rom68k";
+
+# Can't pass arguments to the program under test.
+set_board_info noargs 1
+
+# Nor can it do I/O in GDB.
+set_board_info gdb,noinferiorio 1
+
+# It has no signals.
+set_board_info gdb,nosignals 1
+
+# It can't return results when debugging with GDB.
+set_board_info gdb,noresults 1
+
+# Pseudo-random guess.
+set_board_info sys_speed_value 200;
diff --git a/baseboards/sh-hms-sim.exp b/baseboards/sh-hms-sim.exp
new file mode 100644
index 0000000..69da8d6
--- /dev/null
+++ b/baseboards/sh-hms-sim.exp
@@ -0,0 +1,48 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sh-hms}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# The name of the directory in the build tree that the simulator lives in
+# is "sh".
+setup_sim sh
+
+# No multilib flags needed by default.
+process_multilib_options ""
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target.
+# However, we include libgloss so we can find the linker scripts.
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]"
+set_board_info ldflags "[newlib_link_flags]"
+# No linker script for this board.
+set_board_info ldscript "";
+# The simulator doesn't return exit statuses and we need to indicate this.
+# Doesn't work on SH yet.
+# set_board_info needs_status_wrapper 1
+# Can't pass arguments to this target.
+set_board_info noargs 1
+# No signals.
+set_board_info gdb,nosignals 1
+# And it can't call functions.
+set_board_info gdb,cannot_call_functions 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+
+# Need to pass -mieee in order to for the compiler to be IEEE-fp compliant.
+set_board_info ieee_multilib_flags "-mieee";
+
+#We want to pass "18" to GDB"s "targt sim" command.
+set_board_info gdb,target_sim_options "18"
+#and the standalone simulator
+set_board_info sim,options "-m 18"
diff --git a/baseboards/sh-hms.exp b/baseboards/sh-hms.exp
new file mode 100644
index 0000000..4653707
--- /dev/null
+++ b/baseboards/sh-hms.exp
@@ -0,0 +1,47 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sh-hms}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sh"
+
+# Default to SH2.
+process_multilib_options "-m2"
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]"
+
+# We only support newlib on this target.
+# However, we include libgloss so we can find the linker scripts.
+set_board_info cflags "[newlib_include_flags]"
+set_board_info ldflags "[newlib_link_flags] [libgloss_link_flags]"
+
+# Linker script for the SH2 board.
+set_board_info ldscript "-Wl,-Tsh2lcevb.ld"
+
+# Can't pass arguments to this target.
+set_board_info noargs 1
+# And it can't call functions.
+set_board_info gdb,cannot_call_functions 1
+
+# We use the remote GDB protocol.
+set_board_info gdb_protocol "remote"
+# Jumping to start is how we get the program started in GDB.
+set_board_info gdb_run_command "jump start"
+# The remote target uses a GDB stub.
+set_board_info use_gdb_stub 1
+# We can't do I/O.
+set_board_info gdb,noinferiorio 1
+# Or signals.
+set_board_info gdb,nosignals 1
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+
+# Exit statuses returned from GDB are sometimes faulty.
+set_board_info exit_statuses_bad 1
+
+# Need to pass -mieee in order to for the compiler to be IEEE-fp compliant.
+set_board_info ieee_multilib_flags "-mieee";
diff --git a/baseboards/sparc64-sim.exp b/baseboards/sparc64-sim.exp
new file mode 100644
index 0000000..914a571
--- /dev/null
+++ b/baseboards/sparc64-sim.exp
@@ -0,0 +1,31 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparc64-elf}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# We need this for find_gcc and *_include_flags/*_link_flags.
+load_base_board_description "basic-sim"
+
+# Use long64 by default.
+process_multilib_options "long64"
+
+setup_sim sparc64
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script.
+set_board_info ldscript "";
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 16384
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# We can't pass arguments to programs.
+set_board_info noargs 1
diff --git a/baseboards/sparclet-aout.exp b/baseboards/sparclet-aout.exp
new file mode 100644
index 0000000..153549c
--- /dev/null
+++ b/baseboards/sparclet-aout.exp
@@ -0,0 +1,48 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparclet-aout}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board,.
+load_generic_config "sparclet";
+
+# It needs broken-saverestore by default.
+process_multilib_options "-mbroken-saverestore"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]"
+set_board_info ldflags "-nostdlib [libgloss_link_flags] [newlib_link_flags] -Wl,-Ttext,0x12020000 -N"
+
+# tsc701 linker script.
+set_board_info ldscript "-Ttsc701.ld"
+
+# The board doesn't return exit statuses and we need to indicate this.
+# However, the standard GCC wrapper won't work with this target because
+# it doesn't return stuff from printf ().
+#set_board_info needs_status_wrapper 1
+
+# The monitor uses a GDB stub.
+set_board_info use_gdb_stub 1
+# The GDB protocol used to communicate with this board.
+set_board_info gdb_protocol "sparclet"
+# The offset in memory that we load programs.
+set_board_info gdb_load_offset "0x12020000"
+# And the place in memory where we load the stub.
+set_board_info gdb_stub_offset "0x12010000"
+# No mathlib.
+set_board_info mathlib "";
+# We can't do I/O in GDB.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info noargs 1;
+
+set_board_info gcc,no_varargs 1
+set_board_info gcc,no_label_values 1
+
+# This is the old GDB prompt for the toolchain.
+# Uncomment for old tests
+set_board_info gdb_prompt "\\(gdb\\)";
+
+# We always have to set a breakpoint at exit(), instead of just _exit().
+set_board_info always_break_exit 1;
diff --git a/baseboards/sparclite-coff.exp b/baseboards/sparclite-coff.exp
new file mode 100644
index 0000000..61eafc4
--- /dev/null
+++ b/baseboards/sparclite-coff.exp
@@ -0,0 +1,41 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparclite-coff}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "slite";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "-nostdlib [libgloss_link_flags] [newlib_link_flags] -Wl,-Ttext,0x40005000 -N";
+
+# ex930 linker script.
+set_board_info ldscript "-Tex930.ld";
+
+# The address at which the stub needs to be linked.
+set_board_info gdb_stub_offset "0x40000000";
+
+# The board doesn't return exit statuses and we need to indicate this.
+# However, the standard GCC wrapper won't work with this target because
+# it doesn't return stuff from printf ().
+set_board_info needs_status_wrapper 1;
+
+# We use a GDB stub to talk to the board.
+set_board_info use_gdb_stub 1;
+# For GDB, we need to use a real stub (not the separate loader scheme
+# we use for Sparclet).
+set_board_info gdb_stub "";
+# And the protocol is "sparclite serial".
+set_board_info gdb_protocol "sparclite serial";
+# No mathlib.
+set_board_info mathlib "";
+# We can't do I/O in GDB.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
diff --git a/baseboards/sparclite-cygmon.exp b/baseboards/sparclite-cygmon.exp
new file mode 100644
index 0000000..956881e
--- /dev/null
+++ b/baseboards/sparclite-cygmon.exp
@@ -0,0 +1,6 @@
+if { [board_info $board obj_format] == "a.out" } {
+ set_board_info addl_link_flags "-N"
+ set_board_info gdb_load_offset "0x40050000"
+}
+
+load_base_board_description "cygmon"
diff --git a/baseboards/sparclite-sim-le.exp b/baseboards/sparclite-sim-le.exp
new file mode 100644
index 0000000..5daec2e
--- /dev/null
+++ b/baseboards/sparclite-sim-le.exp
@@ -0,0 +1,47 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparclite-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+if ![info exists board_info($board,multilib_flags)] {
+ set board_info($board,multilib_flags) "-mlittle-endian-data"
+}
+
+# This tells it which directory to look in for the simulator.
+setup_sim erc32;
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "-nostdlib -nostartfiles [libgloss_link_flags] [newlib_link_flags]";
+
+# ELF simulator linker script.
+set_board_info ldscript "-Telfsim.ld";
+
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1;
+
+# We use a GDB stub to talk to the board.
+# set_board_info use_gdb_stub 1;
+# For GDB, we need to use a real stub (not the separate loader scheme
+# we use for Sparclet).
+# set_board_info gdb_stub "";
+# No mathlib.
+# set_board_info mathlib "";
+# We can't do I/O in GDB.
+# set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+#We want to specify the sparclite emulator in GDB.
+set_board_info gdb,target_sim_options "-sparclite"
diff --git a/baseboards/sparclite-sim.exp b/baseboards/sparclite-sim.exp
new file mode 100644
index 0000000..a977ffa
--- /dev/null
+++ b/baseboards/sparclite-sim.exp
@@ -0,0 +1,37 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparclite-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+# This tells it which directory to look in for the simulator.
+setup_sim erc32;
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "-nostdlib -nostartfiles [libgloss_link_flags] [newlib_link_flags]";
+
+# ELF simulator linker script.
+set_board_info ldscript "-Telfsim.ld";
+
+# The simulator doesn't return exit statuses and we need to indicate this.
+set_board_info needs_status_wrapper 1;
+
+# We can't pass arguments.
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+# We want to specify the sparclite emulator in GDB.
+set_board_info gdb,target_sim_options "-sparclite"
+
+# Pass -a -sparclite to the standalone simulator
+set_board_info sim,options "-a -sparclite"
diff --git a/baseboards/strongarm-cygmon.exp b/baseboards/strongarm-cygmon.exp
new file mode 100644
index 0000000..8e41199
--- /dev/null
+++ b/baseboards/strongarm-cygmon.exp
@@ -0,0 +1,41 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {strongarm-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "cygmon";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+
+if {[string compare [board_info $board boardtype] "sa1100dp"] == 0} {
+ set_board_info ldscript "-specs=sa1100dp.specs"
+} elseif {[string compare [board_info $board boardtype] "sa1100mm"] == 0} {
+ set_board_info ldscript "-specs=sa1100mm.specs"
+} elseif {[string compare [board_info $board boardtype] "sa-iop"] == 0} {
+ set_board_info ldscript "-specs=sa-iop.specs"
+} elseif {[string compare [board_info $board boardtype] "ebsa-285"] == 0} {
+ set_board_info ldscript "-specs=ebsa-285.specs"
+}
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info gdb,noargs 1;
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+set_board_info use_gdb_stub 1;
+set_board_info use_cygmon 1
diff --git a/baseboards/tic80-sim.exp b/baseboards/tic80-sim.exp
new file mode 100644
index 0000000..dc2cecc
--- /dev/null
+++ b/baseboards/tic80-sim.exp
@@ -0,0 +1,28 @@
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "sim";
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim";
+
+# This tells it which directory to look in for the simulator.
+setup_sim tic80;
+
+# No multilib flags are set by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. This has *nothing* to do
+# with what compiler is tested if we're testing gcc.
+set_board_info compiler "[find_gcc]";
+
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]";
+# No linker script is needed.
+# set_board_info ldscript "";
+
+# And, it can't do arguments, and doesn't have real signals.
+set_board_info noargs 1;
+set_board_info gdb,nosignals 1;
+
+# Used by a few gcc.c-torture testcases when trampolines are used.
+set_board_info gcc,no_varargs 1
diff --git a/baseboards/tx39-dve.exp b/baseboards/tx39-dve.exp
new file mode 100644
index 0000000..8973e43
--- /dev/null
+++ b/baseboards/tx39-dve.exp
@@ -0,0 +1,48 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips-tx39-elf mips-elf}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+if { [board_info $board cygmon] == "yes" } {
+ load_generic_config "cygmon";
+} else {
+ load_generic_config "dve";
+}
+
+# It's a big-endian board.
+process_multilib_options "big-endian"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# DDB linker script.
+set_board_info ldscript "-Wl,-Tdve.ld";
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1;
+
+# The GDB protocol used with this board.
+if { [board_info $board cygmon] == "yes" } {
+ set_board_info gdb_protocol "remote"
+} else {
+ set_board_info gdb_protocol "r3900"
+}
+
+# This is needed for compiling nullstone.
+set_board_info nullstone,lib "mips-clock.c"
+set_board_info nullstone,ticks_per_sec 3782018
+
+# Sometimes the board gets into a state where it always generates SIGFPE.
+#set_board_info unreliable 1
+
+# Can't pass arguments to the program.
+set_board_info noargs 1
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# We need to clear the floating-point status register before running.
+#set_board_info gdb_init_command "print/x \$fsr = 0x0"
diff --git a/baseboards/tx39-sim.exp b/baseboards/tx39-sim.exp
new file mode 100644
index 0000000..20fc722
--- /dev/null
+++ b/baseboards/tx39-sim.exp
@@ -0,0 +1,3 @@
+# This file is unnecessary, but we'll keep it for now.
+# We're the same as the standard MIPS simulator.
+load_base_board_description "mips-sim";
diff --git a/baseboards/unix.exp b/baseboards/unix.exp
new file mode 100644
index 0000000..98d1ec1
--- /dev/null
+++ b/baseboards/unix.exp
@@ -0,0 +1,8 @@
+# The canonical unix board description.
+load_generic_config "unix";
+
+process_multilib_options "";
+
+set_board_info compiler "[find_gcc]";
+
+set_board_info bmk,use_alarm 1;
diff --git a/baseboards/usparc-cygmon.exp b/baseboards/usparc-cygmon.exp
new file mode 100644
index 0000000..f827c60
--- /dev/null
+++ b/baseboards/usparc-cygmon.exp
@@ -0,0 +1,48 @@
+load_base_board_description "cygmon";
+
+set_board_info testcase_timeout 30;
+
+proc ${board}_init { dest } {
+ global usparc_init_count;
+ set shell_prompt [board_info $dest shell_prompt];
+
+ if ![info exists usparc_init_count] {
+ set usparc_init_count 0;
+ } else {
+ incr usparc_init_count;
+ if { $usparc_init_count == 3 } {
+ return -1;
+ }
+
+ }
+ remote_close $dest;
+ set shell_id [remote_open $dest];
+ if { $shell_id == "" || $shell_id < 0 } {
+ return [remote_reboot $dest];
+ } else {
+ remote_binary $dest;
+ remote_send $dest "\n";
+ set got_one 0;
+ remote_expect $dest 5 {
+ -re "$shell_prompt" { set got_one 1; exp_continue; }
+ default {
+ if { ! $got_one } {
+ remote_close $dest;
+ return [remote_reboot $dest];
+ }
+ }
+ }
+ remote_send $dest "m \[15\]1fff1001f00 32\n";
+ remote_expect $dest 5 {
+ -re "$shell_prompt" {
+ unset usparc_init_count;
+ remote_close $dest;
+ return 0;
+ }
+ default {
+ remote_close $dest;
+ return [remote_reboot $dest];
+ }
+ }
+ }
+}
diff --git a/baseboards/v850-sim.exp b/baseboards/v850-sim.exp
new file mode 100644
index 0000000..cb7a70a
--- /dev/null
+++ b/baseboards/v850-sim.exp
@@ -0,0 +1,31 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {v850-elf}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# We need this for find_gcc and *_include_flags/*_link_flags.
+load_base_board_description "basic-sim"
+
+# No multilib flags needed for this target.
+process_multilib_options ""
+
+setup_sim v850
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# DDB linker script.
+set_board_info ldscript "";
+
+# The simulator doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+# We can't pass arguments to programs.
+set_board_info noargs 1
+
+# And we don't support signals.
+set_board_info gdb,nosignals 1
diff --git a/baseboards/vr4100-ddb.exp b/baseboards/vr4100-ddb.exp
new file mode 100644
index 0000000..e959a66
--- /dev/null
+++ b/baseboards/vr4100-ddb.exp
@@ -0,0 +1,33 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips64vr4100-elf mips64-elf}
+
+# It's a little-endian board.
+process_multilib_options "-EL -msoft-float"
+
+set_board_info startaddr "a0020000"
+set_board_info hex_startaddr "0xa0020000"
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "vr4100"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# DDB linker script.
+set_board_info ldscript "-Wl,-Tpmon.ld"
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "ddb"
+
+set_board_info reboot_delay 10
+
+# This board is unreliable. If a test times out, the board should be
+# rebooted and the test re-run.
+set_board_info unreliable 1
diff --git a/baseboards/vr4100-sim.exp b/baseboards/vr4100-sim.exp
new file mode 100644
index 0000000..c3b278a
--- /dev/null
+++ b/baseboards/vr4100-sim.exp
@@ -0,0 +1,12 @@
+# DDB linker script.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tddbecoff.ld"
+} else {
+ set_board_info ldscript "-Wl,-Tddb.ld"
+}
+
+# And the simulator doesn't reliably return exit statuses.
+set_board_info needs_status_wrapper 1
+
+# Otherwise, we're a standard MIPS config.
+load_base_board_description "mips64-sim";
diff --git a/baseboards/vr4111-sim.exp b/baseboards/vr4111-sim.exp
new file mode 100644
index 0000000..c3b278a
--- /dev/null
+++ b/baseboards/vr4111-sim.exp
@@ -0,0 +1,12 @@
+# DDB linker script.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tddbecoff.ld"
+} else {
+ set_board_info ldscript "-Wl,-Tddb.ld"
+}
+
+# And the simulator doesn't reliably return exit statuses.
+set_board_info needs_status_wrapper 1
+
+# Otherwise, we're a standard MIPS config.
+load_base_board_description "mips64-sim";
diff --git a/baseboards/vr4300-ddb.exp b/baseboards/vr4300-ddb.exp
new file mode 100644
index 0000000..a25afb8
--- /dev/null
+++ b/baseboards/vr4300-ddb.exp
@@ -0,0 +1,19 @@
+# Danger, Will Robinson! Settings in this file do not override
+# previous settings for the board being defined.
+
+# DDB linker script.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tddbecoff.ld"
+} else {
+ set_board_info ldscript "-Wl,-Tddb.ld"
+}
+
+# This is needed for compiling nullstone.
+set_board_info nullstone,lib "mips-clock.c"
+set_board_info nullstone,ticks_per_sec 3782018
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "ddb"
+
+# Otherwise, we're the same as a generic vr4300 board.
+load_base_board_description "vr4300";
diff --git a/baseboards/vr4300-sim.exp b/baseboards/vr4300-sim.exp
new file mode 100644
index 0000000..c3b278a
--- /dev/null
+++ b/baseboards/vr4300-sim.exp
@@ -0,0 +1,12 @@
+# DDB linker script.
+if { [board_info $board obj_format] == "ecoff" } {
+ set_board_info ldscript "-Wl,-Tddbecoff.ld"
+} else {
+ set_board_info ldscript "-Wl,-Tddb.ld"
+}
+
+# And the simulator doesn't reliably return exit statuses.
+set_board_info needs_status_wrapper 1
+
+# Otherwise, we're a standard MIPS config.
+load_base_board_description "mips64-sim";
diff --git a/baseboards/vr4300.exp b/baseboards/vr4300.exp
new file mode 100644
index 0000000..a89f943
--- /dev/null
+++ b/baseboards/vr4300.exp
@@ -0,0 +1,41 @@
+# Danger, Will Robinson! Settings in this file do not override
+# previous settings for the board being defined.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips64vr4300-elf mips64-elf}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "vr4300"
+
+# It's a little-endian board.
+process_multilib_options "little-endian"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# IDT linker script.
+set_board_info ldscript "-Wl,-Tidt.ld"
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "mips"
+
+# This board is unreliable. If a test times out, the board should be
+# rebooted and the test re-run.
+set_board_info unreliable 1
+
+# Can't pass arguments to the program.
+set_board_info noargs 1
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# We need to clear the floating-point status register before running.
+# This command will be sent after connecting to the board.
+set_board_info gdb_init_command "print/x \$fsr = 0x0"
diff --git a/baseboards/vr5000-ddb.exp b/baseboards/vr5000-ddb.exp
new file mode 100644
index 0000000..8cf4b0f
--- /dev/null
+++ b/baseboards/vr5000-ddb.exp
@@ -0,0 +1,40 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips64vr5000-elf mips64-elf}
+
+# Load the generic configuration for this board. This will define a basic
+# set of routines needed by the tool to communicate with the board.
+load_generic_config "vr5000";
+
+# It's a big-endian board.
+process_multilib_options "big-endian"
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# DDB linker script.
+set_board_info ldscript "-Wl,-Tddb.ld";
+
+# GDB doesn't return exit statuses and we need to indicate this;
+# the standard GCC wrapper will work with this target.
+set_board_info needs_status_wrapper 1;
+
+# The GDB protocol used with this board.
+set_board_info gdb_protocol "ddb";
+
+# This is needed for compiling nullstone.
+set_board_info nullstone,lib "mips-clock.c"
+set_board_info nullstone,ticks_per_sec 3782018
+
+# Sometimes the board gets into a state where it always generates SIGFPE.
+set_board_info unreliable 1
+
+# Can't pass arguments to the program.
+set_board_info noargs 1
+
+# No support for signals.
+set_board_info gdb,nosignals 1
+
+# We need to clear the floating-point status register before running.
+set_board_info gdb_init_command "print/x \$fsr = 0x0"
diff --git a/baseboards/vx4300.exp b/baseboards/vx4300.exp
new file mode 100644
index 0000000..2547b1c
--- /dev/null
+++ b/baseboards/vx4300.exp
@@ -0,0 +1,25 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {mips-vxworks5.3}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "vxworks";
+
+# No multilib flags by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]";
+
+# These are probably wrong.
+set_board_info cflags "-EL";
+# vxworks 5.1 needs the executable to be relinkable.
+set_board_info ldflags "-nostdlib -r";
+set_board_info libs "-lgcc";
+
+# No linker script needed.
+set_board_info ldscript "";
+
+# GDB needs to use "target vxworks" to talk to the board.
+set_board_info gdb_protocol "vxworks";
diff --git a/baseboards/vx68k.exp b/baseboards/vx68k.exp
new file mode 100644
index 0000000..d79f5bd
--- /dev/null
+++ b/baseboards/vx68k.exp
@@ -0,0 +1,25 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m68k-vxworks5.1 m68k-vxworks5.2}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "vxworks";
+
+# No multilib flags by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]";
+
+# These are probably wrong.
+set_board_info cflags "";
+# vxworks 5.1 needs the executable to be relinkable.
+set_board_info ldflags "-nostdlib -r";
+set_board_info libs "-lgcc";
+
+# No linker script needed.
+set_board_info ldscript "";
+
+# GDB needs to use "target vxworks" to talk to the board.
+set_board_info gdb_protocol "vxworks";
diff --git a/baseboards/vx960.exp b/baseboards/vx960.exp
new file mode 100644
index 0000000..e25c79d
--- /dev/null
+++ b/baseboards/vx960.exp
@@ -0,0 +1,29 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {i960-vxworks5.1 i960-vxworks5.2}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "vxworks";
+
+# No multilib flags by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]";
+
+# These are probably wrong, but at least it is configurable now.
+if { [board_info $board cpu] == "I960CA" } {
+ set_board_info cflags "-mca";
+} else {
+ set_board_info cflags "";
+}
+# vxworks 5.1 needs the executable to be relinkable.
+set_board_info ldflags "-nostdlib -r";
+set_board_info libs "-lgcc";
+
+# No linker script needed.
+set_board_info ldscript "";
+
+# GDB needs to use "target vxworks" to talk to the board.
+set_board_info gdb_protocol "vxworks";
diff --git a/baseboards/vxsparc.exp b/baseboards/vxsparc.exp
new file mode 100644
index 0000000..c943e70
--- /dev/null
+++ b/baseboards/vxsparc.exp
@@ -0,0 +1,25 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {sparc-vxworks5.1 sparc-vxworks5.2}
+
+# Load the generic configuration for this board. This will define any
+# routines needed by the tool to communicate with the board.
+load_generic_config "vxworks";
+
+# No multilib flags by default.
+process_multilib_options "";
+
+# The compiler used to build for this board. Note that this has nothing to do
+# with what compiler is tested when testing gcc.
+set_board_info compiler "[find_gcc]";
+
+# These are probably right.
+set_board_info cflags "";
+# vxworks 5.1 needs the executable to be relinkable.
+set_board_info ldflags "-nostdlib -r";
+set_board_info libs "-lgcc";
+
+# No linker script needed.
+set_board_info ldscript "";
+
+# GDB needs to use "target vxworks" to talk to the board.
+set_board_info gdb_protocol "vxworks";
diff --git a/baseboards/x86-cygmon.exp b/baseboards/x86-cygmon.exp
new file mode 100644
index 0000000..45f2422
--- /dev/null
+++ b/baseboards/x86-cygmon.exp
@@ -0,0 +1,11 @@
+load_base_board_description "cygmon";
+
+# Default to ELF.
+if { [board_info $board obj_format] == "a.out" } {
+ set_board_info gdb,start_symbol "_start"
+} elseif { [board_info $board obj_format] == "coff" } {
+ set_board_info gdb,start_symbol "__start"
+} else {
+ set_board_info gdb,start_symbol "__start"
+}
+
diff --git a/baseboards/xscale-cygmon.exp b/baseboards/xscale-cygmon.exp
new file mode 100644
index 0000000..b7c28de
--- /dev/null
+++ b/baseboards/xscale-cygmon.exp
@@ -0,0 +1,37 @@
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {xscale-elf}
+
+# Load the generic configuration for this board. This will define a
+# set of generic routines used by the tool to communicate with the
+# board.
+load_generic_config "cygmon";
+
+# It needs no multilib flags by default.
+process_multilib_options ""
+
+set_board_info compiler "[find_gcc]";
+set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]";
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] [board_info $board addl_link_flags]";
+
+# CygMON linker script.
+
+if {[string compare [board_info $board boardtype] "xaret"] == 0} {
+ set_board_info ldscript "-specs=xaret.specs"
+} elseif {[string compare [board_info $board boardtype] "iq80310"] == 0} {
+ set_board_info ldscript "-specs=iq80310.specs"
+}
+
+# Standard remote protocol.
+set_board_info gdb_protocol "remote";
+# We can't do input in GDB (yet! HA!). It *will* do output, hurrah.
+set_board_info gdb,noinferiorio 1;
+# Or pass arguments.
+set_board_info gdb,noargs 1;
+set_board_info noargs 1;
+# Or do signals.
+set_board_info gdb,nosignals 1;
+
+set_board_info shell_prompt "cygmon>"
+
+set_board_info use_gdb_stub 1;
+set_board_info use_cygmon 1