Subversion Repositories HelenOS

Rev

Rev 3770 | Rev 3798 | 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
89
	DEFS += -DUS
3365 rimsky 90
endif
91
 
92
ifeq ($(MACHINE),us3)
3743 rimsky 93
	USARCH = sun4u
3365 rimsky 94
	DEFS += -DUS3
95
endif
96
 
3743 rimsky 97
ifeq ($(MACHINE),sun4v)
98
	USARCH = sun4v
99
	DEFS += -DSUN4V
100
	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
101
endif
102
 
103
 
3770 rimsky 104
# sources which exist in two versions - one for sun4u and one for sun4v
455 decky 105
ARCH_SOURCES = \
3743 rimsky 106
	arch/$(ARCH)/src/$(USARCH)/start.S \
107
	arch/$(ARCH)/src/trap/$(USARCH)/trap_table.S \
108
	arch/$(ARCH)/src/$(USARCH)/asm.S \
3770 rimsky 109
	arch/$(ARCH)/src/$(USARCH)/sparc64.c \
110
	arch/$(ARCH)/src/mm/$(USARCH)/tlb.c \
111
	arch/$(ARCH)/src/cpu/$(USARCH)/cpu.c
3743 rimsky 112
 
3770 rimsky 113
# specific to machine type
114
 
3743 rimsky 115
# sun4u-specific, not #ifdef'd yet in order to make the code compilable
116
ARCH_SOURCES += \
465 jermar 117
	arch/$(ARCH)/src/asm.S \
646 jermar 118
	arch/$(ARCH)/src/panic.S \
465 jermar 119
	arch/$(ARCH)/src/console.c \
120
	arch/$(ARCH)/src/context.S \
1882 jermar 121
	arch/$(ARCH)/src/fpu_context.c \
467 jermar 122
	arch/$(ARCH)/src/dummy.s \
756 jermar 123
	arch/$(ARCH)/src/mm/as.c \
2141 jermar 124
	arch/$(ARCH)/src/mm/cache.S \
465 jermar 125
	arch/$(ARCH)/src/mm/frame.c \
126
	arch/$(ARCH)/src/mm/page.c \
897 jermar 127
	arch/$(ARCH)/src/proc/scheduler.c \
1854 jermar 128
	arch/$(ARCH)/src/proc/thread.c \
1865 jermar 129
	arch/$(ARCH)/src/trap/mmu.S \
663 jermar 130
	arch/$(ARCH)/src/trap/trap.c \
667 jermar 131
	arch/$(ARCH)/src/trap/exception.c \
664 jermar 132
	arch/$(ARCH)/src/trap/interrupt.c \
1191 jermar 133
	arch/$(ARCH)/src/ddi/ddi.c \
1410 jermar 134
	arch/$(ARCH)/src/drivers/tick.c \
1897 jermar 135
	arch/$(ARCH)/src/drivers/kbd.c \
1911 jermar 136
	arch/$(ARCH)/src/drivers/scr.c \
3502 rimsky 137
	arch/$(ARCH)/src/drivers/sgcn.c \
3607 rimsky 138
	arch/$(ARCH)/src/drivers/pci.c
1849 jermar 139
 
3743 rimsky 140
# sun4v-specific sources
141
ifeq ($(USARCH),sun4v)
142
ARCH_SOURCES += \
3783 rimsky 143
	arch/$(ARCH)/src/drivers/niagara.c \
144
	arch/$(ARCH)/src/sun4v/md.c
3743 rimsky 145
endif
3467 rimsky 146
 
1903 jermar 147
ifeq ($(CONFIG_SMP),y)
148
ARCH_SOURCES += \
149
	arch/$(ARCH)/src/smp/ipi.c \
3770 rimsky 150
	arch/$(ARCH)/src/smp/$(USARCH)/smp.c
1903 jermar 151
endif
152
 
1891 jermar 153
ifeq ($(CONFIG_TSB),y)
1889 jermar 154
ARCH_SOURCES += \
155
	arch/$(ARCH)/src/mm/tsb.c
156
endif
157
 
1849 jermar 158
ifdef CONFIG_Z8530
159
ARCH_SOURCES += \
160
	arch/$(ARCH)/src/drivers/fhc.c
161
endif