aboutsummaryrefslogtreecommitdiff
path: root/baseboards/rom68k-idp.exp
blob: 4f0d1adffd2e86bc82696d1d7ae20ebcbf1d04b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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;