1
#############################################################################
2
# Makefile for building OSE (without Erlang)
3
#############################################################################
5
#############################################################################
7
#############################################################################
9
# Main (Ethernet) IP address and default gateway.
12
IP_ADDRESS = 134.138.176.239
15
ETH_ADDR = 0x00,0x80,0x42,0x0e,0xeb,0xc5
17
#ETH_ADDR = 0x00,0x80,0x42,0x0e,0xeb,0xc6
19
ETH_IP_ADDR = $(IP_ADDRESS)
20
ETH_SUBNETMASK = 255.255.252.0
21
DEFAULT_GATEWAY = 134.138.176.1
25
TARGET = ose_ppc$(KRN)
27
#############################################################################
29
#############################################################################
31
OSEROOT = /usr/local/share/pgm/ose-4.4
32
DIABROOT = /usr/local/share/pgm/diab-4.3f
33
PLATFORMROOT = $(OSEROOT)/powerpc
34
PLATFORMSRC = $(PLATFORMROOT)/src
35
PLATFORMLIB = $(PLATFORMROOT)/lib
36
KRNROOT = $(PLATFORMROOT)/krn-$(KRN)
37
KRNSRC = $(KRNROOT)/src
38
KRNLIB = $(KRNROOT)/lib
39
HOSTROOT = $(OSEROOT)/solaris2
41
EXAMPLES = $(OSEROOT)/examples
42
EXAMPLES_COMMON = $(OSEROOT)/examples/common
43
EXAMPLES_COMMON_INCLUDE = $(EXAMPLES_COMMON)/include
44
EXAMPLES_COMMON_SRC = $(EXAMPLES_COMMON)/src
45
EXAMPLES_LNH_SRC = $(EXAMPLES)/lnh/src
47
RELDIR = /tmp/erl_ose_release
48
BUILD_DIR = $(RELDIR)/build_erl_ose
52
MAKEROOT = $(BUILD_DIR)/lm
53
MAKE_OSE_ROOT = $(MAKEROOT)/ose
54
OBJDIR = $(MAKE_OSE_ROOT)/obj
55
ERL_UTILS_SRC = $(BUILD_DIR)/erl_utils
57
#############################################################################
59
#############################################################################
66
#############################################################################
68
#############################################################################
70
BSPROOT = $(PLATFORMROOT)/bsp-powercore680
71
BSPSRC = $(BSPROOT)/src
72
BSPINC = $(BSPROOT)/include
73
BSPCONF = $(BSPROOT)/conf
74
BSPDBG = $(BSPSRC)/debug
76
# Board support package.
77
BSP = FORCE_POWERCORE680-G3
79
OBJECTS += $(OBJDIR)/board.o $(OBJDIR)/mpc107.o $(OBJDIR)/sentinel.o \
80
$(OBJDIR)/ppc_cache.o $(OBJDIR)/pci.o
81
OBJECTS += $(OBJDIR)/PCI_devices.o $(OBJDIR)/w83c553.o \
82
$(OBJDIR)/pcore_asm.o $(OBJDIR)/nvram.o
84
BSPDEFINE += -DBSP_CACHE
85
BSPDEFINE += -DFORCE_POWERCORE680
86
INCLUDES += -I$(BSPINC) -I$(BSPSRC) -I$(BSPCONF)
88
LCFSRC = $(EXAMPLES_COMMON)/conf/diab_monolith.lcf
89
LCF = $(OBJDIR)/powercore680.lcf
91
# BSPDEFINE += -DTPRINTF_ENABLE -DERR_PRINTF_ENABLE -DTPRINTF_LVL=4
92
# OBJECTS += $(OBJDIR)/tprintf.o
94
# The internal decrementer for the 75X runs at 1/4
95
# the board frequency. INTERNAL_TIMER value is loaded
96
# to decrementer for calculated timer exception of 1msec.
98
# (ie) 100Mhz board speed --> 25Mhz decrementer frequency
100
# For calculated 1msec , INTERNAL_TIMER = 25000
102
# NOTE: Actual system time exception is derived by
103
# INTERNAL_TIMER*SYSTEM_TIMER(4 typ.) for actual 4ms
106
INTERNAL_TIMER = 24750 # Bus Clock 100Mhz (99 act.) PCORE-680
108
BSPDEFINE += -DBSP_INTERNAL_TIMER=$(INTERNAL_TIMER)
111
BSPDEFINE += -DETHUNIT=0
112
BSPDEFINE += -DETHNAME=\"i82559_0\"
113
BSPDEFINE += -DI82559_UNIT0
114
BSPDEFINE += -DBSP_ETHERNET_ADDRESS=$(ETH_ADDR)
115
BSPDEFINE += -DETH_IP_ADDRESS=\"$(ETH_IP_ADDR)\"
116
BSPDEFINE += -DBSP_ETHERNET
117
OBJECTS += $(OBJDIR)/i82559.o
120
OBJECTS += $(OBJDIR)/ud16550.o
121
OSEDEF_H_DEFINES += -DBSP_SERIAL
122
OSEDEF_H_DEFINES += -DUD16550_UNIT0
123
OSEDEF_H_DEFINES += -DUD16550_UNIT1
126
COM1_NAME =\"UD16550\"
127
COM2_NAME =\"UD16550\"
130
#OBJECTS += $(OBJDIR)/init_flash.o
131
#BSPDEFINE += -DFLASH_START=0xff000000
132
#BSPDEFINE += -DBSP_FLASH
133
#OBJECTS += $(OBJDIR)/amd_flash.o
134
#BSPDEFINE += -DFLASH_END=0xffffffff
135
#BSPDEFINE += -DFLASH_DRIVER_NAME=\"amd_29f032B\"
136
#BSPDEFINE += -DFLASH_DRIVER_BIOS_ENTRY=amd_29F0XXB_biosentry
137
#OSEDEF_H_DEFINES += -DFLASH_ENABLED
141
# we don't necessarily need to compile ramdisk.c (already part of libefs.a)
142
# OBJECTS += $(OBJDIR)/ramdisk.o
144
BSPDEFINE += -DUSE_RAMDISK
145
#BSPDEFINE += -DRAMDISK_STATIC
146
BSPDEFINE += -DRAMDISK_SIZE=65536
147
#BSPDEFINE += -DRAMDISK_SIZE=32768
148
#BSPDEFINE += -DRAMDISK_TRAPINT
150
#############################################################################
152
#############################################################################
153
# DIAB compiler, assembler, and linker.
154
DIABBIN = $(DIABROOT)/SUNS/bin
155
OSEDIABLIB = $(OSEROOT)/powerpc/lib/diab
156
OSEDIABSRC = $(OSEROOT)/powerpc/src/diab
158
#COMPTARGET = -tPPC750EH:ose
160
COMPTARGET = -tPPC750ES:ose
162
#COMPTARGET = -tPPC750EN:ose
163
#COMPTARGET = -tPPC750EN:rtasim
166
ASM = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) das
167
ASMFLAGS = -Xmnem-all $(COMPTARGET)
168
ASMOUT = -o $@ # name of the output file
171
CPP = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -E
172
CPPTOFILE = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -P
173
CPPFLAGS += $(COMPTARGET)
176
CC = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dcc -c
178
FLAGS += $(COMPTARGET)
179
#FLAGS += -XO -Xkill-opt=0x2000080
183
FLAGS += -Xdebug-struct-all -Xforce-declarations \
184
-Xforce-prototypes -Xsmall-const=0 -Xstrings-in-text \
188
CCOUT = -o $@ # name of the output-file
191
LD = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) dld
192
# LDFLAGS += -d2 -m6 $(COMPTARGET) $(LCF)
193
LDFLAGS += -m6 $(COMPTARGET) $(LCF)
196
LCFDEFINES += -DPOWERPC -DIMAGE_START=0x00400000 -DIMAGE_MAX_LENGTH=32768000
198
LDOUT = -o $@ # name of the output-file
200
# ELF to SREC converter
201
ELF2SREC = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) ddump -R -v
202
ELF2SRECFLAGS += -y1000000 # maximum gap-size permitted
205
# ELF to binary converter
206
ELF2BIN = DIABLIB=$(DIABROOT) PATH=$(DIABBIN) ddump -R -u
207
ELF2BINFLAGS += -y1000000 # maximum gap-size permitted
212
#LIBDIRS += -L$(OSEDIABLIB)/PPC/ose
213
#LIBDIRS += -L$(OSEDIABLIB)/PPCE/ose
215
#LIBDIRS += -L$(OSEDIABLIB)/PPCEN/ose
217
#LIBDIRS += -L$(OSEDIABLIB)/PPCEH/ose
219
LIBDIRS += -L$(OSEDIABLIB)/PPCES/ose
221
INCLUDES += -I$(OSEROOT)/powerpc/include/diab
227
#############################################################################
229
#############################################################################
231
OBJECTS += $(OBJDIR)/dbgprintf.o
234
OSEDEF_H_DEFINES += -DDBGPRINTF_SERUNIT=$(COM1_UNIT)
235
OSEDEF_H_DEFINES += -DDBGPRINTF_SERNAME=$(COM1_NAME)
236
OBJECTS += $(OBJDIR)/serprintf.o
238
#DBGPRINTF_UDPPORT = 7777
241
#OSEDEF_H_DEFINES += -DUDPPORT=$(DBGPRINTF_UDPPORT)
242
#OSEDEF_H_DEFINES += -DETH_ADDR=$(ETH_ADDR)
243
#OBJECTS += $(OBJDIR)/ethprintf.o
246
#OSEDEF_H_DEFINES += -DUDPPRINTF_PORT=$(DBGPRINTF_UDPPORT)
247
#OBJECTS += $(OBJDIR)/udpprintf.o
249
OSEDEF_H_DEFINES += -DUSE_DEBUG_PRINTF
251
#############################################################################
253
#############################################################################
255
OSEDEF_H_DEFINES += -DINFMT_FLOATING_POINT
256
OBJECTS += $(OBJDIR)/infmt.o
257
OBJECTS += $(OBJDIR)/outfmt.o
259
CRT = $(OSEDIABLIB)/PPCE/ose/crt0.o
261
#############################################################################
263
#############################################################################
265
LIBRARIES += -ldbgserver
267
#############################################################################
269
#############################################################################
271
SIGFILES += $(PLATFORMROOT)/include/ddb.sig
272
SIGFILES += $(PLATFORMROOT)/include/ddc.sig
273
SIGFILES += $(PLATFORMROOT)/include/efs.sig
274
SIGFILES += $(PLATFORMROOT)/include/fm.sig
276
OBJECTS += $(OBJDIR)/startefs.o
278
#############################################################################
280
#############################################################################
282
SIGFILES += $(PLATFORMROOT)/include/heap.sig
283
OBJECTS += $(OBJDIR)/heapcon.o
286
#############################################################################
288
#############################################################################
290
OSEDEF_H_DEFINES += -DDEFAULT_GATEWAY=\"$(DEFAULT_GATEWAY)\" \
291
-DETH_SUBNETMASK=\"$(ETH_SUBNETMASK)\"
292
SIGFILES += $(PLATFORMROOT)/include/inet.sig
293
SIGFILES += $(PLATFORMROOT)/include/inetmib.sig
294
SIGFILES += $(PLATFORMROOT)/include/inetlink.sig
295
OBJECTS += $(OBJDIR)/startinet.o $(OBJDIR)/udppdr.o
296
LIBRARIES += -linett -linetutil
299
DEFINES += -DUSEINET -DUDPPDR -DMASTER
300
OBJECTS += $(OBJDIR)/startlnh.o
301
SIGFILES += $(PLATFORMROOT)/include/udppdr.sig
302
OSEDEF_H_DEFINES += -DLNH_ETH_INTERFACE_NAME=\"hme0\"
305
#############################################################################
307
#############################################################################
309
INCLUDES += -I$(KRNROOT)/include
310
DEFINES += -DOSE_DELTA -D_OSE_
311
DEFINES += -DBIG_ENDIAN
312
OBJECTS += $(OBJDIR)/osemain.o
313
OBJECTS += $(OBJDIR)/osppcon.o
314
LIBDIRS += -L$(KRNROOT)/lib
315
LIBRARIES += -lkrnflib
317
# LIBRARIES += -lkrn0xxx
319
LIBRARIES += -lkrn1xxx
321
#############################################################################
323
#############################################################################
326
# OBJECTS += $(OBJDIR)/lmcon.o
327
OBJECTS += $(OBJDIR)/start_prh.o $(OBJDIR)/prhfuncs.o
330
#############################################################################
332
#############################################################################
334
OBJECTS += $(OBJDIR)/mmhcon.o
337
#############################################################################
339
#############################################################################
341
LIBRARIES += -losepthread
343
#############################################################################
345
#############################################################################
347
SIGFILES += $(PLATFORMROOT)/include/rtc.sig
350
#############################################################################
352
#############################################################################
354
OSEDEF_H_DEFINES += -DSHELL_SERUNIT=$(COM2_UNIT)
355
OSEDEF_H_DEFINES += -DSHELL_SERNAME=$(COM2_NAME)
356
SIGFILES += $(PLATFORMROOT)/include/fss.sig
357
SIGFILES += $(PLATFORMROOT)/include/login.sig
360
OBJECTS += $(OBJDIR)/startshell.o
362
#############################################################################
364
#############################################################################
368
#############################################################################
370
#############################################################################
374
#############################################################################
376
#############################################################################
378
#############################################################################
380
#############################################################################
382
OBJECTS += $(OBJDIR)/erl_ose_init.o
383
DEFINES += -DUSE_MY_TIME_SRV
385
#############################################################################
387
#############################################################################
389
STDINCLUDES = -I$(PLATFORMROOT)/std-include
391
INCLS = -I. -I$(MAKEROOT) -I$(MAKE_OSE_ROOT) -I$(PLATFORMROOT)/include \
392
$(STDINCLUDES) $(INCLUDES) \
393
-I$(EXAMPLES_COMMON_INCLUDE) $(BSPINC) $(SIGFILES)
395
DEFS = $(DEFINES) $(BSPDEFINE) $(OSEDEF_H_DEFINES) $(LCFDEFINES)
399
LIBS = -L$(PLATFORMLIB) $(LIBRARIES)
401
OBJS = $(OBJDIR)/err_hnd.o $(OBJECTS) $(TEST_OBJS)
403
#############################################################################
405
#############################################################################
406
# This section contains the default tag evaluated by make if no command line
407
# parameters are entered.
409
$(ECHO) "Available make targets are:"
410
$(ECHO) "clean - delete the directory $(OBJDIR) and all its files."
411
$(ECHO) "ose - compile OSE kernel system."
415
#############################################################################
417
#############################################################################
418
# Generic compile directives.
421
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
423
$(OBJDIR)/%.o: $(MAKEROOT)/%.c
424
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
426
$(OBJDIR)/%.o: $(SRCDIR)/%.c
427
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
429
$(OBJDIR)/%.o: $(TARGETROOT)/src/%.c
430
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
432
$(OBJDIR)/%.o: $(BSPSRC)/%.c
433
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
435
$(OBJDIR)/%.o: $(BSPDBG)/%.c
436
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
438
$(OBJDIR)/%.o: $(KRNSRC)/%.c
439
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
441
$(OBJDIR)/%.o: $(OBJDIR)/%.c
442
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
444
$(OBJDIR)/%.o: $(PLATFORMSRC)/%.c
445
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
447
$(OBJDIR)/%.o: $(OSEDIABSRC)/%.c
448
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
450
$(OBJDIR)/%.o: $(EXAMPLES_COMMON_SRC)/%.c
451
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
453
$(OBJDIR)/%.o: $(EXAMPLES_LNH_SRC)/%.c
454
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
456
$(OBJDIR)/osemain.o: $(KRNSRC)/osemain.c osemain.con
457
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
459
$(OBJDIR)/osppcon.o: $(KRNSRC)/osppcon.c ospp.con
460
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
462
$(OBJDIR)/pmdcon.o: $(PLATFORMSRC)/pmdcon.c pmd.con
463
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
465
# Generic assembly directives.
466
$(OBJDIR)/%.o: $(KRNSRC)/%.s
467
$(ASM) $(ASMFLAGS) $(CCOUT) $<
469
$(OBJDIR)/%.o: $(BSPSRC)/%.s
470
$(ASM) $(ASMFLAGS) $(CCOUT) $<
472
$(OBJDIR)/%.o: $(TARGETROOT)/lib/%.s
473
$(ASM) $(ASMFLAGS) $(CCOUT) $<
476
#############################################################################
478
#############################################################################
480
$(OBJDIR)/erl_ose_init.o: $(ERL_UTILS_SRC)/erl_ose_init.c
481
$(CC) $(CFLAGS) $(DEFS) $(INCLS) $(CCOUT) $<
483
#############################################################################
484
# LINKING AND GENERATING BINARY
485
#############################################################################
487
$(OBJDIR)/$(TARGET).elf: $(OBJS) $(LCF)
488
$(LD) $(LDFLAGS) -o $@ $(CRT) $(OBJS) $(LIBDIRS) $(LIBS) \
489
> $(OBJDIR)/$(TARGET).map
491
$(OBJDIR)/$(TARGET).bin: $(OBJDIR)/$(TARGET).elf
492
$(ELF2BIN) $(ELF2BINOUT) $(ELF2BINFLAGS) $(OBJDIR)/$(TARGET).elf
496
$(CPPTOFILE) $(CPPFLAGS) $(LCFDEFINES) $(LCFSRC) -o $@
498
ose: $(LCF) $(OBJDIR)/$(TARGET).bin
500
$(ECHO) " OSE BUILT: " $(OBJDIR)/$(TARGET).bin
506
#############################################################################
508
#############################################################################
509
# This section deletes the $(OBJDIR) directory and all its files.
515
$(RM) $(OBJDIR)/$(ERL_TARGET).elf $(OBJDIR)/$(ERL_TARGET).bin
518
#############################################################################
520
#############################################################################