7c5b67191cb779f2d83b722ce2a6e3b6ab8221d5
[openwrt/staging/nbd.git] / target / linux / realtek / image / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2
3 include $(TOPDIR)/rules.mk
4 include $(INCLUDE_DIR)/image.mk
5
6 KERNEL_LOADADDR = 0x80000000
7 KERNEL_ENTRY = 0x80000400
8
9 DEVICE_VARS += \
10 CAMEO_BOARD_VERSION \
11 CAMEO_CUSTOMER_SIGNATURE \
12 CAMEO_KERNEL_PART \
13 CAMEO_ROOTFS_PART \
14 DLINK_KERNEL_PART_SIZE \
15 H3C_DEVICE_ID \
16 H3C_PRODUCT_ID \
17 ZYXEL_VERS
18
19 define Build/zyxel-vers
20 ( echo VERS;\
21 for hw in $(ZYXEL_VERS); do\
22 echo -n "V9.99($$hw.0) | ";\
23 date -d @$(SOURCE_DATE_EPOCH) +%m/%d/%Y;\
24 done ) >> $@
25 endef
26
27 define Build/dlink-cameo
28 $(SCRIPT_DIR)/cameo-tag.py $@ $(DLINK_KERNEL_PART_SIZE)
29 endef
30
31 define Build/dlink-version
32 echo -n "OpenWrt" >> $@
33 dd if=/dev/zero bs=25 count=1 >> $@
34 endef
35
36 define Build/dlink-headers
37 dd if=$@ bs=$(DLINK_KERNEL_PART_SIZE) count=1 of=$@.kernel_part; \
38 dd if=$@ bs=$(DLINK_KERNEL_PART_SIZE) skip=1 of=$@.rootfs_part; \
39 $(SCRIPT_DIR)/cameo-imghdr.py $@.kernel_part $@.kernel_part.hex \
40 "$(DEVICE_MODEL)" os $(CAMEO_KERNEL_PART) \
41 $(CAMEO_CUSTOMER_SIGNATURE) \
42 $(CAMEO_BOARD_VERSION) \
43 $(KERNEL_LOADADDR); \
44 $(SCRIPT_DIR)/cameo-imghdr.py $@.rootfs_part $@.rootfs_part.hex \
45 "$(DEVICE_MODEL)" squashfs $(CAMEO_ROOTFS_PART) \
46 $(CAMEO_CUSTOMER_SIGNATURE) \
47 $(CAMEO_BOARD_VERSION); \
48 cat $@.kernel_part.hex $@.rootfs_part.hex > $@
49 endef
50
51 define Build/7z
52 $(STAGING_DIR_HOST)/bin/7zr a $(@).new -t7z -m0=lzma $(@)
53 mv $@.new $@
54 endef
55
56 define Build/h3c-image
57 $(STAGING_DIR_HOST)/bin/mkh3cimg \
58 -i $(@) \
59 -o $(@).new \
60 -c 7z \
61 -p $(H3C_PRODUCT_ID) \
62 -d $(H3C_DEVICE_ID)
63 mv $@.new $@
64 endef
65
66 define Build/h3c-vfs
67 $(STAGING_DIR_HOST)/bin/mkh3cvfs \
68 -i $(@) \
69 -o $(@).new \
70 -f openwrt-kernel.bin
71 mv $@.new $@
72 endef
73
74 define Build/relocate-kernel
75 rm -rf $@.relocate
76 $(CP) ../../generic/image/relocate $@.relocate
77 $(MAKE) -j1 -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) LZMA_TEXT_START=0x82000000 \
78 CROSS_COMPILE=$(TARGET_CROSS)
79 ( \
80 dd if=$@.relocate/loader.bin bs=32 conv=sync && \
81 perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
82 cat "$@" \
83 ) > "$@.new"
84 mv "$@.new" "$@"
85 rm -rf $@.relocate
86 endef
87
88 define Device/Default
89 PROFILES = Default
90 KERNEL := \
91 kernel-bin | \
92 append-dtb | \
93 libdeflate-gzip | \
94 uImage gzip
95 KERNEL_INITRAMFS := \
96 kernel-bin | \
97 append-dtb | \
98 libdeflate-gzip | \
99 uImage gzip
100 DEVICE_DTS_DIR := ../dts-$(KERNEL_PATCHVER)
101 DEVICE_DTS = $$(SOC)_$(1)
102 IMAGES := sysupgrade.bin
103 IMAGE/sysupgrade.bin := \
104 append-kernel | \
105 pad-to 64k | \
106 append-rootfs | \
107 pad-rootfs | \
108 check-size | \
109 append-metadata
110 endef
111
112 include $(SUBTARGET).mk
113
114 $(eval $(call BuildImage))