bcm53xx: Fix SmartRG SR400AC initramfs image
[openwrt/openwrt.git] / target / linux / bcm53xx / image / Makefile
index a9ace12c2b5d4c6176815063c41d32fa5ed0477c..e4dca0c4e95a6c937582eb5089a5d4e3e17a24a8 100644 (file)
@@ -49,6 +49,15 @@ define Build/buffalo-wzr-header
        mv $@.new $@
 endef
 
+# TRX with only one (kernel) partition
+define Build/trx
+       $(STAGING_DIR_HOST)/bin/trx \
+               -o $@.new \
+               -m 33554432 \
+               -f $@
+       mv $@.new $@
+endef
+
 define Build/trx-serial
        $(STAGING_DIR_HOST)/bin/trx \
                -o $@.new \
@@ -98,8 +107,11 @@ endef
 DEVICE_VARS += PRODUCTID SIGNATURE NETGEAR_BOARD_ID NETGEAR_REGION TPLINK_BOARD
 DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR
 
-BRCMFMAC_43602A1 := kmod-brcmfmac brcmfmac-firmware-43602a1-pcie
-BRCMFMAC_4366B1 := kmod-brcmfmac brcmfmac-firmware-4366b1-pcie
+IEEE8021X := wpad-mini
+B43 := $(IEEE8021X) kmod-b43
+BRCMFMAC_43602A1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-43602a1-pcie
+BRCMFMAC_4366B1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-4366b1-pcie
+BRCMFMAC_4366C0 := $(IEEE8021X) kmod-brcmfmac
 USB2_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-phy-bcm-ns-usb2
 USB2_PACKAGES += kmod-usb-ledtrig-usbport
 USB3_PACKAGES := $(USB2_PACKAGES) kmod-usb3 kmod-phy-bcm-ns-usb3
@@ -110,6 +122,8 @@ define Device/Default
   DEVICE_DTS := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(1).dtb)))
   KERNEL := kernel-bin | append-dtb | lzma-d16
   KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
+  KERNEL_INITRAMFS_SUFFIX := .trx
+  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma-d16 | trx
   FILESYSTEMS := squashfs
   KERNEL_NAME := zImage
   IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
@@ -126,7 +140,7 @@ endef
 
 define Device/asus-rt-ac56u
   DEVICE_TITLE := Asus RT-AC56U
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
 endef
 TARGET_DEVICES += asus-rt-ac56u
 
@@ -148,21 +162,34 @@ define Device/asus-rt-n18u
 endef
 TARGET_DEVICES += asus-rt-n18u
 
+# Buffalo devices have TFTP recovery mode which can work nicely with initramfs
+# kernels.
+# We should have two initramfs images for Buffalo: plain initramfs kernel and
+# TRX with initramfs kernel. It's not possible right now so let's just build
+# plain initramfs kernel as it may be more useful.
+define Device/buffalo/Default
+  KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX)
+  KERNEL_INITRAMFS = $$(KERNEL)
+endef
+
 define Device/buffalo-wxr-1900dhp
+  $(call Device/buffalo/Default)
   DEVICE_TITLE := Buffalo WXR-1900DHP
   DEVICE_PACKAGES := $(USB3_PACKAGES)
 endef
 TARGET_DEVICES += buffalo-wxr-1900dhp
 
 define Device/buffalo-wzr-600dhp2
+  $(call Device/buffalo/Default)
   DEVICE_TITLE := Buffalo WZR-600DHP2
-  DEVICE_PACKAGES := kmod-b43 $(USB2_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)
 endef
 TARGET_DEVICES += buffalo-wzr-600dhp2
 
 define Device/buffalo-wzr-900dhp
+  $(call Device/buffalo/Default)
   DEVICE_TITLE := Buffalo WZR-900DHP
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
   BUFFALO_TAG_PLATFORM := bcm
   BUFFALO_TAG_VERSION := 9.99
   BUFFALO_TAG_MINOR := 9.99
@@ -181,8 +208,9 @@ endef
 TARGET_DEVICES += buffalo-wzr-900dhp
 
 define Device/buffalo-wzr-1750dhp
+  $(call Device/buffalo/Default)
   DEVICE_TITLE := Buffalo WZR-1750DHP
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
 endef
 TARGET_DEVICES += buffalo-wzr-1750dhp
 
@@ -199,13 +227,27 @@ define Device/dlink-dir-885l
 endef
 TARGET_DEVICES += dlink-dir-885l
 
+# Linksys devices are disabled due to problem with 2 TRX partitions
+
 define Device/linksys-ea6300-v1
   DEVICE_TITLE := Linksys EA6300 V1
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
 endef
-# Disabled due to problems with 2 TRX partitions
 # TARGET_DEVICES += linksys-ea6300-v1
 
+define Device/linksys-ea9200
+  DEVICE_TITLE := Linksys EA9200 V1
+  DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
+endef
+# TARGET_DEVICES += linksys-ea9200
+
+define Device/linksys-ea9500
+  DEVICE_TITLE := Linksys EA9500
+  DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES)
+  DEVICE_DTS := bcm47094-linksys-panamera
+endef
+# TARGET_DEVICES += linksys-ea9500
+
 define Device/netgear
   IMAGES := chk
   IMAGE/chk := append-ubi | trx-nand | netgear-chk
@@ -214,7 +256,7 @@ endef
 
 define Device/netgear-r6250
   DEVICE_TITLE := Netgear R6250
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
   $(Device/netgear)
   NETGEAR_BOARD_ID := U12H245T00_NETGEAR
 endef
@@ -222,7 +264,7 @@ TARGET_DEVICES += netgear-r6250
 
 define Device/netgear-r6300-v2
   DEVICE_TITLE := Netgear R6300 V2
-  DEVICE_PACKAGES := kmod-b43 $(USB3_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
   $(Device/netgear)
   NETGEAR_BOARD_ID := U12H240T00_NETGEAR
 endef
@@ -265,17 +307,28 @@ define Device/smartrg-sr400ac
   DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
   IMAGES := trx
   IMAGE/trx := append-rootfs | trx-serial
+  KERNEL_INITRAMFS_SUFFIX := .bin
+  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma-d16
 endef
 TARGET_DEVICES += smartrg-sr400ac
 
 define Device/tenda-ac9
   DEVICE_TITLE := Tenda AC9
-  DEVICE_PACKAGES := kmod-b43 $(USB2_PACKAGES)
+  DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)
   IMAGES := trx
   IMAGE/trx := append-rootfs | trx-serial
 endef
 TARGET_DEVICES += tenda-ac9
 
+define Device/tplink-archer-c5-v2
+  DEVICE_TITLE := TP-LINK Archer C5 V2
+  DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)
+  IMAGES := bin
+  IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader
+  TPLINK_BOARD := ARCHER-C5-V2
+endef
+TARGET_DEVICES += tplink-archer-c5-v2
+
 define Device/tplink-archer-c9-v1
   DEVICE_TITLE := TP-LINK Archer C9 V1
   DEVICE_PACKAGES := $(USB3_PACKAGES)