1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
define Image/Prepare
$(CP) $(DTS_DIR)/*.dtb $(KDIR)/
rm -f $(KDIR)/fs_mark
echo -ne '\xde\xad\xc0\xde' > $(KDIR)/fs_mark
$(call prepare_generic_squashfs,$(KDIR)/fs_mark)
# For UBI we want only one extra block
rm -f $(KDIR)/ubi_mark
echo -ne '\xde\xad\xc0\xde' > $(KDIR)/ubi_mark
$(CP) ./ubinize.cfg $(KDIR)
endef
define Build/append-dtb
cat $(KDIR)/$(DT).dtb >> $@
endef
define Build/lzma-d16
$(STAGING_DIR_HOST)/bin/lzma e $@ -d16 $(1) $@.new
@mv $@.new $@
endef
define Build/mkfs/squashfs
( cd $(KDIR); $(STAGING_DIR_HOST)/bin/ubinize -p 128KiB -m 2048 -o $(KDIR)/root-block-0x20000-min-0x800.ubi ubinize.cfg )
endef
define Build/trx-serial
$(STAGING_DIR_HOST)/bin/trx \
-o $@ \
-f $(word 1,$^) -a 1024 \
-f $(KDIR)/root.squashfs -a 0x10000 -A $(KDIR)/fs_mark
endef
define Build/trx-nand
# kernel: always use 4 MiB (-28 B or TRX header) to allow upgrades even
# if it grows up between releases
# root: UBI with one extra block containing UBI mark to trigger erasing
# rest of partition
$(STAGING_DIR_HOST)/bin/trx \
-o $@ \
-m 33554432 \
-f $(word 1,$^) -a 0x20000 -b 0x400000 \
-f $(KDIR)/root-block-0x20000-min-0x800.ubi \
-A $(KDIR)/ubi_mark -a 0x20000
endef
define Build/asus-trx
$(STAGING_DIR_HOST)/bin/asustrx \
-p $(PRODUCTID) -i $@ -o $@.new
mv $@.new $@
endef
DEVICE_VARS += DT PRODUCTID NETGEAR_BOARD_ID NETGEAR_REGION
define Device/Default
# .dtb files are prefixed by SoC type, e.g. bcm4708- which is not included in device/image names
# extract the full dtb name based on the device info
DT := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(1).dtb)))
KERNEL := kernel-bin | append-dtb | lzma-d16
FILESYSTEMS := squashfs
KERNEL_NAME := zImage
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
IMAGES := trx
IMAGE/trx := trx-nand
endef
define Device/asus
IMAGES := trx
IMAGE/trx := trx-nand | asus-trx
endef
define AsusDevice
define Device/asus-$(1)
$$(Device/asus)
PRODUCTID := $(2)
endef
TARGET_DEVICES += asus-$(1)
endef
define Device/linksys
IMAGES := trx
IMAGE/trx := trx-nand
endef
define LinksysDevice
define Device/linksys-$(1)
$$(Device/linksys)
endef
TARGET_DEVICES += linksys-$(1)
endef
define Device/netgear
IMAGES := chk
IMAGE/chk := trx-nand | netgear-chk
NETGEAR_REGION := 1
endef
define NetgearDevice
define Device/netgear-$(1)
$$(Device/netgear)
NETGEAR_BOARD_ID := $(2)
endef
TARGET_DEVICES += netgear-$(1)
endef
define Device/netgear-r6250
$(Device/netgear)
NETGEAR_BOARD_ID := U12H245T00_NETGEAR
endef
define Device/netgear-r6300-v2
$(Device/netgear)
NETGEAR_BOARD_ID := U12H240T00_NETGEAR
endef
define Device/netgear-r8000
$(Device/netgear)
NETGEAR_BOARD_ID := U12H315T00_NETGEAR
endef
define Device/smartrg-sr400ac
IMAGES := trx
IMAGE/trx := trx-serial
endef
TARGET_DEVICES += \
buffalo-wzr-1750dhp buffalo-wzr-600dhp2 buffalo-wzr-900dhp \
buffalo-wxr-1900dhp \
netgear-r6250 netgear-r6300-v2 netgear-r8000 \
smartrg-sr400ac
$(eval $(call AsusDevice,rt-ac56u,RT-AC56U))
$(eval $(call AsusDevice,rt-ac68u,RT-AC68U))
$(eval $(call AsusDevice,rt-ac87u,RT-AC87U))
$(eval $(call AsusDevice,rt-n18u,RT-N18U))
$(eval $(call LinksysDevice,ea6300-v1))
$(eval $(call NetgearDevice,r7000,U12H270T00_NETGEAR))
$(eval $(call BuildImage))
|