X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Fbcm53xx%2Fimage%2FMakefile;h=9ceb5f6212e6427b21b25591adbb1af33f27ab22;hp=aa270b3c86fa6108ce961384d28eff3ed8ec205f;hb=0e4092cbade0a601a2e924932c8b900aef5a11a4;hpb=931d3092039d5d855a2cf81863a4d294d70595cd diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index aa270b3c86..9ceb5f6212 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -22,10 +22,44 @@ define Build/lzma-d16 mv $@.new $@ endef -define Build/trx-serial +# Similar to Build/tplink-safeloader but uses TRX instead of clean kernel +define Build/bcm53xx-tplink-safeloader + $(STAGING_DIR_HOST)/bin/trx \ + -o $@.trx \ + -m 33554432 \ + -f $(IMAGE_KERNEL) -a 1024 + $(STAGING_DIR_HOST)/bin/tplink-safeloader \ + -B $(TPLINK_BOARD) \ + -k $@.trx \ + -r $@ \ + -j \ + -o $@.new + mv $@.new $@ + rm $@.trx +endef + +define Build/buffalo-wzr-header + $(eval product=$(word 1,$(1))) + $(eval region=$(word 2,$(1))) + ( \ + echo $(product)_$(BUFFALO_TAG_VERSION)_$(BUFFALO_TAG_MINOR)_$(region)_$(BUFFALO_TAG_PLATFORM); \ + echo filelen=$$(stat -c%s $@); \ + cat $@ \ + ) > $@.new + 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/otrx create $@.new \ -f $(IMAGE_KERNEL) -a 1024 \ -f $@ -a 0x10000 -A $(KDIR)/fs_mark mv $@.new $@ @@ -36,9 +70,7 @@ define Build/trx-nand # if it grows up between releases # root: UBI with one extra block containing UBI mark to trigger erasing # rest of partition - $(STAGING_DIR_HOST)/bin/trx \ - -o $@.new \ - -m 33554432 \ + $(STAGING_DIR_HOST)/bin/otrx create $@.new \ -f $(IMAGE_KERNEL) -a 0x20000 -b 0x400000 \ -f $@ \ -A $(KDIR)/ubi_mark -a 0x20000 @@ -47,7 +79,14 @@ endef define Build/asus-trx $(STAGING_DIR_HOST)/bin/asustrx \ - -p $(PRODUCTID) -i $@ -o $@.new + -p $(ASUS_PRODUCTID) -i $@ -o $@.new + mv $@.new $@ +endef + +define Build/luxul-lxl + $(STAGING_DIR_HOST)/bin/lxlfw create $@.new \ + -i $@ \ + -b $(LUXUL_BOARD) mv $@.new $@ endef @@ -68,120 +107,353 @@ define Build/seama-nand -i $@.entity endef -DEVICE_VARS += PRODUCTID SIGNATURE NETGEAR_BOARD_ID NETGEAR_REGION +DEVICE_VARS += ASUS_PRODUCTID +DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR +DEVICE_VARS += SIGNATURE +DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION TPLINK_BOARD +DEVICE_VARS += LUXUL_BOARD + +IEEE8021X := wpad-basic-wolfssl +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 brcmfmac-firmware-4366c0-pcie +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 define Device/Default # .dtb files are prefixed by SoC type, e.g. bcm4708- which is not included in device/image names # extract the full dtb name based on the device info - DEVICE_DTS := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(1).dtb))) + DEVICE_DTS := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(subst _,-,$(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) IMAGES := trx - BLOCKSIZE := 128KiB + BLOCKSIZE := 128k PAGESIZE := 2048 - UBINIZE_OPTS := IMAGE/trx := append-ubi | trx-nand endef define Device/asus + DEVICE_VENDOR := ASUS IMAGES := trx IMAGE/trx := append-ubi | trx-nand | asus-trx endef -define AsusDevice - define Device/asus-$(1) - $$(Device/asus) - PRODUCTID := $(2) - endef - TARGET_DEVICES += asus-$(1) +define Device/asus_rt-ac56u + $(call Device/asus) + DEVICE_MODEL := RT-AC56U + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) + ASUS_PRODUCTID := RT-AC56U endef +TARGET_DEVICES += asus_rt-ac56u -define LinksysDevice - TARGET_DEVICES += linksys-$(1) +define Device/asus_rt-ac68u + $(call Device/asus) + DEVICE_MODEL := RT-AC68U + DEVICE_PACKAGES := $(USB3_PACKAGES) + ASUS_PRODUCTID := RT-AC68U endef +TARGET_DEVICES += asus_rt-ac68u + +define Device/asus_rt-ac87u + $(call Device/asus) + DEVICE_MODEL := RT-AC87U + DEVICE_PACKAGES := $(USB3_PACKAGES) + ASUS_PRODUCTID := RT-AC87U +endef +TARGET_DEVICES += asus_rt-ac87u + +define Device/asus_rt-n18u + $(call Device/asus) + DEVICE_MODEL := RT-N18U + DEVICE_PACKAGES := $(USB3_PACKAGES) + ASUS_PRODUCTID := 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 + DEVICE_VENDOR := Buffalo + KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX) + KERNEL_INITRAMFS = $$(KERNEL) +endef + +define Device/buffalo_wxr-1900dhp + $(call Device/buffalo/Default) + DEVICE_MODEL := WXR-1900DHP + DEVICE_PACKAGES := $(USB3_PACKAGES) +endef +TARGET_DEVICES += buffalo_wxr-1900dhp + +define Device/buffalo_wzr-600dhp2 + $(call Device/buffalo/Default) + DEVICE_MODEL := WZR-600DHP2 + DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES) +endef +TARGET_DEVICES += buffalo_wzr-600dhp2 + +define Device/buffalo_wzr-900dhp + $(call Device/buffalo/Default) + DEVICE_MODEL := WZR-900DHP + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) + BUFFALO_TAG_PLATFORM := bcm + BUFFALO_TAG_VERSION := 9.99 + BUFFALO_TAG_MINOR := 9.99 + IMAGES += factory-DHP-EU.bin factory-DHP2-JP.bin + IMAGE/factory-DHP-EU.bin := \ + append-ubi | trx-nand | buffalo-wzr-header WZR-900DHP EU | \ + buffalo-enc WZR-900DHP $$(BUFFALO_TAG_VERSION) | \ + buffalo-tag-dhp WZR-900DHP EU mlang20 | buffalo-enc-tag | \ + buffalo-dhp-image + IMAGE/factory-DHP2-JP.bin := \ + append-ubi | trx-nand | buffalo-wzr-header WZR-900DHP2 JP | \ + buffalo-enc WZR-900DHP2 $$(BUFFALO_TAG_VERSION) | \ + buffalo-tag-dhp WZR-900DHP2 JP jp | buffalo-enc-tag | \ + buffalo-dhp-image +endef +TARGET_DEVICES += buffalo_wzr-900dhp + +define Device/buffalo_wzr-1750dhp + $(call Device/buffalo/Default) + DEVICE_MODEL := WZR-1750DHP + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) +endef +TARGET_DEVICES += buffalo_wzr-1750dhp define Device/dlink + DEVICE_VENDOR := D-Link IMAGES := bin IMAGE/bin := append-ubi | seama-nand endef -define DLinkDevice - define Device/dlink-$(1) - $$(Device/dlink) - SIGNATURE := $(2) - endef - TARGET_DEVICES += dlink-$(1) -endef - -define Device/dlink-dir-885l - DEVICE_TITLE := D-Link DIR-885L - DEVICE_PACKAGES := kmod-brcmfmac +define Device/dlink_dir-885l + DEVICE_MODEL := DIR-885L + DEVICE_PACKAGES := $(BRCMFMAC_4366B1) $(USB3_PACKAGES) $(Device/dlink) SIGNATURE := wrgac42_dlink.2015_dir885l endef -TARGET_DEVICES += dlink-dir-885l +TARGET_DEVICES += dlink_dir-885l + +# Linksys devices are disabled due to problem with 2 TRX partitions +define Device/linksys_ea6300-v1 + DEVICE_VENDOR := Linksys + DEVICE_MODEL := EA6300 + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) + BROKEN := y +endef +TARGET_DEVICES += linksys_ea6300-v1 + +define Device/linksys_ea6500-v2 + DEVICE_VENDOR := Linksys + DEVICE_MODEL := EA6500 + DEVICE_VARIANT := v2 + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) +endef +TARGET_DEVICES += linksys_ea6500-v2 + +define Device/linksys_ea9200 + DEVICE_VENDOR := Linksys + DEVICE_MODEL := EA9200 + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) + BROKEN := y +endef +TARGET_DEVICES += linksys_ea9200 + +define Device/linksys_ea9500 + DEVICE_VENDOR := Linksys + DEVICE_MODEL := EA9500 + DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) + DEVICE_DTS := bcm47094-linksys-panamera + BROKEN := y +endef +TARGET_DEVICES += linksys_ea9500 + +define Device/luxul + DEVICE_VENDOR := Luxul + IMAGES := lxl + IMAGE/lxl := append-ubi | trx-nand | luxul-lxl +endef + +define Device/luxul_abr-4500 + $(Device/luxul) + DEVICE_MODEL := ABR-4500 + DEVICE_PACKAGES := $(USB3_PACKAGES) + LUXUL_BOARD := ABR-4500 +endef +TARGET_DEVICES += luxul_abr-4500 + +define Device/luxul_xap-1610 + $(Device/luxul) + DEVICE_MODEL := XAP-1610 + DEVICE_PACKAGES := $(BRCMFMAC_4366C0) + IMAGE/lxl := append-rootfs | trx-serial | luxul-lxl + LUXUL_BOARD := XAP-1610 +endef +TARGET_DEVICES += luxul_xap-1610 + +define Device/luxul_xbr-4500 + $(Device/luxul) + DEVICE_MODEL := XBR-4500 + DEVICE_PACKAGES := $(USB3_PACKAGES) + LUXUL_BOARD := XBR-4500 +endef +TARGET_DEVICES += luxul_xbr-4500 + +define Device/luxul_xwr-3150 + $(Device/luxul) + DEVICE_MODEL := XWR-3150 + DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) + DEVICE_DTS := bcm47094-luxul-xwr-3150-v1 + LUXUL_BOARD := XWR-3150 +endef +TARGET_DEVICES += luxul_xwr-3150 + +define Device/meraki_mr32 + DEVICE_VENODR := Meraki + DEVICE_MODEL := MR32 + DEVICE_PACKAGES := $(B43) kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \ + kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth + DEVICE_DTS := bcm53016-meraki-mr32 +# Meraki FW r23 tries to resize the part.safe partition before it will +# flash the image. This is a bit of a problem, since resizing will fail +# if the partition is smaller than the old one. + KERNEL_LOADADDR := 0x00008000 + KERNEL_INITRAMFS_SUFFIX := .bin + KERNEL_INITRAMFS := kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb | \ + pad-to 10362880 + KERNEL := kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + +# Currently the only device that uses the new image check + SUPPORTED_DEVICES := meraki,mr32 + +# The loader is specifically looking for fdt@2: +# [ 3.190000] find_itb_subimage: error finding fdt@2: FDT_ERR_NOTFOUND +# The image won't boot, if it isn't found. :( + DEVICE_FDT_NUM := 2 +endef +TARGET_DEVICES += meraki_mr32 define Device/netgear + DEVICE_VENDOR := NETGEAR IMAGES := chk IMAGE/chk := append-ubi | trx-nand | netgear-chk NETGEAR_REGION := 1 endef -define NetgearDevice - define Device/netgear-$(1) - $$(Device/netgear) - NETGEAR_BOARD_ID := $(2) - endef - TARGET_DEVICES += netgear-$(1) -endef - -define Device/netgear-r6250 +define Device/netgear_r6250 + DEVICE_MODEL := R6250 + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H245T00_NETGEAR endef +TARGET_DEVICES += netgear_r6250 -define Device/netgear-r6300-v2 +define Device/netgear_r6300-v2 + DEVICE_MODEL := R6300 + DEVICE_VARIANT := v2 + DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H240T00_NETGEAR endef +TARGET_DEVICES += netgear_r6300-v2 + +define Device/netgear_r7000 + DEVICE_MODEL := R7000 + DEVICE_PACKAGES := $(USB3_PACKAGES) + $(Device/netgear) + NETGEAR_BOARD_ID := U12H270T00_NETGEAR +endef +TARGET_DEVICES += netgear_r7000 -define Device/netgear-r7900 - DEVICE_TITLE := Netgear R7900 - DEVICE_PACKAGES := kmod-brcmfmac +define Device/netgear_r7900 + DEVICE_MODEL := R7900 + DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H315T30_NETGEAR endef -TARGET_DEVICES += netgear-r7900 +TARGET_DEVICES += netgear_r7900 -define Device/netgear-r8000 - DEVICE_TITLE := Netgear R8000 - DEVICE_PACKAGES := kmod-brcmfmac +define Device/netgear_r8000 + DEVICE_MODEL := R8000 + DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H315T00_NETGEAR endef +TARGET_DEVICES += netgear_r8000 -define Device/smartrg-sr400ac - DEVICE_TITLE := SmartRG SR400ac - DEVICE_PACKAGES := kmod-brcmfmac +define Device/netgear_r8500 + DEVICE_MODEL := R8500 + DEVICE_PACKAGES := $(BRCMFMAC_4366B1) $(USB3_PACKAGES) + $(Device/netgear) + NETGEAR_BOARD_ID := U12H334T00_NETGEAR + DEFAULT := n +endef +TARGET_DEVICES += netgear_r8500 + +define Device/smartrg_sr400ac + DEVICE_VENDOR := SmartRG + DEVICE_MODEL := 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 -TARGET_DEVICES += \ - buffalo-wzr-1750dhp buffalo-wzr-600dhp2 buffalo-wzr-900dhp \ - buffalo-wxr-1900dhp \ - netgear-r6250 netgear-r6300-v2 netgear-r8000 \ - smartrg-sr400ac +define Device/phicomm_k3 + DEVICE_VENDOR := PHICOMM + DEVICE_MODEL := K3 + DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) + IMAGES := trx +endef +TARGET_DEVICES += phicomm_k3 -$(eval $(call AsusDevice,rt-ac56u,RT-AC56U)) -$(eval $(call AsusDevice,rt-ac68u,RT-AC68U)) -$(eval $(call AsusDevice,rt-ac87u,RT-AC87U)) -$(eval $(call AsusDevice,rt-n18u,RT-N18U)) -$(eval $(call LinksysDevice,ea6300-v1)) -$(eval $(call NetgearDevice,r7000,U12H270T00_NETGEAR)) -# $(eval $(call NetgearDevice,r8500,U12H334T00_NETGEAR)) +define Device/tenda_ac9 + DEVICE_VENDOR := Tenda + DEVICE_MODEL := AC9 + 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_VENDOR := TP-LINK + DEVICE_MODEL := Archer C5 + DEVICE_VARIANT := v2 + DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES) + IMAGES := bin + IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader + TPLINK_BOARD := ARCHER-C5-V2 + BROKEN := y +endef +TARGET_DEVICES += tplink_archer-c5-v2 + +define Device/tplink_archer-c9-v1 + DEVICE_VENDOR := TP-LINK + DEVICE_MODEL := Archer C9 + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := $(USB3_PACKAGES) + IMAGES := bin + IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader + TPLINK_BOARD := ARCHERC9 + BROKEN := y +endef +TARGET_DEVICES += tplink_archer-c9-v1 $(eval $(call BuildImage))