bcm4908: build valid Asus GT-AC5300 firmware image
[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 define Build/bcm4908lzma
7 $(STAGING_DIR_HOST)/bin/lzma e -lc1 -lp2 -pb2 -d22 $@ $@.new
8 mv $@.new $@
9 endef
10
11 define Build/bcm4908kernel
12 $(STAGING_DIR_HOST)/bin/bcm4908kernel -i $@ -o $@.new
13 mv $@.new $@
14 endef
15
16 define Build/bcm4908img
17 rm -fr $@-bootfs
18 mkdir -p $@-bootfs
19 cp -r $(DEVICE_NAME)/* $@-bootfs/
20 touch $@-bootfs/1-dummy
21 cp $(DTS_DIR)/$(firstword $(DEVICE_DTS)).dtb $@-bootfs/94908.dtb
22 cp $(KDIR)/bcm63xx-cfe/$(subst _,$(comma),$(DEVICE_NAME))/cferam.000 $@-bootfs/
23 cp $(IMAGE_KERNEL) $@-bootfs/vmlinux.lz
24
25 $(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad --little-endian --squash-uids -v -e 128KiB -o $@-bootfs.jffs2 -d $@-bootfs -m none -n
26 $(STAGING_DIR_HOST)/bin/bcm4908img create $@.new -f $@-bootfs.jffs2 -a 0x20000 -f $@
27 mv $@.new $@
28 endef
29
30 define Build/bcm4908asus
31 $(STAGING_DIR_HOST)/bin/bcm4908asus create -i $@ -p $(ASUS_PRODUCTID) -b $(ASUS_BUILD_NO) -f $(ASUS_FW_REV) -e $(ASUS_EXT_NO)
32 endef
33
34 DEVICE_VARS += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO
35
36 define Device/Default
37 KERNEL := kernel-bin | bcm4908lzma | bcm4908kernel
38 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
39 KERNEL_INITRAMFS_SUFFIX := .bin
40 KERNEL_INITRAMFS := kernel-bin | bcm4908lzma | bcm4908kernel
41 FILESYSTEMS := squashfs
42 KERNEL_NAME := Image
43 IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
44 BLOCKSIZE := 128k
45 PAGESIZE := 2048
46 endef
47
48 define Device/asus_gt-ac5300
49 DEVICE_VENDOR := Asus
50 DEVICE_MODEL := GT-AC5300
51 DEVICE_DTS := broadcom/bcm4908/bcm4908-asus-gt-ac5300
52 IMAGES := bin
53 IMAGE/bin := append-ubi | bcm4908img | bcm4908asus
54 ASUS_PRODUCTID := GT-AC5300
55 ASUS_BUILD_NO := 384
56 ASUS_FW_REV := 3.0.0.4
57 ASUS_EXT_NO := 21140
58 endef
59 TARGET_DEVICES += asus_gt-ac5300
60
61 define Device/netgear_r8000p
62 DEVICE_VENDOR := Netgear
63 DEVICE_MODEL := R8000P
64 DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
65 IMAGES := bin
66 IMAGE/bin := append-ubi | bcm4908img
67 endef
68 TARGET_DEVICES += netgear_r8000p
69
70 $(eval $(call BuildImage))