2 # Makefile for Broadcom BCM947XX boards
4 # Copyright 2001-2003, Broadcom Corporation
7 # THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8 # KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9 # SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10 # FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
12 # Copyright 2004 Manuel Novoa III <mjn3@codepoet.org>
13 # Modified to support bzip'd kernels.
14 # Of course, it would be better to integrate bunzip capability into CFE.
16 # Copyright 2005 Oleg I. Vdovikin <oleg@cs.msu.su>
17 # Cleaned up, modified for lzma support, removed from kernel
19 # Copyright 2007 Gabor Juhos <juhosg at openwrt.org>
20 # Modified to support user defined entry point address.
21 # Added support for make targets with different names
24 LOADADDR
:= 0x80001000
25 LZMA_TEXT_START
:= 0x80500000
31 CC
:= $(CROSS_COMPILE
)gcc
32 LD
:= $(CROSS_COMPILE
)ld
33 OBJCOPY
:= $(CROSS_COMPILE
)objcopy
34 OBJDUMP
:= $(CROSS_COMPILE
)objdump
36 BIN_FLAGS
:= -O binary
-R .reginfo
-R .note
-R .comment
-R .mdebug
-S
38 CFLAGS
= -D__KERNEL__
-Wall
-Wstrict-prototypes
-Wno-trigraphs
-Os \
39 -fno-strict-aliasing
-fno-common
-fomit-frame-pointer
-G
0 -mno-abicalls
-fno-pic \
40 -ffunction-sections
-pipe
-mlong-calls
-fno-common
-ffreestanding \
42 -mabi
=32 -march
=mips32
-Wa
,-32 -Wa
,-march
=mips32
-Wa
,-mips32
-Wa
,--trap
43 CFLAGS
+= -DLOADADDR
=$(LOADADDR
) -D_LZMA_PROB32
45 ASFLAGS
= $(CFLAGS
) -D__ASSEMBLY__
-DLZMA_STARTUP_ORG
=$(LZMA_STARTUP_ORG
)
47 LDFLAGS
= -static
--gc-sections
-no-warn-mismatch
48 LDFLAGS
+= -e startup
-T loader.lds
-Ttext
$(LZMA_TEXT_START
)
50 O_FORMAT
= $(shell $(OBJDUMP
) -i | head
-2 | grep elf32
)
52 OBJECTS
:= head.o decompress.o board.o printf.o LzmaDecode.o
54 ifneq ($(strip $(LOADER_DATA
)),)
56 CFLAGS
+= -DLZMA_WRAPPER
=1
58 CFLAGS
+= -D_LZMA_IN_CB
61 ifneq ($(strip $(CONFIG_PASS_KARGS
)),)
62 CFLAGS
+= -DCONFIG_PASS_KARGS
65 BOARD_DEF
:= $(strip $(CONFIG_BOARD
))
66 BOARD_DEF
:= $(shell echo
$(BOARD_DEF
) | tr a-z A-Z | tr
-d
-)
68 CFLAGS
+= -DCONFIG_BOARD_
$(BOARD_DEF
)
73 # Don't build dependencies, this may die if $(CC) isn't gcc
79 $(CC
) $(CFLAGS
) -c
-o
$@
$<
82 $(CC
) $(ASFLAGS
) -c
-o
$@
$<
84 data.o
: $(LOADER_DATA
)
85 $(LD
) -r
-b binary
--oformat
$(O_FORMAT
) -T lzma-data.lds
-o
$@
$<
87 loader.bin
: loader.elf
88 $(OBJCOPY
) $(BIN_FLAGS
) $< $@
90 loader.elf
: $(OBJECTS
)
91 $(LD
) $(LDFLAGS
) -o
$@
$(OBJECTS
)