2 # Copyright (C) 2006 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
8 include $(INCLUDE_DIR
)/image.mk
10 PKG_BUILD_DIR
:=$(BUILD_DIR
)/ar7loader
12 LOADADDR
:= 0x94020000
13 OUTPUT_FORMAT
:= elf32-tradlittlemips
15 CFLAGS
:= -D__KERNEL__
-Wall
-Wstrict-prototypes
-Wno-trigraphs
-Os \
16 -fno-strict-aliasing
-fno-common
-fomit-frame-pointer
-G
0 -mno-abicalls
-fno-pic \
17 -pipe
-mlong-calls
-fno-common \
18 -mabi
=32 -march
=mips32
-Wa
,-32 -Wa
,-march
=mips32
-Wa
,-mips32
-Wa
,--trap \
19 -DLOADADDR
=$(LOADADDR
)
21 $(PKG_BUILD_DIR
)/cksum.o
: $(PKG_BUILD_DIR
)/cksum.c
24 $(PKG_BUILD_DIR
)/ckmain.o
: $(PKG_BUILD_DIR
)/ckmain.c
27 $(PKG_BUILD_DIR
)/tichksum
: $(PKG_BUILD_DIR
)/ckmain.o
$(PKG_BUILD_DIR
)/cksum.o
30 $(PKG_BUILD_DIR
)/LzmaDecode.o
: src
/LzmaDecode.c
31 $(TARGET_CC
) $(CFLAGS
) -c
-o
$@
$<
33 $(PKG_BUILD_DIR
)/loader.o
: src
/loader.c
34 $(TARGET_CC
) $(CFLAGS
) -c
-o
$@
$<
36 $(STAGING_DIR
)/bin
/srec2bin
: src
/srec2bin.c
41 mkdir
-p
$(PKG_BUILD_DIR
)
42 sed
-e
's/@@OUTPUT_FORMAT@@/$(OUTPUT_FORMAT)/' \
43 -e
's/@@LOADADDR@@/$(LOADADDR)/' \
44 < src
/zimage.script.in \
45 > $(PKG_BUILD_DIR
)/zimage.script
46 sed
-e
's/@@OUTPUT_FORMAT@@/$(OUTPUT_FORMAT)/' \
47 -e
's/@@LOADADDR@@/$(LOADADDR)/' \
49 > $(PKG_BUILD_DIR
)/ld.script
50 $(MAKE
) $(PKG_BUILD_DIR
)/loader.o
$(PKG_BUILD_DIR
)/LzmaDecode.o
$(STAGING_DIR
)/bin
/srec2bin
54 rm -rf
$(PKG_BUILD_DIR
)
58 cat
$(KDIR
)/vmlinux |
$(STAGING_DIR
)/bin
/lzma e
-si
-so
-eos
-lc1
-lp2
-pb2
> $(KDIR
)/vmlinux.lzma
59 $(TARGET_CROSS
)ld -T
$(PKG_BUILD_DIR
)/zimage.script
-r
-b binary
$(KDIR
)/vmlinux.lzma
-o
$(KDIR
)/zimage.o
60 $(TARGET_CROSS
)ld -static
-G
0 --defsym kernel_entry
=0x
$${shell nm
$(KDIR
)/linux-
*/vmlinux | grep kernel_entry | cut
-d
' ' -f1
} -T
$(PKG_BUILD_DIR
)/ld.script \
61 $(PKG_BUILD_DIR
)/loader.o \
62 $(PKG_BUILD_DIR
)/LzmaDecode.o \
65 $(TARGET_CROSS
)objcopy
-O srec
$(KDIR
)/loader
$(KDIR
)/ram_zimage.sre
66 $(STAGING_DIR
)/bin
/srec2bin
$(KDIR
)/ram_zimage.sre
$(KDIR
)/vmlinux.bin
69 ifeq ($(FS
),jffs2-8MB
)
70 ALIGN
:=bs
=131072 conv
=sync
72 ifeq ($(FS
),jffs2-4MB
)
73 ALIGN
:=bs
=65536 conv
=sync
76 define Image
/Build
/CyberTAN
77 (dd if
=/dev
/zero bs
=16 count
=1; cat
$(BIN_DIR
)/openwrt-
$(BOARD
)-$(KERNEL
)-$(1).bin
) | \
78 $(STAGING_DIR
)/bin
/addpattern
-p
$(3) -o
$(BIN_DIR
)/openwrt-
$(2)-$(KERNEL
)-$(4).bin
81 define Image
/Build
/sErCoMm
82 cat sercomm
/adam2.bin
"$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).bin" > "$(BIN_DIR)/openwrt-$(2)-$(KERNEL)-$(3).img"
83 dd if
=sercomm
/$(2) of
="$(KDIR)/dgfw.tmp" bs
=$$$$((0x3e0000 - 80)) seek
=1 conv
=notrunc
84 $(STAGING_DIR
)/bin
/dgfirmware
-f
-w
"$(BIN_DIR)/openwrt-$(2)-$(KERNEL)-$(3).img" "$(KDIR)/dgfw.tmp"
85 rm -f
"$(KDIR)/dgfw.tmp"
89 dd if
=$(KDIR
)/vmlinux.bin
$(ALIGN
) > $(BIN_DIR
)/openwrt-
$(BOARD
)-$(KERNEL
)-$(1).bin
90 cat
$(BUILD_DIR
)/linux-
$(KERNEL
)-$(BOARD
)/root.
$(1) >> $(BIN_DIR
)/openwrt-
$(BOARD
)-$(KERNEL
)-$(1).bin
91 $(call Image
/Build
/CyberTAN
,$(1),AG1B
,AG1B
,$(1))
92 $(call Image
/Build
/CyberTAN
,$(1),WA21
,WA21
,$(1))
93 $(call Image
/Build
/CyberTAN
,$(1),WA22
,WA22
,$(1))
94 $(call Image
/Build
/CyberTAN
,$(1),WAG2
,WAG2
,$(1))
95 $(call Image
/Build
/CyberTAN
,$(1),WA31
,WA31
-b
,$(1))
96 $(call Image
/Build
/CyberTAN
,$(1),WA32
,WA32
-b
,$(1))
97 $(call Image
/Build
/sErCoMm
,$(1),dg834
,$(1))
98 $(call Image
/Build
/sErCoMm
,$(1),jdr454wb
,$(1))
101 $(eval
$(call BuildImage
))