Subversion Repositories HelenOS

Rev

Rev 4129 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
455 decky 1
#
2071 jermar 2
# Copyright (c) 2005 Martin Decky
455 decky 3
# All rights reserved.
4
#
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions
7
# are met:
8
#
9
# - Redistributions of source code must retain the above copyright
10
#   notice, this list of conditions and the following disclaimer.
11
# - Redistributions in binary form must reproduce the above copyright
12
#   notice, this list of conditions and the following disclaimer in the
13
#   documentation and/or other materials provided with the distribution.
14
# - The name of the author may not be used to endorse or promote products
15
#   derived from this software without specific prior written permission.
16
#
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#
418 jermar 28
 
455 decky 29
## Toolchain configuration
30
#
418 jermar 31
 
3397 rimsky 32
ifndef CROSS_PREFIX
33
	CROSS_PREFIX = /usr/local
34
endif
35
 
455 decky 36
BFD_NAME = elf64-sparc
37
BFD_ARCH = sparc
1777 jermar 38
BFD = binary
455 decky 39
TARGET = sparc64-linux-gnu
3397 rimsky 40
TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64
418 jermar 41
 
2460 jermar 42
GCC_CFLAGS += -m64 -mcpu=ultrasparc 
2462 jermar 43
SUNCC_CFLAGS += -m64 -xarch=sparc -xregs=appl,no%float
2460 jermar 44
 
455 decky 45
LFLAGS += -no-check-sections -N
418 jermar 46
 
938 jermar 47
DEFS += -D__64_BITS__
48
 
455 decky 49
## Own configuration directives
50
#
424 jermar 51
 
684 jermar 52
## Compile with page hash table support.
53
#
54
 
55
CONFIG_PAGE_HT = y
1106 jermar 56
DEFS += -DCONFIG_PAGE_HT
684 jermar 57
 
727 jermar 58
## Compile with support for address space identifiers.
59
#
60
 
61
CONFIG_ASID = y
730 jermar 62
CONFIG_ASID_FIFO = y
727 jermar 63
 
895 jermar 64
## Compile with support for framebuffer.
65
#
66
 
883 jermar 67
CONFIG_FB = y
68
 
1896 jermar 69
## Compile with support for Sun keyboard.
70
#
71
 
72
CONFIG_SUN_KBD = y
73
 
1895 jermar 74
## Compile with support for OpenFirmware device tree.
75
#
895 jermar 76
 
1895 jermar 77
CONFIG_OFW_TREE = y
78
 
1903 jermar 79
ifeq ($(CONFIG_SMP),y)
80
	DEFS += -DCONFIG_SMP
81
endif
82
 
3549 rimsky 83
ifeq ($(CONFIG_SGCN),y)
84
        DEFS += -DCONFIG_SGCN
85
endif
86
 
3398 rimsky 87
ifeq ($(MACHINE),us)
3743 rimsky 88
	USARCH = sun4u
3798 rimsky 89
	DEFS += -DSUN4U
3743 rimsky 90
	DEFS += -DUS
3365 rimsky 91
endif
92
 
93
ifeq ($(MACHINE),us3)
3743 rimsky 94
	USARCH = sun4u
3798 rimsky 95
	DEFS += -DSUN4U
3365 rimsky 96
	DEFS += -DUS3
97
endif
98
 
3743 rimsky 99
ifeq ($(MACHINE),sun4v)
100
	USARCH = sun4v
101
	DEFS += -DSUN4V
102
	DEFS += -DUS3 # TODO: do not forget to remove this line, it is here only to make the code compilable even when the sun4v port is not fully implemented yet
103
endif
104
 
105
 
3770 rimsky 106
# sources which exist in two versions - one for sun4u and one for sun4v
455 decky 107
ARCH_SOURCES = \
3743 rimsky 108
	arch/$(ARCH)/src/$(USARCH)/start.S \
