bcm4908: start work on images for devices using U-Boot
[openwrt/openwrt.git] / target / linux / bcm4908 / image / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2
3 include $(TOPDIR)/rules.mk
4 include $(INCLUDE_DIR)/image.mk
5
6 DEVICE_VARS += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO
7 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
8
9 define Image/Prepare
10 cp bootfs-generic.its $(KDIR)/
11 endef
12
13 define Build/bootfs
14 cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > $@.tmp
15 mv $@.tmp $@
16 sed -i "s=\$${kernel}=$@=" $(KDIR)/bootfs-generic.its
17 PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-generic.its $(KDIR)/bootfs-generic.itb
18 endef
19
20 define Build/bcm4908asus
21 $(STAGING_DIR_HOST)/bin/bcm4908asus create -i $@ \
22 -p $(ASUS_PRODUCTID) -b $(ASUS_BUILD_NO) -f $(ASUS_FW_REV) \
23 -e $(ASUS_EXT_NO)
24 endef
25
26 define Build/bcm4908img
27 rm -fr $@-bootfs
28 mkdir -p $@-bootfs
29 cp -r $(DEVICE_NAME)/* $@-bootfs/
30 touch $@-bootfs/1-openwrt
31 cp $(DTS_DIR)/$(firstword $(DEVICE_DTS)).dtb $@-bootfs/94908.dtb
32 cp $(KDIR)/bcm63xx-cfe/$(subst _,$(comma),$(DEVICE_NAME))/cferam.000 $@-bootfs/
33 cp $(IMAGE_KERNEL) $@-bootfs/vmlinux.lz
34
35 $(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad=0x800000 --little-endian --squash-uids \
36 -v -e 128KiB -o $@-bootfs.jffs2 -d $@-bootfs -m none -n
37 $(STAGING_DIR_HOST)/bin/bcm4908img create $@.new -f $@-bootfs.jffs2 \
38 -a 0x20000 -f $@
39 mv $@.new $@
40 endef
41
42 define Build/bcm4908kernel
43 $(STAGING_DIR_HOST)/bin/bcm4908kernel -i $@ -o $@.new
44 mv $@.new $@
45 endef
46
47 define Build/bcm4908lzma
48 $(STAGING_DIR_HOST)/bin/lzma e -lc1 -lp2 -pb2 -d22 $@ $@.new
49 mv $@.new $@
50 endef
51
52 define Device/Default
53 KERNEL := kernel-bin | bcm4908lzma | bcm4908kernel
54 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
55 KERNEL_INITRAMFS_SUFFIX := .bin
56 KERNEL_INITRAMFS := kernel-bin | bcm4908lzma | bcm4908kernel
57 FILESYSTEMS := squashfs
58 KERNEL_NAME := Image
59 DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1).$$(2)
60 BLOCKSIZE := 128k
61 PAGESIZE := 2048
62 IMAGE/bin := append-ubi | bcm4908img
63 endef
64
65 define Device/asus_gt-ac5300
66 DEVICE_VENDOR := Asus
67 DEVICE_MODEL := GT-AC5300
68 DEVICE_DTS := broadcom/bcm4908/bcm4908-asus-gt-ac5300
69 IMAGES := bin
70 IMAGE/bin := append-ubi | bcm4908img | bcm4908asus
71 ASUS_PRODUCTID := GT-AC5300
72 ASUS_BUILD_NO := 384
73 ASUS_FW_REV := 3.0.0.4
74 ASUS_EXT_NO := 21140
75 endef
76 TARGET_DEVICES += asus_gt-ac5300
77
78 define Device/netgear_r8000p
79 DEVICE_VENDOR := Netgear
80 DEVICE_MODEL := R8000P
81 DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
82 IMAGES := bin
83 IMAGE/chk := append-ubi | bcm4908img | netgear-chk
84 NETGEAR_BOARD_ID := U12H359T00_NETGEAR
85 NETGEAR_REGION := 1
86 endef
87 TARGET_DEVICES += netgear_r8000p
88
89 define Device/tplink_archer-c2300-v1
90 DEVICE_VENDOR := TP-Link
91 DEVICE_MODEL := Archer C2300
92 DEVICE_VARIANT := v1
93 DEVICE_DTS := broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1
94 IMAGES := bin
95 IMAGE/bin := append-ubi | bcm4908img
96 BROKEN := y
97 endef
98 TARGET_DEVICES += tplink_archer-c2300-v1
99
100 $(eval $(call BuildImage))