mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 08:51:13 +00:00
6ae2f7ff47
In theory we could have just 1 bootfs image for all devices as each device has its own entry in the "configurations" node. It doesn't work well with default configuration though. If something goes wrong U-Boot SPL can be interrupted (by pressing A) to enter its minimalistic menu. It allows ignoring boardid. In such case bootfs default configuration is used. For above reason each SoC family (BCM4908, BCM4912) should have its own bootfs built. It allows each of them to have working default configuration. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
139 lines
3.9 KiB
Makefile
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/bcm4908/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/bcm4908/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/bcm4908/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))
|