bcm4908: build flashable & bootable firmware images
[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 $@ -f $@-bootfs.jffs2
27 endef
28
29 define Device/Default
30 KERNEL := kernel-bin | bcm4908lzma | bcm4908kernel
31 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
32 KERNEL_INITRAMFS_SUFFIX := .bin
33 KERNEL_INITRAMFS := kernel-bin | bcm4908lzma | bcm4908kernel
34 FILESYSTEMS := squashfs
35 KERNEL_NAME := Image
36 IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
37 BLOCKSIZE := 128k
38 PAGESIZE := 2048
39 endef
40
41 define Device/asus_gt-ac5300
42 DEVICE_VENDOR := Asus
43 DEVICE_MODEL := GT-AC5300
44 DEVICE_DTS := broadcom/bcm4908/bcm4908-asus-gt-ac5300
45 IMAGES := bin
46 IMAGE/bin := bcm4908img
47 endef
48 TARGET_DEVICES += asus_gt-ac5300
49
50 define Device/netgear_r8000p
51 DEVICE_VENDOR := Netgear
52 DEVICE_MODEL := R8000P
53 DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
54 IMAGES := bin
55 IMAGE/bin := bcm4908img
56 endef
57 TARGET_DEVICES += netgear_r8000p
58
59 $(eval $(call BuildImage))