2 # Copyright (C) 2008-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/image.mk
11 KERNEL_LOADADDR
= 0x80060000
13 DEVICE_VARS
+= NETGEAR_KERNEL_MAGIC NETGEAR_BOARD_ID NETGEAR_HW_ID CMDLINE CONSOLE IMAGE_SIZE BOARDNAME LOADER_FLASH_OFFS LOADER_TYPE
15 ifeq ($(SUBTARGET
),generic
)
19 include .
/legacy-devices.mk
21 ifeq ($(SUBTARGET
),nand
)
24 ifeq ($(SUBTARGET
),mikrotik
)
29 define Build
/netgear-squashfs
30 rm -rf
$@.fs
$@.squashfs
32 cp
$@
$@.fs
/image
/uImage
33 $(STAGING_DIR_HOST
)/bin
/mksquashfs-lzma \
35 -noappend
-root-owned
-be
-b
65536 \
36 $(if
$(SOURCE_DATE_EPOCH
),-fixed-time
$(SOURCE_DATE_EPOCH
))
38 dd if
=/dev
/zero bs
=1k count
=1 >> $@.squashfs
40 -A mips
-O linux
-T filesystem
-C none \
41 -M
$(NETGEAR_KERNEL_MAGIC
) \
42 -a
0xbf070000 -e
0xbf070000 \
43 -n
'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
45 rm -rf
$@.squashfs
$@.fs
48 define Build
/netgear-uImage
49 $(call Build
/uImage
,$(1) -M
$(NETGEAR_KERNEL_MAGIC
))
52 define Build
/loader-common
54 $(MAKE
) -C lzma-loader \
55 PKG_BUILD_DIR
="$@.src" \
56 TARGET_DIR
="$(dir $@)" LOADER_NAME
="$(notdir $@)" \
57 BOARD
="$(BOARDNAME)" \
58 LZMA_TEXT_START
=0x80a00000 LOADADDR
=0x80060000 \
59 $(1) compile loader.
$(LOADER_TYPE
)
60 mv
"$@.$(LOADER_TYPE)" "$@"
64 define Build
/loader-okli-compile
65 $(call Build
/loader-common
,FLASH_OFFS
=$(LOADER_FLASH_OFFS
) FLASH_MAX
=0 KERNEL_CMDLINE
="$(CMDLINE)")
68 define Build
/loader-kernel
69 $(call Build
/loader-common
,LOADER_DATA
="$@")
72 define Build
/loader-kernel-cmdline
73 $(call Build
/loader-common
,LOADER_DATA
="$@" KERNEL_CMDLINE
="$(CMDLINE)")
76 define Build
/loader-okli
77 dd if
=$(KDIR
)/loader-
$(1).gz bs
=7680 conv
=sync of
="$@.new"
82 define Build
/relocate-kernel
84 $(CP
) ..
/..
/generic
/image
/relocate
$@.relocate
85 $(MAKE
) -j1
-C
$@.relocate KERNEL_ADDR
=$(KERNEL_LOADADDR
) CROSS_COMPILE
=$(TARGET_CROSS
)
87 dd if
=$@.relocate
/loader.bin bs
=32 conv
=sync
&& \
88 perl
-e
'@s = stat("$@"); print pack("N", @s[7])' && \
95 define Build
/copy-file
101 DEVICE_PROFILE
= $$(BOARDNAME
)
102 PROFILES
= Default Minimal
$$(DEVICE_PROFILE
)
105 CONSOLE
= ttyS0
,115200
106 CMDLINE
= $$(if
$$(BOARDNAME
),board
=$$(BOARDNAME
)) $$(if
$$(MTDPARTS
),mtdparts
=$$(MTDPARTS
)) $$(if
$$(CONSOLE
),console
=$$(CONSOLE
))
107 KERNEL
:= kernel-bin | patch-cmdline | lzma | uImage lzma
109 IMAGES
:= sysupgrade.bin
110 IMAGE
/sysupgrade.bin
= append-kernel | pad-to
$$$$(BLOCKSIZE
) | append-rootfs | pad-rootfs | check-size
$$$$(IMAGE_SIZE
)
113 $(eval
$(call BuildImage
))