brcm63xx: switch to new image building system

Switches BCM63xx to the new IB system.
Images are generated per device definitions.
There are no changes in the produced images except for some name changes,
caused by the new IB system.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46490
This commit is contained in:
Jonas Gorski 2015-07-25 12:12:11 +00:00
parent 5a62d503d9
commit ef78a63997

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2011 OpenWrt.org
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -26,6 +26,73 @@ RELOCATE_MAKEOPTS= \
CROSS_COMPILE=$(TARGET_CROSS) \
LZMA_TEXT_START=$(LOADER_ENTRY)
define Build/Compile
rm -rf $(KDIR)/relocate
$(CP) ../../generic/image/relocate $(KDIR)
$(MAKE) -C $(KDIR)/relocate $(RELOCATE_MAKEOPTS)
endef
### Kernel scripts ###
define Build/append-dtb
$(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb)
cat $@.dtb >> $@
endef
define Build/gzip
gzip -9 -c $@ > $@.gz
mv $@.gz $@
endef
define Build/hcs-initramfs
$(STAGING_DIR_HOST)/bin/hcsmakeimage --magic_bytes=$(HCS_MAGIC_BYTES) \
--rev_maj=$(HCS_REV_MAJ) --rev_min=$(HCS_REV_MIN) --input_file=$@ \
--output_file=$@.hcs --ldaddress=$(LOADADDR)
mv $@.hcs $@
endef
define Build/loader-lzma
rm -rf $@.src
$(MAKE) -C lzma-loader \
$(LOADER_MAKEOPTS) \
PKG_BUILD_DIR="$@.src" \
TARGET_DIR="$(dir $@)" \
LOADER_DATA="$@" \
LOADER_NAME="$(notdir $@)" \
compile loader.$(1)
mv "$@.$(1)" "$@"
rm -rf $@.src
endef
define Build/lzma
# CFE is a LZMA nazi! It took me hours to find out the parameters!
# Also I think lzma has a bug cause it generates different output depending on
# if you use stdin / stdout or not. Use files instead of stdio here, cause
# otherwise CFE will complain and not boot the image.
$(STAGING_DIR_HOST)/bin/lzma e $@ -d22 -fb64 -a1 $@.lzma
mv $@.lzma $@
endef
define Build/lzma-cfe
# Strip out the length, CFE doesn't like this
dd if=$@ of=$@.lzma.cfe bs=5 count=1
dd if=$@ of=$@.lzma.cfe ibs=13 obs=5 skip=1 seek=1 conv=notrunc
mv $@.lzma.cfe $@
endef
define Build/relocate-kernel
# CFE only allows ~4 MiB for the uncompressed kernels, but uncompressed
# kernel might get larger than that, so let CFE unpack and load at a
# higher address and make the kernel relocate itself to the expected
# location.
( \
dd if=$(KDIR)/relocate/loader.bin bs=32 conv=sync && \
perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
cat $@ \
) > $@.relocate
mv $@.relocate $@
endef
### Image scripts ###
define rootfspad/jffs2-128k
--align-rootfs
endef
@ -39,379 +106,549 @@ define Image/LimitName16
$(shell expr substr "$(1)" 1 16)
endef
TARGET_DTBS:=
TARGET_IMAGES:=
TARGET_Default_DTBS:=
TARGET_Default_IMAGES:=
define Image/Build/CFEDTB
# Generate the tagged image
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux-$(3).lzma.cfe -f $(KDIR)/root.$(1) \
--output $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe.bin \
--boardid $(4) --chipid $(5) --entry $(LOADER_ENTRY) \
--load-addr $(LOADER_ENTRY) --info1 "-$(call Image/LimitName16,$(2))" \
$(call rootfspad/$(1)) \
--info2 $(1) $(6)
define Image/FileSystemStrip
$(subst root.,,$(notdir $(1)))
endef
define Image/Build/OLDCFEDTB
# Generate the tagged image
define Build/cfe-bin
$(STAGING_DIR_HOST)/bin/imagetag -i $(word 1,$^) -f $(word 2,$^) \
--output $@ --boardid $(CFE_BOARD_ID) --chipid $(CFE_CHIP_ID) \
--entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \
--info1 "$(call Image/LimitName16,$(DEVICE_NAME))" \
--info2 "$(call Image/FileSystemStrip,$(word 2,$^))" \
$(call rootfspad/$(call Image/FileSystemStrip,$(word 2,$^))) \
$(CFE_EXTRAS) $(1)
endef
define Build/cfe-old-bin
$(TOPDIR)/scripts/brcmImage.pl -t -p \
-b $(4) -c $(5) -e $(LOADER_ENTRY) -a $(LOADER_ENTRY) \
-k $(KDIR)/vmlinux-$(3).lzma.cfe -r $(KDIR)/root.$(1) \
-o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe.bin $(6)
-o $@ -b $(CFE_BOARD_ID) -c $(CFE_CHIP_ID) \
-e $(LOADER_ENTRY) -a $(LOADER_ENTRY) \
-k $(word 1,$^) -r $(word 2,$^) \
$(CFE_EXTRAS)
endef
define Image/Build/SPW303VCFEDTB
# Generate the tagged image
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux-$(3).lzma.cfe -f $(KDIR)/root.$(1) \
--output $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
--boardid $(4) --chipid $(5) --entry $(LOADER_ENTRY) \
$(call rootfspad/$(1)) \
--load-addr $(LOADER_ENTRY) $(6)
# Fix up header
$(STAGING_DIR_HOST)/bin/spw303v -i $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
-o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe-sysupgrade.bin
$(STAGING_DIR_HOST)/bin/xorimage -i $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe-sysupgrade.bin \
-o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe-factory.bin
rm -f $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp
define Build/cfe-spw303v-bin
$(STAGING_DIR_HOST)/bin/imagetag -i $(word 1,$^) -f $(word 2,$^) \
--output $@ --boardid $(CFE_BOARD_ID) --chipid $(CFE_CHIP_ID) \
--entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \
$(call rootfspad/$(call Image/FileSystemStrip,$(word 2,$^))) \
$(CFE_EXTRAS)
endef
define Image/Build/ZYXCFEDTB
# Generate the tagged image
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux-$(3).lzma.cfe -f $(KDIR)/root.$(1) \
--output $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
--boardid $(4) --chipid $(5) --entry $(LOADER_ENTRY) \
--load-addr $(LOADER_ENTRY) --info1 "-$(call Image/LimitName16,$(2))" \
$(call rootfspad/$(1)) \
--info2 $(1) $(6)
# Fix up header
$(STAGING_DIR_HOST)/bin/zyxbcm -i $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
-o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-zyxcfe.bin
rm -f $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp
define Build/netgear-chk
$(STAGING_DIR_HOST)/bin/mkchkimg -o $@.netgear -k $@ \
-b $(NETGEAR_ID) -r $(NETGEAR_REGION)
mv $@.netgear $@
endef
define Image/Build/RedBootDTB
define Build/spw303v-bin
$(STAGING_DIR_HOST)/bin/spw303v -i $@ -o $@.spw303v
mv $@.spw303v $@
endef
define Build/xor-image
$(STAGING_DIR_HOST)/bin/xorimage -i $@ -o $@.xor
mv $@.xor $@
endef
define Build/zyxel-bin
$(STAGING_DIR_HOST)/bin/zyxbcm -i $@ -o $@.zyxel
mv $@.zyxel $@
endef
define Build/redboot-bin
# Prepare kernel and rootfs
cat $(KDIR)/vmlinux $(DTS_DIR)/$(3).dtb > $(KDIR)/vmlinux-$(3)
gzip -9n -c $(KDIR)/vmlinux-$(3) > $(KDIR)/vmlinux-$(3).bin.gz
dd if=$(KDIR)/vmlinux-$(3).bin.gz of=$(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz bs=65536 conv=sync
dd if=$(KDIR)/root.squashfs of="$(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs" bs=64k conv=sync
echo -ne \\xDE\\xAD\\xC0\\xDE >> "$(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs"
dd if=$(word 1,$^) of=$(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz bs=65536 conv=sync
dd if=$(word 2,$^) of=$(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^)) bs=64k conv=sync
echo -ne \\xDE\\xAD\\xC0\\xDE >> $(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^))
# Generate the scripted image
$(TOPDIR)/scripts/redboot-script.pl \
-k $(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz \
-r $(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs \
-k $(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz \
-r $(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^)) \
-a $(strip $(LOADADDR)) -f 0xbe430000 -l 0x7c0000 \
-s 0x1000 -t 20 -o $(BIN_DIR)/redbootscript
dd if="$(BIN_DIR)/redbootscript" of="$(BIN_DIR)/redbootscript.padded" bs=4096 conv=sync
-s 0x1000 -t 20 -o $@.redbootscript
dd if="$@.redbootscript" of="$@.redbootscript.padded" bs=4096 conv=sync
cat \
"$(BIN_DIR)/redbootscript.padded" \
"$(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz" \
"$(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs" \
> "$(BIN_DIR)/$(IMG_PREFIX)-$(2)-redboot.bin"
rm -f $(BIN_DIR)/redbootscript $(BIN_DIR)/redbootscript.padded
rm -f $(KDIR)/vmlinux-$(3)
"$@.redbootscript.padded" \
"$(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz" \
"$(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^))" \
> "$@"
endef
define Image/Build/HCSDTB
# Generate the image
$(STAGING_DIR_HOST)/bin/hcsmakeimage --magic_byte=$(4) \
--rev_maj=$(5) --rev_min=$(6) --input_file=$(KDIR)/$(7) \
--output_file=$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).bin \
--ldaddress=$(LOADADDR)
# Shared device definition: applies to every defined device
define Device/Default
PROFILES = Default $$(DEVICE_PROFILE)
KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX).elf
DEVICE_PROFILE :=
DEVICE_NAME :=
DEVICE_DTS :=
endef
DEVICE_VARS += DEVICE_PROFILE DEVICE_NAME DEVICE_DTS
# BCM33xx HCS devices: only generates ramdisks (unsupported bin images)
define Device/bcm33xxHcsRamdisk
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-lzma bin | hcs-initramfs
IMAGES :=
HCS_MAGIC_BYTES :=
HCS_REV_MIN :=
HCS_REV_MAJ :=
endef
DEVICE_VARS += HCS_MAGIC_BYTES HCS_REV_MIN HCS_REV_MAJ
# Shared BCM63xx CFE device definitios
define Device/bcm63xxCfeCommon
FILESYSTEMS := squashfs jffs2-64k jffs2-128k
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | lzma-cfe
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-lzma elf
endef
define Image/Build/ChkDTB
# Generate Netgear factory image
$(STAGING_DIR_HOST)/bin/mkchkimg -o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-factory.chk \
-k $(BIN_DIR)/$(IMG_PREFIX)-$(4)-$(1)-cfe.bin -b $(5) -r $(6)
# BCM63xx CFE devices: only generates ramdisks (unsupported bin images)
define Device/bcm63xxCfeRamdisk
$(Device/bcm63xxCfeCommon)
IMAGES :=
endef
define Image/Build/Dummy
# for boards without a flashable image yet
true
# BCM63xx CFE devices: both ramdisks and parallel/spi bin images
# New versions of CFE bootloader compatible with imagetag
define Device/bcm63xxCfe
$(Device/bcm63xxCfeCommon)
IMAGES := cfe.bin
IMAGE/cfe.bin := cfe-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
DEVICE_VARS += CFE_BOARD_ID CFE_CHIP_ID CFE_EXTRAS
# BCM63xx CFE BC221 devices: both ramdisks and parallel/spi bin images
# Generates a generic image and a layout version 5 image
define Device/bcm63xxCfeBc221
$(Device/bcm63xxCfeCommon)
IMAGES := cfe.bin cfe-bc221.bin
IMAGE/cfe.bin := cfe-bin
IMAGE/cfe-bc221.bin := cfe-bin --layoutver 5
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
define Build/Clean
$(MAKE) -C lzma-loader clean
# BCM63xx CFE MultiFlash devices: both ramdisks and parallel/spi bin images
# Generates generic images padded for 4M/8M/16M flashes
define Device/bcm63xxCfeMultiFlash
$(Device/bcm63xxCfeCommon)
IMAGES := cfe-4M.bin cfe-8M.bin cfe-16M.bin
IMAGE/cfe-4M.bin := cfe-bin --pad 2
IMAGE/cfe-8M.bin := cfe-bin --pad 4
IMAGE/cfe-16M.bin := cfe-bin --pad 8
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
define Image/PrepareLoader
# Standard LZMA kernel
$(STAGING_DIR_HOST)/bin/lzma e -d22 -fb64 -a1 $(KDIR)/vmlinux$(1) $(KDIR)/vmlinux$(1).lzma
# BCM63xx CFE NETGEAR devices: both ramdisks and parallel/spi bin images
# factory.chk: netgear images for bootloader/original firmware upgrades
# sysupgrade.bin: openwrt images for sysupgrades
define Device/bcm63xxCfeNetgear
$(Device/bcm63xxCfeCommon)
IMAGES := factory.chk sysupgrade.bin
IMAGE/factory.chk := cfe-bin | netgear-chk
IMAGE/sysupgrade.bin := cfe-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
NETGEAR_ID :=
NETGEAR_REGION :=
endef
DEVICE_VARS += NETGEAR_ID NETGEAR_REGION
# Build the LZMA loader
rm -rf $(KDIR)/lzma-loader
$(MAKE) -C lzma-loader \
$(LOADER_MAKEOPTS) \
BUILD_DIR="$(KDIR)" \
TARGET_DIR="$(2)" \
LOADER_DATA="$(KDIR)/vmlinux$(1).lzma" \
LOADER=$(IMG_PREFIX)-loader$(1) \
compile $(3)
rm -f $(KDIR)/vmlinux$(1).lzma
# BCM63xx Old CFE devices: both ramdisks and parallel/spi bin images
# Old versions of CFE bootloader not compatible with imagetag
define Device/bcm63xxCfeOld
$(Device/bcm63xxCfeCommon)
IMAGES := cfe-old.bin
IMAGE/cfe-old.bin := cfe-old-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
define Image/PrepareLoaderDTB
# append dtb to vmlinux, then build a standard LZMA loader
cat $(KDIR)/vmlinux$(1) $(DTS_DIR)/$(2).dtb > $(KDIR)/vmlinux$(1)-$(2)
$(call Image/PrepareLoader,$(1)-$(2),$(3),$(4))
rm -f $(KDIR)/vmlinux$(1)-$(2)
# BCM63xx CFE SPW303V devices: both ramdisks and parallel/spi bin images
# factory.bin: SPW303V images for bootloader/original firmware upgrades
# sysupgrade.bin: openwrt images for sysupgrades
define Device/bcm63xxCfeSpw303v
$(Device/bcm63xxCfeCommon)
IMAGES := factory.bin sysupgrade.bin
IMAGE/factory.bin := cfe-spw303v-bin | spw303v-bin | xor-image
IMAGE/sysupgrade.bin := cfe-spw303v-bin | spw303v-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
define Image/PrepareCFELzmaKernel
# CFE only allows ~4 MiB for the uncompressed kernels, but uncompressed
# kernel might get larger than that, so let CFE unpack and load at a
# higher address and make the kernel relocate itself to the expected
# location.
( \
dd if=$(KDIR)/relocate/loader.bin bs=32 conv=sync && \
perl -e '@s = stat("$(KDIR)/vmlinux$(1)"); print pack("N", @s[7])' && \
cat $(KDIR)/vmlinux$(1) \
) > $(KDIR)/vmlinux-relocate$(1)
# CFE is a LZMA nazi! It took me hours to find out the parameters!
# Also I think lzma has a bug cause it generates different output depending on
# if you use stdin / stdout or not. Use files instead of stdio here, cause
# otherwise CFE will complain and not boot the image.
$(STAGING_DIR_HOST)/bin/lzma e -d22 -fb64 -a1 $(KDIR)/vmlinux-relocate$(1) $(KDIR)/vmlinux$(1).lzma.tmp
# Strip out the length, CFE doesn't like this
dd if=$(KDIR)/vmlinux$(1).lzma.tmp of=$(KDIR)/vmlinux$(1).lzma.cfe bs=5 count=1
dd if=$(KDIR)/vmlinux$(1).lzma.tmp of=$(KDIR)/vmlinux$(1).lzma.cfe ibs=13 obs=5 skip=1 seek=1 conv=notrunc
rm -f $(KDIR)/vmlinux$(1).lzma.tmp
rm -f $(KDIR)/vmlinux-relocate$(1)
# BCM63xx CFE ZyXEL devices: both ramdisks and parallel/spi bin images
# factory.bin: ZyXEL specific CFE images (sysupgrade compatible)
define Device/bcm63xxCfeZyxel
$(Device/bcm63xxCfeCommon)
IMAGES := factory.bin
IMAGE/factory.bin := cfe-bin | zyxel-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
endef
define Image/PrepareCFELzmaKernelDTB
# compile the dts (the dtb will be later reused for the lzma loader)
$(call Image/BuildDTB,../dts/$(1).dts,$(DTS_DIR)/$(1).dtb)
cat $(KDIR)/vmlinux $(DTS_DIR)/$(1).dtb > $(KDIR)/vmlinux-$(1)
$(call Image/PrepareCFELzmaKernel,-$(1))
rm -f $(KDIR)/vmlinux-$(1)
# BCM63xx RedBoot devices: both ramdisks and parallel/spi bin images
# Generates images compatible with RedBoot bootloader
define Device/bcm63xxRedBoot
FILESYSTEMS := squashfs
KERNEL := kernel-bin | append-dtb | gzip
IMAGES := redboot.bin
IMAGE/redboot.bin := redboot-bin
REDBOOT_PREFIX := $$(IMAGE_PREFIX)
endef
DEVICE_VARS += REDBOOT_PREFIX
define Image/Prepare
# build relocation code first
rm -rf $(KDIR)/relocate
$(CP) ../../generic/image/relocate $(KDIR)
$(MAKE) -C $(KDIR)/relocate $(RELOCATE_MAKEOPTS)
$(foreach board,$(sort $(TARGET_$(PROFILE)_DTBS)), $(call Image/PrepareCFELzmaKernelDTB,$(board)))
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
$(foreach board,$(sort $(TARGET_$(PROFILE)_DTBS)), \
$(call Image/PrepareLoaderDTB,-initramfs,$(board),$(BIN_DIR),loader.elf))
ifneq (,$(findstring cvg834g,$(TARGET_$(PROFILE)_DTBS)))
$(call Image/PrepareLoaderDTB,-initramfs,cvg834g,$(KDIR),loader.bin)
endif
endif
endef
define Image/Build/Initramfs
# Netgear CVG834G
ifneq (,$(findstring cvg834g,$(TARGET_$(PROFILE)_DTBS)))
$(call Image/Build/HCSDTB,initramfs,cvg834g,cvg834g,a020,0001,0022,$(IMG_PREFIX)-loader-initramfs-cvg834g.bin)
endif
endef
# $(1) = Image build
# $(2) = Profile
# $(3) = imagename
# $(4) = dtb
# $(5) = boardname
# $(6) = chipid
# $(7) = additional options
define ImageDTB
define Image/Build/$(3)
$$(call Image/Build/$(1),$$(1),$(3),$(4),$(5),$(6),$(7),$(8))
### Device macros ###
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = hcs magic bytes
# $(5) = hcs rev min
# $(6) = hcs rev major
define bcm33xxHcsRamdisk
define Device/$(2)
$$(Device/bcm33xxHcsRamdisk)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
HCS_MAGIC_BYTES := $(4)
HCS_REV_MIN := $(5)
HCS_REV_MAJ := $(6)
endef
TARGET_Default_DTBS += $(4)
TARGET_Default_IMAGES += $(3)
TARGET_$(2)_DTBS += $(4)
TARGET_$(2)_IMAGES += $(3)
TARGET_DEVICES += $(2)
endef
define Image/Build
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
# build dtb image list
$(foreach image,$(TARGET_$(PROFILE)_IMAGES),$(call Image/Build/$(image),$(1)))
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
$(call Image/Build/Initramfs)
endif
# $(1) = profile
# $(2) = image name
# $(3) = dts
define bcm63xxCfeRamdisk
define Device/$(2)
$$(Device/bcm63xxCfeRamdisk)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfe
define Device/$(2)
$$(Device/bcm63xxCfe)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfeMultiFlash
define Device/$(2)
$$(Device/bcm63xxCfeMultiFlash)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfeBc221
define Device/$(2)
$$(Device/bcm63xxCfeBc221)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
# $(7) = netgear id
# $(8) = netgear region
define bcm63xxCfeNetgear
define Device/$(2)
$$(Device/bcm63xxCfeNetgear)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
NETGEAR_ID := $(7)
NETGEAR_REGION := $(8)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfeOld
define Device/$(2)
$$(Device/bcm63xxCfeOld)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfeSpw303v
define Device/$(2)
$$(Device/bcm63xxCfeSpw303v)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
define bcm63xxCfeZyxel
define Device/$(2)
$$(Device/bcm63xxCfeZyxel)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
CFE_BOARD_ID := $(4)
CFE_CHIP_ID := $(5)
CFE_EXTRAS := $(6)
endef
TARGET_DEVICES += $(2)
endef
# $(1) = profile
# $(2) = image name
# $(3) = dts
define bcm63xxRedBoot
define Device/$(2)
$$(Device/bcm63xxRedBoot)
DEVICE_PROFILE := $(1)
DEVICE_NAME := $(2)
DEVICE_DTS := $(3)
endef
TARGET_DEVICES += $(2)
endef
### Devices ###
# Generic 963281TAN
$(eval $(call ImageDTB,CFEDTB,963281TAN,963281TAN-4M-flash-generic,bcm963281TAN,963281TAN,6328,--pad 2))
$(eval $(call ImageDTB,CFEDTB,963281TAN,963281TAN-8M-flash-generic,bcm963281TAN,963281TAN,6328,--pad 4))
$(eval $(call ImageDTB,CFEDTB,963281TAN,963281TAN-16M-flash-generic,bcm963281TAN,963281TAN,6328,--pad 8))
$(eval $(call bcm63xxCfeMultiFlash,963281TAN,963281TAN-generic,bcm963281TAN,963281TAN,6328))
# Generic 96328avng
$(eval $(call ImageDTB,CFEDTB,96328avng,96328avng-4M-flash-generic,bcm96328avng,96328avng,6328,--pad 2))
$(eval $(call ImageDTB,CFEDTB,96328avng,96328avng-8M-flash-generic,bcm96328avng,96328avng,6328,--pad 4))
$(eval $(call ImageDTB,CFEDTB,96328avng,96328avng-16M-flash-generic,bcm96328avng,96328avng,6328,--pad 8))
$(eval $(call bcm63xxCfeMultiFlash,96328avng,96328avng-generic,bcm96328avng,96328avng,6328))
# Generic 96338GW
$(eval $(call ImageDTB,CFEDTB,96338GW,96338GW-generic,bcm96338GW,6338GW,6338))
$(eval $(call bcm63xxCfe,96338GW,96338GW-generic,bcm96338GW,6338GW,6338))
# Generic 96338W
$(eval $(call ImageDTB,CFEDTB,96338W,96338W-generic,bcm96338W,6338W,6338))
$(eval $(call bcm63xxCfe,96338W,96338W-generic,bcm96338W,6338W,6338))
# Generic 96345GW2
$(eval $(call ImageDTB,CFEDTB,96345GW2,96345GW2-generic,bcm96345GW2,96345GW2,6345))
$(eval $(call ImageDTB,CFEDTB,96345GW2,96345GW2-bc221,bcm96345GW2,96345GW2,6345,--layoutver 5))
$(eval $(call bcm63xxCfeBc221,96345GW2,96345GW2-generic,bcm96345GW2,96345GW2,6345))
# Generic 96348GW
$(eval $(call ImageDTB,CFEDTB,96348GW,96348GW-generic,bcm96348GW,96348GW,6348))
$(eval $(call ImageDTB,CFEDTB,96348GW,96348GW-bc221,bcm96348GW,96348GW,6348,--layoutver 5))
$(eval $(call bcm63xxCfeBc221,96348GW,96348GW-generic,bcm96348GW,96348GW,6348))
# Generic 96348GW-10
$(eval $(call ImageDTB,CFEDTB,96348GW_10,96348GW-10-generic,bcm96348GW-10,96348GW-10,6348))
$(eval $(call bcm63xxCfe,96348GW_10,96348GW-10-generic,bcm96348GW-10,96348GW-10,6348))
# Generic 96348GW-11
$(eval $(call ImageDTB,CFEDTB,96348GW_11,96348GW-11-generic,bcm96348GW-11,96348GW-11,6348))
$(eval $(call bcm63xxCfe,96348GW_11,96348GW-11-generic,bcm96348GW-11,96348GW-11,6348))
# Generic 96348R
$(eval $(call ImageDTB,CFEDTB,96348R,96348R-generic,bcm96348R,96348R,6348))
$(eval $(call bcm63xxCfe,96348R,96348R-generic,bcm96348R,96348R,6348))
# Generic 96358VW
$(eval $(call ImageDTB,CFEDTB,96358VW,96358VW-generic,bcm96358VW,96358VW,6358))
$(eval $(call bcm63xxCfe,96358VW,96358VW-generic,bcm96358VW,96358VW,6358))
# Generic 96358VW2
$(eval $(call ImageDTB,CFEDTB,96358VW2,96358VW2-generic,bcm96358VW2,96358VW2,6358))
$(eval $(call bcm63xxCfe,96358VW2,96358VW2-generic,bcm96358VW2,96358VW2,6358))
# Generic 96368MVNgr
$(eval $(call ImageDTB,CFEDTB,96368MVNgr,96368MVNgr-generic,bcm96368MVNgr,96368MVNgr,6368))
$(eval $(call bcm63xxCfe,96368MVNgr,96368MVNgr-generic,bcm96368MVNgr,96368MVNgr,6368))
# Generic 96368MVWG
$(eval $(call ImageDTB,CFEDTB,96368MVWG,96368MVWG-generic,bcm96368MVWG,96368MVWG,6368))
$(eval $(call bcm63xxCfe,96368MVWG,96368MVWG-generic,bcm96368MVWG,96368MVWG,6368))
# ADB P.DG A4001N
$(eval $(call ImageDTB,CFEDTB,A4001N,A4001N,a4001n,96328dg2x2,6328,--pad 4))
$(eval $(call bcm63xxCfe,A4001N,A4001N,a4001n,96328dg2x2,6328,--pad 4))
# ADB P.DG A4001N1
$(eval $(call ImageDTB,CFEDTB,A4001N1,A4001N1,a4001n1,963281T_TEF,6328,--pad 8))
$(eval $(call bcm63xxCfe,A4001N1,A4001N1,a4001n1,963281T_TEF,6328,--pad 8))
# Alcatel RG100A
$(eval $(call ImageDTB,CFEDTB,RG100A,RG100A,rg100a,96358VW2,6358,--block-size 0x20000 --image-offset 0x20000))
$(eval $(call bcm63xxCfe,RG100A,RG100A,rg100a,96358VW2,6358,--block-size 0x20000 --image-offset 0x20000))
# Asmax AR 1004g
$(eval $(call ImageDTB,CFEDTB,AR1004G,AR1004G,ar1004g,96348GW-10,6348))
$(eval $(call bcm63xxCfe,AR1004G,AR1004G,ar1004g,96348GW-10,6348))
# Belkin F5D7633
$(eval $(call ImageDTB,CFEDTB,F5D7633,F5D7633,f5d7633,96348GW-10,6348,--block-size 0x20000 --image-offset 0x20000))
$(eval $(call bcm63xxCfe,F5D7633,F5D7633,f5d7633,96348GW-10,6348,--block-size 0x20000 --image-offset 0x20000))
# Broadcom BCM96318REF
$(eval $(call ImageDTB,Dummy,BCM96318REF,BCM96318REF,bcm96318ref,96318REF,6318))
$(eval $(call bcm63xxCfeRamdisk,BCM96318REF,BCM96318REF,bcm96318ref,96318REF,6318))
# Broadcom BCM96318REF_P300
$(eval $(call ImageDTB,Dummy,BCM96318REF_P300,BCM96318ref_P300,bcm96318ref_p300,96318REF_P300,6318))
$(eval $(call bcm63xxCfeRamdisk,BCM96318REF_P300,BCM96318ref_P300,bcm96318ref_p300,96318REF_P300,6318))
# Broadcom BCM963268BU_P300
$(eval $(call ImageDTB,Dummy,BCM963268BU_P300,BCM963268BU_P300,bcm963268bu_p300,963268BU_P300,63268))
$(eval $(call bcm63xxCfeRamdisk,BCM963268BU_P300,BCM963268BU_P300,bcm963268bu_p300,963268BU_P300,63268))
# Broadcom BCM963269BHR
$(eval $(call ImageDTB,Dummy,BCM963269BHR,BCM963269BHR,bcm963269bhr,963269BHR,63268))
$(eval $(call bcm63xxCfeRamdisk,BCM963269BHR,BCM963269BHR,bcm963269bhr,963269BHR,63268))
# BT Home Hub 2.0 A
$(eval $(call ImageDTB,CFEDTB,BTHOMEHUB2A,HomeHub2A,homehub2a,HOMEHUB2A,6358,--image-offset 0x20000 --block-size 0x20000))
$(eval $(call bcm63xxCfe,BTHOMEHUB2A,HomeHub2A,homehub2a,HOMEHUB2A,6358,--image-offset 0x20000 --block-size 0x20000))
# BT Voyager V2110, V2110_AA, V2110_ROI
$(eval $(call ImageDTB,CFEDTB,BTV2110,BTV2110,v2110,V2110,6348,--layoutver 5))
$(eval $(call bcm63xxCfe,BTV2110,BTV2110,v2110,V2110,6348,--layoutver 5))
# BT Voyager V2500V, V2500V_SIP_CLUB, V2500V_AA
$(eval $(call ImageDTB,CFEDTB,BTV2500V,BTV2500V,v2500v-bb,V2500V_BB,6348,--layoutver 5))
$(eval $(call bcm63xxCfe,BTV2500V,BTV2500V,v2500v-bb,V2500V_BB,6348,--layoutver 5))
# Comtrend AR-5381u
$(eval $(call ImageDTB,CFEDTB,AR5381u,AR-5381u,ar-5381u,96328A-1241N,6328,--pad 8))
$(eval $(call bcm63xxCfe,AR5381u,AR-5381u,ar-5381u,96328A-1241N,6328,--pad 8))
# Comtrend AR-5387un
$(eval $(call ImageDTB,CFEDTB,AR5387un,AR-5387un,ar-5387un,96328A-1441N1,6328,--pad 8))
$(eval $(call bcm63xxCfe,AR5387un,AR-5387un,ar-5387un,96328A-1441N1,6328,--pad 8))
# Comtrend 536, 5621
$(eval $(call ImageDTB,CFEDTB,CT536_CT5621,CT536_CT5621,ct536plus,96348GW-11,6348))
$(eval $(call bcm63xxCfe,CT536_CT5621,CT536_CT5621,ct536plus,96348GW-11,6348))
# Comtrend CT-5365
$(eval $(call ImageDTB,CFEDTB,CT5365,CT-5365,ct-5365,96348A-122,6348))
$(eval $(call bcm63xxCfe,CT5365,CT-5365,ct-5365,96348A-122,6348))
# Comtrend CT-6373
$(eval $(call ImageDTB,CFEDTB,CT6373,CT-6373,ct-6373,CT6373-1,6358))
$(eval $(call bcm63xxCfe,CT6373,CT-6373,ct-6373,CT6373-1,6358))
# Comtrend VR-3025u
$(eval $(call ImageDTB,CFEDTB,VR3025u,VR-3025u,vr-3025u,96368M-1541N,6368,--pad 16 --image-offset 0x20000 --block-size 0x20000))
$(eval $(call bcm63xxCfe,VR3025u,VR-3025u,vr-3025u,96368M-1541N,6368,--pad 16 --image-offset 0x20000 --block-size 0x20000))
# Comtrend VR-3025un
$(eval $(call ImageDTB,CFEDTB,VR3025un,VR-3025un,vr-3025un,96368M-1341N,6368,--pad 4))
$(eval $(call bcm63xxCfe,VR3025un,VR-3025un,vr-3025un,96368M-1341N,6368,--pad 4))
# Comtrend WAP-5813n
$(eval $(call ImageDTB,CFEDTB,WAP5813n,WAP-5813n,wap-5813n,96369R-1231N,6368,--pad 4))
$(eval $(call bcm63xxCfe,WAP5813n,WAP-5813n,wap-5813n,96369R-1231N,6368,--pad 4))
# D-Link DSL-2640B, rev B2
$(eval $(call ImageDTB,CFEDTB,DSL2640B-B2,DSL2640B_B,dsl-2640b-b,D-4P-W,6348))
$(eval $(call bcm63xxCfe,DSL2640B-B2,DSL2640B_B,dsl-2640b-b,D-4P-W,6348))
# D-Link DSL-2640U, rev C1
$(eval $(call ImageDTB,CFEDTB,DSL2640U,DSL2640U,dsl-2640u,96338W2_E7T,6338))
$(eval $(call bcm63xxCfe,DSL2640U,DSL2640U,dsl-2640u,96338W2_E7T,6338))
# D-Link DSL-2650U
$(eval $(call ImageDTB,CFEDTB,DSL2650U,DSL2650U,dsl-2650u,96358VW2,6358))
$(eval $(call bcm63xxCfe,DSL2650U,DSL2650U,dsl-2650u,96358VW2,6358))
# D-Link DSL-2740B/DSL-2741B, rev C2
$(eval $(call ImageDTB,CFEDTB,DSL274XB_C,DSL274XB-C2,dsl-274xb-c,96358GW,6358))
$(eval $(call bcm63xxCfe,DSL274XB_C,DSL274XB-C2,dsl-274xb-c,96358GW,6358))
# D-Link DSL-2740B/DSL-2741B, rev C3
$(eval $(call ImageDTB,CFEDTB,DSL274XB_C,DSL274XB-C3,dsl-274xb-c,AW4139,6358))
$(eval $(call bcm63xxCfe,DSL274XB_C,DSL274XB-C3,dsl-274xb-c,AW4139,6358))
# D-Link DSL-2740B/DSL-2741B, rev F1
$(eval $(call ImageDTB,CFEDTB,DSL274XB_F,DSL274XB-F1-EU,dsl-274xb-f,AW4339U,6328,--signature2 "4.06.01.EUF1" --pad 4))
$(eval $(call ImageDTB,CFEDTB,DSL274XB_F,DSL274XB-F1-AU,dsl-274xb-f,AW4339U,6328,--signature2 "4.06.01.AUF1" --pad 4))
$(eval $(call bcm63xxCfe,DSL274XB_F,DSL274XB-F1-EU,dsl-274xb-f,AW4339U,6328,--signature2 "4.06.01.EUF1" --pad 4))
$(eval $(call bcm63xxCfe,DSL274XB_F,DSL274XB-F1-AU,dsl-274xb-f,AW4339U,6328,--signature2 "4.06.01.AUF1" --pad 4))
# D-Link DSL-2750B/DSL-2751, rev D1
$(eval $(call ImageDTB,Dummy,DSL275XB_D,DSL275XB-D1,dsl-275xb-d,AW5200U,6318, --pad 4))
$(eval $(call bcm63xxCfeRamdisk,DSL275XB_D,DSL275XB-D1,dsl-275xb-d,AW5200U,6318,--pad 4))
# D-Link DVA-G3810BN/TL
$(eval $(call ImageDTB,CFEDTB,DVAG3810BN,DVAG3810BN,dva-g3810bn_tl,96358VW,6358))
$(eval $(call bcm63xxCfe,DVAG3810BN,DVAG3810BN,dva-g3810bn_tl,96358VW,6358))
# Davolink DV-201AMR
$(eval $(call ImageDTB,OLDCFEDTB,DV201AMR,DV-201AMR,dv-201amr,DV201AMR,6348))
$(eval $(call bcm63xxCfeOld,DV201AMR,DV-201AMR,dv-201amr,DV201AMR,6348))
# Dynalink RTA770BW (Siemens SE515)
$(eval $(call ImageDTB,Dummy,RTA770BW,RTA770BW,rta770bw,RTA770BW,6345,--layoutver 5))
$(eval $(call bcm63xxCfeRamdisk,RTA770BW,RTA770BW,rta770bw,RTA770BW,6345,--layoutver 5))
# Dynalink RTA770W
$(eval $(call ImageDTB,Dummy,RTA770W,RTA770W,rta770w,RTA770W,6345,--layoutver 5))
$(eval $(call bcm63xxCfeRamdisk,RTA770W,RTA770W,rta770w,RTA770W,6345,--layoutver 5))
# Dynalink RTA1025W (numerous routers)
$(eval $(call ImageDTB,CFEDTB,RTA1025W,RTA1025W_16,rta1025w,RTA1025W_16,6348,--layoutver 5))
$(eval $(call bcm63xxCfe,RTA1025W,RTA1025W_16,rta1025w,RTA1025W_16,6348,--layoutver 5))
# Dynalink RTA1320 (numerous routers)
$(eval $(call ImageDTB,CFEDTB,RTA1320,RTA1320_16M,rta1320,RTA1320_16M,6338,--layoutver 5))
$(eval $(call bcm63xxCfe,RTA1320,RTA1320_16M,rta1320,RTA1320_16M,6338,--layoutver 5))
# Huawei HG520v
$(eval $(call ImageDTB,CFEDTB,HG520v,HG520v,hg520v,HW6358GW_B,6358,--rsa-signature "EchoLife_HG520v"))
$(eval $(call bcm63xxCfe,HG520v,HG520v,hg520v,HW6358GW_B,6358,--rsa-signature "EchoLife_HG520v"))
# Huawei HG553
$(eval $(call ImageDTB,CFEDTB,HG553,HG553,hg553,HW553,6358,--rsa-signature "EchoLife_HG553" --image-offset 0x20000 --block-size 0x20000 --tag-version 7))
$(eval $(call bcm63xxCfe,HG553,HG553,hg553,HW553,6358,--rsa-signature "EchoLife_HG553" --image-offset 0x20000 --block-size 0x20000 --tag-version 7))
# Huawei HG556a
$(eval $(call ImageDTB,CFEDTB,HG556a_AB,HG556a_A,hg556a-a,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x10000 --tag-version 8))
$(eval $(call ImageDTB,CFEDTB,HG556a_AB,HG556a_B,hg556a-b,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8))
$(eval $(call ImageDTB,CFEDTB,HG556a_C,HG556a_C,hg556a-c,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8))
$(eval $(call bcm63xxCfe,HG556a_AB,HG556a_A,hg556a-a,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x10000 --tag-version 8))
$(eval $(call bcm63xxCfe,HG556a_AB,HG556a_B,hg556a-b,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8))
$(eval $(call bcm63xxCfe,HG556a_C,HG556a_C,hg556a-c,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8))
# Huawei HG655b
$(eval $(call ImageDTB,CFEDTB,HG655b,HG655b,hg655b,HW65x,6368,--image-offset 0x20000 --tag-version 7 --pad 4))
$(eval $(call bcm63xxCfe,HG655b,HG655b,hg655b,HW65x,6368,--image-offset 0x20000 --tag-version 7 --pad 4))
# Inteno VG50
$(eval $(call ImageDTB,Dummy,VG50,vg50,vg50,VW6339GU,63268))
$(eval $(call bcm63xxCfeRamdisk,VG50,vg50,vg50,VW6339GU,63268))
# Inventel Livebox 1
$(eval $(call ImageDTB,RedBootDTB,Livebox,livebox,livebox-blue-5g))
$(eval $(call bcm63xxRedBoot,Livebox,livebox,livebox-blue-5g))
# Netgear CVG834G
$(eval $(call ImageDTB,Dummy,CVG834G,cvg834g,cvg834g,a020,0001,0022,vmlinux-cvg834g))
$(eval $(call bcm33xxHcsRamdisk,CVG834G,cvg834g,cvg834g,a020,0001,0022))
# Netgear DG834GT/PN
$(eval $(call ImageDTB,CFEDTB,DG834GTPN,DG834GT_PN,dg834gtpn,96348GW-10,6348))
$(eval $(call bcm63xxCfe,DG834GTPN,DG834GT_PN,dg834gtpn,96348GW-10,6348))
# Netgear DG834G v4
$(eval $(call ImageDTB,Dummy,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348))
# Netgear DGND3700 v1 / DGND3800B
$(eval $(call ImageDTB,CFEDTB,DGND3700v1_3800B,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000))
#Netgear DGND3700 v1 factory firmware
$(eval $(call ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3700v1,,DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1))
#Netgear DGND3800B factory firmware
$(eval $(call ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3800B,,DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1))
$(eval $(call bcm63xxCfeRamdisk,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348))
# Netgear DGND3700 v1
$(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3700v1,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T01_NETGEAR_NEWLED,1))
# Netgear DGND3800B
$(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T11_NETGEAR_NEWLED,1))
# Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
$(eval $(call ImageDTB,CFEDTB,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
$(eval $(call bcm63xxCfe,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
# Pirelli A226G
$(eval $(call ImageDTB,CFEDTB,A226G,A226G,a226g,DWV-S0,6358,--signature2 IMAGE --tag-version 8))
$(eval $(call bcm63xxCfe,A226G,A226G,a226g,DWV-S0,6358,--signature2 IMAGE --tag-version 8))
# Pirelli A226M/A226M-FWB
$(eval $(call ImageDTB,CFEDTB,A226M,A226M,a226m,DWV-S0,6358,--signature2 IMAGE --tag-version 8))
$(eval $(call ImageDTB,CFEDTB,A226M,A226M-FWB,a226m-fwb,DWV-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
$(eval $(call bcm63xxCfe,A226M,A226M,a226m,DWV-S0,6358,--signature2 IMAGE --tag-version 8))
$(eval $(call bcm63xxCfe,A226M,A226M-FWB,a226m-fwb,DWV-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
# Sagem F@ST2404
$(eval $(call ImageDTB,CFEDTB,FAST2404,F@ST2404,fast2404,F@ST2404,6348))
$(eval $(call bcm63xxCfe,FAST2404,F@ST2404,fast2404,F@ST2404,6348))
# Sagem F@ST2504n
$(eval $(call ImageDTB,CFEDTB,FAST2504n,F@ST2504n,fast2504n,F@ST2504n,6362))
$(eval $(call bcm63xxCfe,FAST2504n,F@ST2504n,fast2504n,F@ST2504n,6362))
# Sagem F@ST2604
$(eval $(call ImageDTB,CFEDTB,FAST2604,F@ST2604,fast2604,F@ST2604,6348))
$(eval $(call bcm63xxCfe,FAST2604,F@ST2604,fast2604,F@ST2604,6348))
# Sagem F@ST2704V2
$(eval $(call ImageDTB,CFEDTB,FAST2704V2,F@ST2704V2,fast2704v2,F@ST2704V2,6328))
$(eval $(call bcm63xxCfe,FAST2704V2,F@ST2704V2,fast2704v2,F@ST2704V2,6328))
# SFR Neufbox 4
$(eval $(call ImageDTB,CFEDTB,Neufbox4,NEUFBOX4-SER,nb4-ser-r0,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
$(eval $(call ImageDTB,CFEDTB,Neufbox4,NEUFBOX4-FXC,nb4-fxc-r1,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
$(eval $(call bcm63xxCfe,Neufbox4,NEUFBOX4-SER,nb4-ser-r0,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
$(eval $(call bcm63xxCfe,Neufbox4,NEUFBOX4-FXC,nb4-fxc-r1,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
# SFR Neufbox 6
$(eval $(call ImageDTB,CFEDTB,Neufbox6,NEUFBOX6,nb6-ser-r0,NB6-SER-r0,6362,--rsa-signature "OpenWRT-$(REVISION)"))
$(eval $(call bcm63xxCfe,Neufbox6,NEUFBOX6,nb6-ser-r0,NB6-SER-r0,6362,--rsa-signature "OpenWRT-$(REVISION)"))
# T-Com Speedport W 303V Typ B
$(eval $(call ImageDTB,SPW303VCFEDTB,SPW303V,SPW303V,spw303v,96358-502V,6358,--pad 4))
$(eval $(call bcm63xxCfeSpw303v,SPW303V,SPW303V,spw303v,96358-502V,6358,--pad 4))
# T-Com Speedport W 500V
$(eval $(call ImageDTB,CFEDTB,SPW500V,SPW500V,spw500v,96348GW,6348))
$(eval $(call bcm63xxCfe,SPW500V,SPW500V,spw500v,96348GW,6348))
# Tecom GW6000
$(eval $(call ImageDTB,CFEDTB,GW6000,GW6000,gw6000,96348GW,6348))
$(eval $(call bcm63xxCfe,GW6000,GW6000,gw6000,96348GW,6348))
# Tecom GW6200
$(eval $(call ImageDTB,CFEDTB,GW6200,GW6200,gw6200,96348GW,6348,--rsa-signature "$(shell printf '\x99')"))
$(eval $(call bcm63xxCfe,GW6200,GW6200,gw6200,96348GW,6348,--rsa-signature "$(shell printf '\x99')"))
# Telsey CPVA502+
$(eval $(call ImageDTB,Dummy,CPVA502PLUS,CVPA502PLUS,cpva502plus,CPVA502+,6348,--signature "Telsey Tlc" --signature2 "99.99.999" --second-image-flag "0"))
$(eval $(call bcm63xxCfeRamdisk,CPVA502PLUS,CVPA502PLUS,cpva502plus,CPVA502+,6348,--signature "Telsey Tlc" --signature2 "99.99.999" --second-image-flag "0"))
# Telsey CPVA642-type (e.g. CPA-ZNTE60T)
$(eval $(call ImageDTB,CFEDTB,CPVA642,CPA-ZNTE60T,cpva642,CPVA642,6358,--signature "Telsey Tlc" --signature2 "99.99.999" --second-image-flag "0" --pad 4))
$(eval $(call bcm63xxCfe,CPVA642,CPA-ZNTE60T,cpva642,CPVA642,6358,--signature "Telsey Tlc" --signature2 "99.99.999" --second-image-flag "0" --pad 4))
# Telsey MAGIC (Alice W-Gate)
$(eval $(call ImageDTB,Dummy,MAGIC,MAGIC,magic,MAGIC,6348))
$(eval $(call bcm63xxCfeRamdisk,MAGIC,MAGIC,magic,MAGIC,6348))
# TP-Link TD-W8900GB
$(eval $(call ImageDTB,CFEDTB,TDW8900GB,TD-W8900GB,td-w8900gb,96348GW-11,6348,--rsa-signature "$(shell printf 'PRID\x89\x10\x00\x02')" --image-offset 0x20000))
$(eval $(call bcm63xxCfe,TDW8900GB,TD-W8900GB,td-w8900gb,96348GW-11,6348,--rsa-signature "$(shell printf 'PRID\x89\x10\x00\x02')" --image-offset 0x20000))
# USRobotics 9108
$(eval $(call ImageDTB,CFEDTB,USR9108,USR9108,usr9108,96348GW-A,6348))
$(eval $(call bcm63xxCfe,USR9108,USR9108,usr9108,96348GW-A,6348))
# ZyXEL P870HW-51a v2
$(eval $(call ImageDTB,ZYXCFEDTB,P870HW_51a_v2,P870HW-51a_v2,p870hw-51a-v2,96368VVW,6368,--rsa-signature "ZyXEL" --signature "ZyXEL_0001"))
$(eval $(call bcm63xxCfeZyxel,P870HW_51a_v2,P870HW-51a_v2,p870hw-51a-v2,96368VVW,6368,--rsa-signature "ZyXEL" --signature "ZyXEL_0001"))
$(eval $(call BuildImage))