# 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;
