aboutsummaryrefslogtreecommitdiff
path: root/baseboards/cf.exp
diff options
context:
space:
mode:
Diffstat (limited to 'baseboards/cf.exp')
-rw-r--r--baseboards/cf.exp73
1 files changed, 73 insertions, 0 deletions
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;