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:
parent
5a62d503d9
commit
ef78a63997
1 changed files with 499 additions and 262 deletions
|
@ -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.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -26,6 +26,73 @@ RELOCATE_MAKEOPTS= \
|
||||||
CROSS_COMPILE=$(TARGET_CROSS) \
|
CROSS_COMPILE=$(TARGET_CROSS) \
|
||||||
LZMA_TEXT_START=$(LOADER_ENTRY)
|
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
|
define rootfspad/jffs2-128k
|
||||||
--align-rootfs
|
--align-rootfs
|
||||||
endef
|
endef
|
||||||
|
@ -39,379 +106,549 @@ define Image/LimitName16
|
||||||
$(shell expr substr "$(1)" 1 16)
|
$(shell expr substr "$(1)" 1 16)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_DTBS:=
|
define Image/FileSystemStrip
|
||||||
TARGET_IMAGES:=
|
$(subst root.,,$(notdir $(1)))
|
||||||
|
|
||||||
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)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/OLDCFEDTB
|
define Build/cfe-bin
|
||||||
# Generate the tagged image
|
$(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 \
|
$(TOPDIR)/scripts/brcmImage.pl -t -p \
|
||||||
-b $(4) -c $(5) -e $(LOADER_ENTRY) -a $(LOADER_ENTRY) \
|
-o $@ -b $(CFE_BOARD_ID) -c $(CFE_CHIP_ID) \
|
||||||
-k $(KDIR)/vmlinux-$(3).lzma.cfe -r $(KDIR)/root.$(1) \
|
-e $(LOADER_ENTRY) -a $(LOADER_ENTRY) \
|
||||||
-o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-cfe.bin $(6)
|
-k $(word 1,$^) -r $(word 2,$^) \
|
||||||
|
$(CFE_EXTRAS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/SPW303VCFEDTB
|
define Build/cfe-spw303v-bin
|
||||||
# Generate the tagged image
|
$(STAGING_DIR_HOST)/bin/imagetag -i $(word 1,$^) -f $(word 2,$^) \
|
||||||
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux-$(3).lzma.cfe -f $(KDIR)/root.$(1) \
|
--output $@ --boardid $(CFE_BOARD_ID) --chipid $(CFE_CHIP_ID) \
|
||||||
--output $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
|
--entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \
|
||||||
--boardid $(4) --chipid $(5) --entry $(LOADER_ENTRY) \
|
$(call rootfspad/$(call Image/FileSystemStrip,$(word 2,$^))) \
|
||||||
$(call rootfspad/$(1)) \
|
$(CFE_EXTRAS)
|
||||||
--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
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/ZYXCFEDTB
|
define Build/netgear-chk
|
||||||
# Generate the tagged image
|
$(STAGING_DIR_HOST)/bin/mkchkimg -o $@.netgear -k $@ \
|
||||||
$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux-$(3).lzma.cfe -f $(KDIR)/root.$(1) \
|
-b $(NETGEAR_ID) -r $(NETGEAR_REGION)
|
||||||
--output $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).tmp \
|
mv $@.netgear $@
|
||||||
--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
|
|
||||||
endef
|
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
|
# Prepare kernel and rootfs
|
||||||
cat $(KDIR)/vmlinux $(DTS_DIR)/$(3).dtb > $(KDIR)/vmlinux-$(3)
|
dd if=$(word 1,$^) of=$(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz bs=65536 conv=sync
|
||||||
gzip -9n -c $(KDIR)/vmlinux-$(3) > $(KDIR)/vmlinux-$(3).bin.gz
|
dd if=$(word 2,$^) of=$(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^)) bs=64k conv=sync
|
||||||
dd if=$(KDIR)/vmlinux-$(3).bin.gz of=$(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz bs=65536 conv=sync
|
echo -ne \\xDE\\xAD\\xC0\\xDE >> $(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^))
|
||||||
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"
|
|
||||||
# Generate the scripted image
|
# Generate the scripted image
|
||||||
$(TOPDIR)/scripts/redboot-script.pl \
|
$(TOPDIR)/scripts/redboot-script.pl \
|
||||||
-k $(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz \
|
-k $(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz \
|
||||||
-r $(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs \
|
-r $(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^)) \
|
||||||
-a $(strip $(LOADADDR)) -f 0xbe430000 -l 0x7c0000 \
|
-a $(strip $(LOADADDR)) -f 0xbe430000 -l 0x7c0000 \
|
||||||
-s 0x1000 -t 20 -o $(BIN_DIR)/redbootscript
|
-s 0x1000 -t 20 -o $@.redbootscript
|
||||||
dd if="$(BIN_DIR)/redbootscript" of="$(BIN_DIR)/redbootscript.padded" bs=4096 conv=sync
|
dd if="$@.redbootscript" of="$@.redbootscript.padded" bs=4096 conv=sync
|
||||||
cat \
|
cat \
|
||||||
"$(BIN_DIR)/redbootscript.padded" \
|
"$@.redbootscript.padded" \
|
||||||
"$(BIN_DIR)/$(IMG_PREFIX)-$(2)-vmlinux.gz" \
|
"$(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz" \
|
||||||
"$(BIN_DIR)/$(IMG_PREFIX)-$(2)-root.squashfs" \
|
"$(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(word 2,$^))" \
|
||||||
> "$(BIN_DIR)/$(IMG_PREFIX)-$(2)-redboot.bin"
|
> "$@"
|
||||||
rm -f $(BIN_DIR)/redbootscript $(BIN_DIR)/redbootscript.padded
|
|
||||||
rm -f $(KDIR)/vmlinux-$(3)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/HCSDTB
|
# Shared device definition: applies to every defined device
|
||||||
# Generate the image
|
define Device/Default
|
||||||
$(STAGING_DIR_HOST)/bin/hcsmakeimage --magic_byte=$(4) \
|
PROFILES = Default $$(DEVICE_PROFILE)
|
||||||
--rev_maj=$(5) --rev_min=$(6) --input_file=$(KDIR)/$(7) \
|
KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX).elf
|
||||||
--output_file=$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).bin \
|
DEVICE_PROFILE :=
|
||||||
--ldaddress=$(LOADADDR)
|
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
|
endef
|
||||||
|
|
||||||
define Image/Build/ChkDTB
|
# BCM63xx CFE devices: only generates ramdisks (unsupported bin images)
|
||||||
# Generate Netgear factory image
|
define Device/bcm63xxCfeRamdisk
|
||||||
$(STAGING_DIR_HOST)/bin/mkchkimg -o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-factory.chk \
|
$(Device/bcm63xxCfeCommon)
|
||||||
-k $(BIN_DIR)/$(IMG_PREFIX)-$(4)-$(1)-cfe.bin -b $(5) -r $(6)
|
IMAGES :=
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/Dummy
|
# BCM63xx CFE devices: both ramdisks and parallel/spi bin images
|
||||||
# for boards without a flashable image yet
|
# New versions of CFE bootloader compatible with imagetag
|
||||||
true
|
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
|
endef
|
||||||
|
|
||||||
define Build/Clean
|
# BCM63xx CFE MultiFlash devices: both ramdisks and parallel/spi bin images
|
||||||
$(MAKE) -C lzma-loader clean
|
# 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
|
endef
|
||||||
|
|
||||||
define Image/PrepareLoader
|
# BCM63xx CFE NETGEAR devices: both ramdisks and parallel/spi bin images
|
||||||
# Standard LZMA kernel
|
# factory.chk: netgear images for bootloader/original firmware upgrades
|
||||||
$(STAGING_DIR_HOST)/bin/lzma e -d22 -fb64 -a1 $(KDIR)/vmlinux$(1) $(KDIR)/vmlinux$(1).lzma
|
# 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
|
# BCM63xx Old CFE devices: both ramdisks and parallel/spi bin images
|
||||||
rm -rf $(KDIR)/lzma-loader
|
# Old versions of CFE bootloader not compatible with imagetag
|
||||||
$(MAKE) -C lzma-loader \
|
define Device/bcm63xxCfeOld
|
||||||
$(LOADER_MAKEOPTS) \
|
$(Device/bcm63xxCfeCommon)
|
||||||
BUILD_DIR="$(KDIR)" \
|
IMAGES := cfe-old.bin
|
||||||
TARGET_DIR="$(2)" \
|
IMAGE/cfe-old.bin := cfe-old-bin
|
||||||
LOADER_DATA="$(KDIR)/vmlinux$(1).lzma" \
|
CFE_BOARD_ID :=
|
||||||
LOADER=$(IMG_PREFIX)-loader$(1) \
|
CFE_CHIP_ID :=
|
||||||
compile $(3)
|
CFE_EXTRAS :=
|
||||||
|
|
||||||
rm -f $(KDIR)/vmlinux$(1).lzma
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/PrepareLoaderDTB
|
# BCM63xx CFE SPW303V devices: both ramdisks and parallel/spi bin images
|
||||||
# append dtb to vmlinux, then build a standard LZMA loader
|
# factory.bin: SPW303V images for bootloader/original firmware upgrades
|
||||||
cat $(KDIR)/vmlinux$(1) $(DTS_DIR)/$(2).dtb > $(KDIR)/vmlinux$(1)-$(2)
|
# sysupgrade.bin: openwrt images for sysupgrades
|
||||||
$(call Image/PrepareLoader,$(1)-$(2),$(3),$(4))
|
define Device/bcm63xxCfeSpw303v
|
||||||
rm -f $(KDIR)/vmlinux$(1)-$(2)
|
$(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
|
endef
|
||||||
|
|
||||||
define Image/PrepareCFELzmaKernel
|
# BCM63xx CFE ZyXEL devices: both ramdisks and parallel/spi bin images
|
||||||
# CFE only allows ~4 MiB for the uncompressed kernels, but uncompressed
|
# factory.bin: ZyXEL specific CFE images (sysupgrade compatible)
|
||||||
# kernel might get larger than that, so let CFE unpack and load at a
|
define Device/bcm63xxCfeZyxel
|
||||||
# higher address and make the kernel relocate itself to the expected
|
$(Device/bcm63xxCfeCommon)
|
||||||
# location.
|
IMAGES := factory.bin
|
||||||
( \
|
IMAGE/factory.bin := cfe-bin | zyxel-bin
|
||||||
dd if=$(KDIR)/relocate/loader.bin bs=32 conv=sync && \
|
CFE_BOARD_ID :=
|
||||||
perl -e '@s = stat("$(KDIR)/vmlinux$(1)"); print pack("N", @s[7])' && \
|
CFE_CHIP_ID :=
|
||||||
cat $(KDIR)/vmlinux$(1) \
|
CFE_EXTRAS :=
|
||||||
) > $(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)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/PrepareCFELzmaKernelDTB
|
# BCM63xx RedBoot devices: both ramdisks and parallel/spi bin images
|
||||||
# compile the dts (the dtb will be later reused for the lzma loader)
|
# Generates images compatible with RedBoot bootloader
|
||||||
$(call Image/BuildDTB,../dts/$(1).dts,$(DTS_DIR)/$(1).dtb)
|
define Device/bcm63xxRedBoot
|
||||||
cat $(KDIR)/vmlinux $(DTS_DIR)/$(1).dtb > $(KDIR)/vmlinux-$(1)
|
FILESYSTEMS := squashfs
|
||||||
$(call Image/PrepareCFELzmaKernel,-$(1))
|
KERNEL := kernel-bin | append-dtb | gzip
|
||||||
rm -f $(KDIR)/vmlinux-$(1)
|
IMAGES := redboot.bin
|
||||||
|
IMAGE/redboot.bin := redboot-bin
|
||||||
|
REDBOOT_PREFIX := $$(IMAGE_PREFIX)
|
||||||
endef
|
endef
|
||||||
|
DEVICE_VARS += REDBOOT_PREFIX
|
||||||
|
|
||||||
define Image/Prepare
|
### Device macros ###
|
||||||
# build relocation code first
|
# $(1) = profile
|
||||||
rm -rf $(KDIR)/relocate
|
# $(2) = image name
|
||||||
$(CP) ../../generic/image/relocate $(KDIR)
|
# $(3) = dts
|
||||||
$(MAKE) -C $(KDIR)/relocate $(RELOCATE_MAKEOPTS)
|
# $(4) = hcs magic bytes
|
||||||
|
# $(5) = hcs rev min
|
||||||
$(foreach board,$(sort $(TARGET_$(PROFILE)_DTBS)), $(call Image/PrepareCFELzmaKernelDTB,$(board)))
|
# $(6) = hcs rev major
|
||||||
|
define bcm33xxHcsRamdisk
|
||||||
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
|
define Device/$(2)
|
||||||
$(foreach board,$(sort $(TARGET_$(PROFILE)_DTBS)), \
|
$$(Device/bcm33xxHcsRamdisk)
|
||||||
$(call Image/PrepareLoaderDTB,-initramfs,$(board),$(BIN_DIR),loader.elf))
|
DEVICE_PROFILE := $(1)
|
||||||
ifneq (,$(findstring cvg834g,$(TARGET_$(PROFILE)_DTBS)))
|
DEVICE_NAME := $(2)
|
||||||
$(call Image/PrepareLoaderDTB,-initramfs,cvg834g,$(KDIR),loader.bin)
|
DEVICE_DTS := $(3)
|
||||||
endif
|
HCS_MAGIC_BYTES := $(4)
|
||||||
endif
|
HCS_REV_MIN := $(5)
|
||||||
endef
|
HCS_REV_MAJ := $(6)
|
||||||
|
|
||||||
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))
|
|
||||||
endef
|
endef
|
||||||
|
TARGET_DEVICES += $(2)
|
||||||
TARGET_Default_DTBS += $(4)
|
|
||||||
TARGET_Default_IMAGES += $(3)
|
|
||||||
TARGET_$(2)_DTBS += $(4)
|
|
||||||
TARGET_$(2)_IMAGES += $(3)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build
|
# $(1) = profile
|
||||||
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
|
# $(2) = image name
|
||||||
|
# $(3) = dts
|
||||||
# build dtb image list
|
define bcm63xxCfeRamdisk
|
||||||
$(foreach image,$(TARGET_$(PROFILE)_IMAGES),$(call Image/Build/$(image),$(1)))
|
define Device/$(2)
|
||||||
|
$$(Device/bcm63xxCfeRamdisk)
|
||||||
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
|
DEVICE_PROFILE := $(1)
|
||||||
$(call Image/Build/Initramfs)
|
DEVICE_NAME := $(2)
|
||||||
endif
|
DEVICE_DTS := $(3)
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += $(2)
|
||||||
endef
|
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
|
# Generic 963281TAN
|
||||||
$(eval $(call ImageDTB,CFEDTB,963281TAN,963281TAN-4M-flash-generic,bcm963281TAN,963281TAN,6328,--pad 2))
|
$(eval $(call bcm63xxCfeMultiFlash,963281TAN,963281TAN-generic,bcm963281TAN,963281TAN,6328))
|
||||||
$(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))
|
|
||||||
# Generic 96328avng
|
# Generic 96328avng
|
||||||
$(eval $(call ImageDTB,CFEDTB,96328avng,96328avng-4M-flash-generic,bcm96328avng,96328avng,6328,--pad 2))
|
$(eval $(call bcm63xxCfeMultiFlash,96328avng,96328avng-generic,bcm96328avng,96328avng,6328))
|
||||||
$(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))
|
|
||||||
# Generic 96338GW
|
# Generic 96338GW
|
||||||
$(eval $(call ImageDTB,CFEDTB,96338GW,96338GW-generic,bcm96338GW,6338GW,6338))
|
$(eval $(call bcm63xxCfe,96338GW,96338GW-generic,bcm96338GW,6338GW,6338))
|
||||||
# Generic 96338W
|
# Generic 96338W
|
||||||
$(eval $(call ImageDTB,CFEDTB,96338W,96338W-generic,bcm96338W,6338W,6338))
|
$(eval $(call bcm63xxCfe,96338W,96338W-generic,bcm96338W,6338W,6338))
|
||||||
# Generic 96345GW2
|
# Generic 96345GW2
|
||||||
$(eval $(call ImageDTB,CFEDTB,96345GW2,96345GW2-generic,bcm96345GW2,96345GW2,6345))
|
$(eval $(call bcm63xxCfeBc221,96345GW2,96345GW2-generic,bcm96345GW2,96345GW2,6345))
|
||||||
$(eval $(call ImageDTB,CFEDTB,96345GW2,96345GW2-bc221,bcm96345GW2,96345GW2,6345,--layoutver 5))
|
|
||||||
# Generic 96348GW
|
# Generic 96348GW
|
||||||
$(eval $(call ImageDTB,CFEDTB,96348GW,96348GW-generic,bcm96348GW,96348GW,6348))
|
$(eval $(call bcm63xxCfeBc221,96348GW,96348GW-generic,bcm96348GW,96348GW,6348))
|
||||||
$(eval $(call ImageDTB,CFEDTB,96348GW,96348GW-bc221,bcm96348GW,96348GW,6348,--layoutver 5))
|
|
||||||
# Generic 96348GW-10
|
# 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
|
# 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
|
# Generic 96348R
|
||||||
$(eval $(call ImageDTB,CFEDTB,96348R,96348R-generic,bcm96348R,96348R,6348))
|
$(eval $(call bcm63xxCfe,96348R,96348R-generic,bcm96348R,96348R,6348))
|
||||||
# Generic 96358VW
|
# Generic 96358VW
|
||||||
$(eval $(call ImageDTB,CFEDTB,96358VW,96358VW-generic,bcm96358VW,96358VW,6358))
|
$(eval $(call bcm63xxCfe,96358VW,96358VW-generic,bcm96358VW,96358VW,6358))
|
||||||
# Generic 96358VW2
|
# Generic 96358VW2
|
||||||
$(eval $(call ImageDTB,CFEDTB,96358VW2,96358VW2-generic,bcm96358VW2,96358VW2,6358))
|
$(eval $(call bcm63xxCfe,96358VW2,96358VW2-generic,bcm96358VW2,96358VW2,6358))
|
||||||
# Generic 96368MVNgr
|
# Generic 96368MVNgr
|
||||||
$(eval $(call ImageDTB,CFEDTB,96368MVNgr,96368MVNgr-generic,bcm96368MVNgr,96368MVNgr,6368))
|
$(eval $(call bcm63xxCfe,96368MVNgr,96368MVNgr-generic,bcm96368MVNgr,96368MVNgr,6368))
|
||||||
# Generic 96368MVWG
|
# 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
|
# 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
|
# 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
|
# 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
|
# Asmax AR 1004g
|
||||||
$(eval $(call ImageDTB,CFEDTB,AR1004G,AR1004G,ar1004g,96348GW-10,6348))
|
$(eval $(call bcm63xxCfe,AR1004G,AR1004G,ar1004g,96348GW-10,6348))
|
||||||
# Belkin F5D7633
|
# 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
|
# Broadcom BCM96318REF
|
||||||
$(eval $(call ImageDTB,Dummy,BCM96318REF,BCM96318REF,bcm96318ref,96318REF,6318))
|
$(eval $(call bcm63xxCfeRamdisk,BCM96318REF,BCM96318REF,bcm96318ref,96318REF,6318))
|
||||||
# Broadcom BCM96318REF_P300
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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
|
# 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 bcm63xxCfe,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-AU,dsl-274xb-f,AW4339U,6328,--signature2 "4.06.01.AUF1" --pad 4))
|
||||||
# D-Link DSL-2750B/DSL-2751, rev D1
|
# 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
|
# 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
|
# 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)
|
# 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
|
# 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)
|
# 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)
|
# 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
|
# 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
|
# 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
|
# 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 bcm63xxCfe,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 bcm63xxCfe,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_C,HG556a_C,hg556a-c,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8))
|
||||||
# Huawei HG655b
|
# 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
|
# Inteno VG50
|
||||||
$(eval $(call ImageDTB,Dummy,VG50,vg50,vg50,VW6339GU,63268))
|
$(eval $(call bcm63xxCfeRamdisk,VG50,vg50,vg50,VW6339GU,63268))
|
||||||
# Inventel Livebox 1
|
# Inventel Livebox 1
|
||||||
$(eval $(call ImageDTB,RedBootDTB,Livebox,livebox,livebox-blue-5g))
|
$(eval $(call bcm63xxRedBoot,Livebox,livebox,livebox-blue-5g))
|
||||||
# Netgear CVG834G
|
# 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
|
# 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
|
# Netgear DG834G v4
|
||||||
$(eval $(call ImageDTB,Dummy,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348))
|
$(eval $(call bcm63xxCfeRamdisk,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348))
|
||||||
# Netgear DGND3700 v1 / DGND3800B
|
# Netgear DGND3700 v1
|
||||||
$(eval $(call ImageDTB,CFEDTB,DGND3700v1_3800B,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000))
|
$(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3700v1,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T01_NETGEAR_NEWLED,1))
|
||||||
#Netgear DGND3700 v1 factory firmware
|
# Netgear DGND3800B
|
||||||
$(eval $(call ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3700v1,,DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1))
|
$(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T11_NETGEAR_NEWLED,1))
|
||||||
#Netgear DGND3800B factory firmware
|
|
||||||
$(eval $(call ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3800B,,DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1))
|
|
||||||
# Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
|
# 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
|
# 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
|
# Pirelli A226M/A226M-FWB
|
||||||
$(eval $(call ImageDTB,CFEDTB,A226M,A226M,a226m,DWV-S0,6358,--signature2 IMAGE --tag-version 8))
|
$(eval $(call bcm63xxCfe,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-FWB,a226m-fwb,DWV-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
|
||||||
# Sagem F@ST2404
|
# 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
|
# 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
|
# 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
|
# 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
|
# SFR Neufbox 4
|
||||||
$(eval $(call ImageDTB,CFEDTB,Neufbox4,NEUFBOX4-SER,nb4-ser-r0,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
|
$(eval $(call bcm63xxCfe,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-FXC,nb4-fxc-r1,96358VW,6358,--rsa-signature "OpenWRT-$(REVISION)"))
|
||||||
# SFR Neufbox 6
|
# 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
|
# 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
|
# T-Com Speedport W 500V
|
||||||
$(eval $(call ImageDTB,CFEDTB,SPW500V,SPW500V,spw500v,96348GW,6348))
|
$(eval $(call bcm63xxCfe,SPW500V,SPW500V,spw500v,96348GW,6348))
|
||||||
# Tecom GW6000
|
# Tecom GW6000
|
||||||
$(eval $(call ImageDTB,CFEDTB,GW6000,GW6000,gw6000,96348GW,6348))
|
$(eval $(call bcm63xxCfe,GW6000,GW6000,gw6000,96348GW,6348))
|
||||||
# Tecom GW6200
|
# 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+
|
# 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)
|
# 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)
|
# 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
|
# 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
|
# 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
|
# 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))
|
$(eval $(call BuildImage))
|
||||||
|
|
Loading…
Reference in a new issue