openwrt/target/linux/bcm4908/image/Makefile
Moritz Warning c0fb12c42e treewide: uniform vendor name for ASUS
Their own website (https://www.asus.com)
always uses the upper case style name.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2022-11-16 23:30:11 +01:00

139 lines
3.9 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
DEVICE_VARS += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
DEVICE_VARS += SOC
define Image/Prepare
cp bootfs*.its* $(KDIR)/
sed -i "s=\$$$${images_dir}=$(STAGING_DIR_IMAGE)=" $(KDIR)/bootfs*.its*
sed -i "s=\$$$${dts_dir}=$(DTS_DIR)=" $(KDIR)/bootfs*.its*
endef
define Build/bootfs
cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > $@.tmp
mv $@.tmp $@
sed -i "s=\$${kernel}=$@=" $(KDIR)/bootfs*.its*
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-bcm4908.its $(KDIR)/bootfs-bcm4908.itb
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-bcm4912.its $(KDIR)/bootfs-bcm4912.itb
endef
define Build/bcm4908asus
$(STAGING_DIR_HOST)/bin/bcm4908asus create -i $@ \
-p $(ASUS_PRODUCTID) -b $(ASUS_BUILD_NO) -f $(ASUS_FW_REV) \
-e $(ASUS_EXT_NO)
endef
define Build/bcm4908img
rm -fr $@-bootfs
mkdir -p $@-bootfs
cp -r $(DEVICE_NAME)/* $@-bootfs/
touch $@-bootfs/1-openwrt
cp $(DTS_DIR)/$(firstword $(DEVICE_DTS)).dtb $@-bootfs/94908.dtb
cp $(KDIR)/bcm63xx-cfe/$(subst _,$(comma),$(DEVICE_NAME))/cferam.000 $@-bootfs/
cp $(IMAGE_KERNEL) $@-bootfs/vmlinux.lz
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad=0x800000 --little-endian --squash-uids \
-v -e 128KiB -o $@-bootfs.jffs2 -d $@-bootfs -m none -n
$(STAGING_DIR_HOST)/bin/bcm4908img create $@.new -f $@-bootfs.jffs2 \
-a 0x20000 -f $@
mv $@.new $@
endef
define Build/bcm4908kernel
$(STAGING_DIR_HOST)/bin/bcm4908kernel -i $@ -o $@.new
mv $@.new $@
endef
define Build/bcm4908lzma
$(STAGING_DIR_HOST)/bin/lzma e -lc1 -lp2 -pb2 -d22 $@ $@.new
mv $@.new $@
endef
define Build/pkgtb
mv $@ $@.rootfs
cp pkgtb-$(SOC).its $@.its
sed -i "s=\$${bootfs}=$(KDIR)/bootfs-$(SOC).itb=" $@.its
sed -i "s=\$${rootfs}=$@.rootfs=" $@.its
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@
endef
define Device/Default
KERNEL := kernel-bin | bcm4908lzma | bcm4908kernel
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
KERNEL_INITRAMFS_SUFFIX := .bin
KERNEL_INITRAMFS := kernel-bin | bcm4908lzma | bcm4908kernel
FILESYSTEMS := squashfs
KERNEL_NAME := Image
DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1).$$(2)
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE/bin := append-ubi | bcm4908img
endef
define Device/asus_gt-ac5300
DEVICE_VENDOR := ASUS
DEVICE_MODEL := GT-AC5300
DEVICE_DTS := broadcom/bcmbca/bcm4908-asus-gt-ac5300
IMAGES := bin
IMAGE/bin := append-ubi | bcm4908img | bcm4908asus
ASUS_PRODUCTID := GT-AC5300
ASUS_BUILD_NO := 384
ASUS_FW_REV := 3.0.0.4
ASUS_EXT_NO := 21140
endef
TARGET_DEVICES += asus_gt-ac5300
define Device/asus_gt-ax6000
DEVICE_VENDOR := ASUS
DEVICE_MODEL := GT-AX6000
DEVICE_DTS := broadcom/bcmbca/bcm4912-asus-gt-ax6000
IMAGES := pkgtb
IMAGE/pkgtb := append-rootfs | pkgtb
SOC := bcm4912
endef
# TARGET_DEVICES += asus_gt-ax6000
define Device/netgear_r8000p
DEVICE_VENDOR := Netgear
DEVICE_MODEL := R8000P
DEVICE_DTS := broadcom/bcmbca/bcm4906-netgear-r8000p
IMAGES := bin
IMAGE/chk := append-ubi | bcm4908img | netgear-chk
NETGEAR_BOARD_ID := U12H359T00_NETGEAR
NETGEAR_REGION := 1
endef
TARGET_DEVICES += netgear_r8000p
define Device/tplink_archer-c2300-v1
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := Archer C2300
DEVICE_VARIANT := v1
DEVICE_DTS := broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1
IMAGES := bin
IMAGE/bin := append-ubi | bcm4908img
BROKEN := y
endef
TARGET_DEVICES += tplink_archer-c2300-v1
define Device/netgear
DEVICE_VENDOR := NETGEAR
KERNEL := kernel-bin | bootfs
IMAGES := chk
IMAGE/chk := append-rootfs | pkgtb | netgear-chk
NETGEAR_REGION := 1
endef
define Device/netgear_raxe500
DEVICE_MODEL := RAXE500
$(Device/netgear)
SOC := bcm4908
NETGEAR_BOARD_ID := U12H449T00_NETGEAR
endef
# TARGET_DEVICES += netgear_raxe500
$(eval $(call BuildImage))