109
	arch/$(ARCH)/src/trap/$(USARCH)/trap_table.S \
110
	arch/$(ARCH)/src/$(USARCH)/asm.S \
3770 rimsky 111
	arch/$(ARCH)/src/$(USARCH)/sparc64.c \
4130 rimsky 112
	arch/$(ARCH)/src/$(USARCH)/console.c \
3770 rimsky 113
	arch/$(ARCH)/src/mm/$(USARCH)/tlb.c \
3817 rimsky 114
	arch/$(ARCH)/src/mm/$(USARCH)/as.c \
3835 rimsky 115
	arch/$(ARCH)/src/cpu/$(USARCH)/cpu.c \
3993 rimsky 116
	arch/$(ARCH)/src/proc/$(USARCH)/scheduler.c 
3743 rimsky 117
 
3862 rimsky 118
ifeq ($(CONFIG_TSB),y)
119
ARCH_SOURCES += \
120
	arch/$(ARCH)/src/mm/$(USARCH)/tsb.c
121
endif
122
 
3770 rimsky 123
# specific to machine type
124
 
4130 rimsky 125
ifeq ($(USARCH),sun4u)
126
ARCH_SOURCES += \
127
	arch/$(ARCH)/src/mm/sun4u/cache.S
128
endif
129
 
3743 rimsky 130
# sun4u-specific, not #ifdef'd yet in order to make the code compilable
131
ARCH_SOURCES += \
465 jermar 132
	arch/$(ARCH)/src/asm.S \
646 jermar 133
	arch/$(ARCH)/src/panic.S \
465 jermar 134
	arch/$(ARCH)/src/console.c \
135
	arch/$(ARCH)/src/context.S \
1882 jermar 136
	arch/$(ARCH)/src/fpu_context.c \
467 jermar 137
	arch/$(ARCH)/src/dummy.s \
465 jermar 138
	arch/$(ARCH)/src/mm/frame.c \
139
	arch/$(ARCH)/src/mm/page.c \
1854 jermar 140
	arch/$(ARCH)/src/proc/thread.c \
663 jermar 141
	arch/$(ARCH)/src/trap/trap.c \
667 jermar 142
	arch/$(ARCH)/src/trap/exception.c \
664 jermar 143
	arch/$(ARCH)/src/trap/interrupt.c \
1191 jermar 144
	arch/$(ARCH)/src/ddi/ddi.c \
1410 jermar 145
	arch/$(ARCH)/src/drivers/tick.c \
1897 jermar 146
	arch/$(ARCH)/src/drivers/kbd.c \
1911 jermar 147
	arch/$(ARCH)/src/drivers/scr.c \
3502 rimsky 148
	arch/$(ARCH)/src/drivers/sgcn.c \
4130 rimsky 149
	arch/$(ARCH)/src/sparc64.c \
3607 rimsky 150
	arch/$(ARCH)/src/drivers/pci.c
1849 jermar 151
 
3743 rimsky 152
# sun4v-specific sources
153
ifeq ($(USARCH),sun4v)
154
ARCH_SOURCES += \
3783 rimsky 155
	arch/$(ARCH)/src/drivers/niagara.c \
3835 rimsky 156
	arch/$(ARCH)/src/sun4v/md.c \
157
	arch/$(ARCH)/src/trap/sun4v/mmu.S
3743 rimsky 158
endif
3467 rimsky 159
 
1903 jermar 160
ifeq ($(CONFIG_SMP),y)
161
ARCH_SOURCES += \
162
	arch/$(ARCH)/src/smp/ipi.c \
3770 rimsky 163
	arch/$(ARCH)/src/smp/$(USARCH)/smp.c
1903 jermar 164
endif
165
 
1889 jermar 166
 
1849 jermar 167
ifdef CONFIG_Z8530
168
ARCH_SOURCES += \
169
	arch/$(ARCH)/src/drivers/fhc.c
170
endif