@ -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)
d e f i n e B u i l d / C o m p i l e
rm -rf $( KDIR) /relocate
$( CP) ../../generic/image/relocate $( KDIR)
$( MAKE) -C $( KDIR) /relocate $( RELOCATE_MAKEOPTS)
e n d e f
### Kernel scripts ###
d e f i n e B u i l d / a p p e n d - d t b
$( call Image/BuildDTB,../dts/$( DEVICE_DTS) .dts,$@ .dtb)
cat $@ .dtb >> $@
e n d e f
d e f i n e B u i l d / g z i p
gzip -9 -c $@ > $@ .gz
mv $@ .gz $@
e n d e f
d e f i n e B u i l d / h c s - i n i t r a m f s
$( 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 $@
e n d e f
d e f i n e B u i l d / l o a d e r - l z m a
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
e n d e f
d e f i n e B u i l d / l z m a
# 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 $@
e n d e f
d e f i n e B u i l d / l z m a - c f e
# 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 $@
e n d e f
d e f i n e B u i l d / r e l o c a t e - k e r n e l
# 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 $@
e n d e f
### Image scripts ###
d e f i n e r o o t f s p a d / j f f s 2 - 1 2 8 k
- - a l i g n - r o o t f s
e n d e f
@ -39,379 +106,549 @@ define Image/LimitName16
$( shell expr substr "$ ( 1) " 1 16)
e n d e f
TARGET_DTBS :=
TARGET_IMAGES :=
TARGET_Default_DTBS :=
TARGET_Default_IMAGES :=
d e f i n e I m a g e / F i l e S y s t e m S t r i p
$( subst root .,,$ ( notdir $ ( 1) ) )
e n d e f
d e f i n e I m a g e / B u i l d / C F E D T B
# 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 )
d e f i n e B u i l d / c f e - b i n
$( 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)
e n d e f
d e f i n e I m a g e / B u i l d / O L D C F E D T B
# Generate the tagged image
d e f i n e B u i l d / c f e - o l d - b i n
$( 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)
e n d e f
d e f i n e I m a g e / B u i l d / S P W 3 0 3 V C F E D T B
# 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
e n d e f
d e f i n e I m a g e / B u i l d / Z Y X C F E D T B
# 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
e n d e f
d e f i n e I m a g e / B u i l d / R e d B o o t D T B
-o $@ -b $( CFE_BOARD_ID) -c $( CFE_CHIP_ID) \
-e $( LOADER_ENTRY) -a $( LOADER_ENTRY) \
-k $( word 1,$^) -r $( word 2,$^) \
$( CFE_EXTRAS)
e n d e f
d e f i n e B u i l d / c f e - s p w 3 0 3 v - b i n
$( 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)
e n d e f
d e f i n e B u i l d / n e t g e a r - c h k
$( STAGING_DIR_HOST) /bin/mkchkimg -o $@ .netgear -k $@ \
-b $( NETGEAR_ID) -r $( NETGEAR_REGION)
mv $@ .netgear $@
e n d e f
d e f i n e B u i l d / s p w 3 0 3 v - b i n
$( STAGING_DIR_HOST) /bin/spw303v -i $@ -o $@ .spw303v
mv $@ .spw303v $@
e n d e f
d e f i n e B u i l d / x o r - i m a g e
$( STAGING_DIR_HOST) /bin/xorimage -i $@ -o $@ .xor
mv $@ .xor $@
e n d e f
d e f i n e B u i l d / z y x e l - b i n
$( STAGING_DIR_HOST) /bin/zyxbcm -i $@ -o $@ .zyxel
mv $@ .zyxel $@
e n d e f
d e f i n e B u i l d / r e d b o o t - b i n
# 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,$^) ) " \
> " $@ "
e n d e f
d e f i n e I m a g e / B u i l d / H C S D T B
# 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
d e f i n e D e v i c e / D e f a u l t
PROFILES = Default $$ ( DEVICE_PROFILE)
KERNEL_INITRAMFS_IMAGE = $$ ( KERNEL_INITRAMFS_PREFIX) .elf
DEVICE_PROFILE :=
DEVICE_NAME :=
DEVICE_DTS :=
e n d e f
DEVICE_VARS += DEVICE_PROFILE DEVICE_NAME DEVICE_DTS
# BCM33xx HCS devices: only generates ramdisks (unsupported bin images)
d e f i n e D e v i c e / b c m 3 3 x x H c s R a m d i s k
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-lzma bin | hcs-initramfs
IMAGES :=
HCS_MAGIC_BYTES :=
HCS_REV_MIN :=
HCS_REV_MAJ :=
e n d e f
DEVICE_VARS += HCS_MAGIC_BYTES HCS_REV_MIN HCS_REV_MAJ
d e f i n e I m a g e / B u i l d / C h k D T B
# 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)
# Shared BCM63xx CFE device definitios
d e f i n e D e v i c e / b c m 6 3 x x C f e C o m m o n
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
e n d e f
d e f i n e I m a g e / B u i l d / D u m m y
# for boards without a flashable image yet
true
# BCM63xx CFE devices: only generates ramdisks (unsupported bin images)
d e f i n e D e v i c e / b c m 6 3 x x C f e R a m d i s k
$( Device/bcm63xxCfeCommon)
IMAGES :=
e n d e f
d e f i n e B u i l d / C l e a n
$( MAKE) -C lzma-loader clean
# BCM63xx CFE devices: both ramdisks and parallel/spi bin images
# New versions of CFE bootloader compatible with imagetag
d e f i n e D e v i c e / b c m 6 3 x x C f e
$( Device/bcm63xxCfeCommon)
IMAGES := cfe.bin
IMAGE/cfe.bin := cfe-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
e n d e f
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
d e f i n e D e v i c e / b c m 6 3 x x C f e B c 2 2 1
$( 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 :=
e n d e f
d e f i n e I m a g e / P r e p a r e L o a d e r
# Standard LZMA kernel
$( STAGING_DIR_HOST) /bin/lzma e -d22 -fb64 -a1 $( KDIR) /vmlinux$( 1) $( KDIR) /vmlinux$( 1) .lzma
# BCM63xx CFE MultiFlash devices: both ramdisks and parallel/spi bin images
# Generates generic images padded for 4M/8M/16M flashes
d e f i n e D e v i c e / b c m 6 3 x x C f e M u l t i F l a s h
$( 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 :=
e n d e f
# 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)
# 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
d e f i n e D e v i c e / b c m 6 3 x x C f e N e t g e a r
$( 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 :=
e n d e f
DEVICE_VARS += NETGEAR_ID NETGEAR_REGION
# BCM63xx Old CFE devices: both ramdisks and parallel/spi bin images
# Old versions of CFE bootloader not compatible with imagetag
d e f i n e D e v i c e / b c m 6 3 x x C f e O l d
$( Device/bcm63xxCfeCommon)
IMAGES := cfe-old.bin
IMAGE/cfe-old.bin := cfe-old-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
e n d e f
rm -f $( KDIR) /vmlinux$( 1) .lzma
# 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
d e f i n e D e v i c e / b c m 6 3 x x C f e S p w 3 0 3 v
$( 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 :=
e n d e f
d e f i n e I m a g e / P r e p a r e L o a d e r D T B
# 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 ZyXEL devices: both ramdisks and parallel/spi bin images
# factory.bin: ZyXEL specific CFE images (sysupgrade compatible)
d e f i n e D e v i c e / b c m 6 3 x x C f e Z y x e l
$( Device/bcm63xxCfeCommon)
IMAGES := factory.bin
IMAGE/factory.bin := cfe-bin | zyxel-bin
CFE_BOARD_ID :=
CFE_CHIP_ID :=
CFE_EXTRAS :=
e n d e f
d e f i n e I m a g e / P r e p a r e C F E L z m a K e r n e l
# 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)
# BCM63xx RedBoot devices: both ramdisks and parallel/spi bin images
# Generates images compatible with RedBoot bootloader
d e f i n e D e v i c e / b c m 6 3 x x R e d B o o t
FILESYSTEMS := squashfs
KERNEL := kernel-bin | append-dtb | gzip
IMAGES := redboot.bin
IMAGE/redboot.bin := redboot-bin
REDBOOT_PREFIX := $$ ( IMAGE_PREFIX)
e n d e f
DEVICE_VARS += REDBOOT_PREFIX
### Device macros ###
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = hcs magic bytes
# $(5) = hcs rev min
# $(6) = hcs rev major
d e f i n e b c m 3 3 x x H c s R a m d i s k
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_DEVICES += $( 2)
e n d e f
# 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
# $(1) = profile
# $(2) = image name
# $(3) = dts
d e f i n e b c m 6 3 x x C f e R a m d i s k
define Device/$( 2)
$$ ( Device/bcm63xxCfeRamdisk)
DEVICE_PROFILE := $( 1)
DEVICE_NAME := $( 2)
DEVICE_DTS := $( 3)
endef
TARGET_DEVICES += $( 2)
e n d e f
# 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)
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e
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)
e n d e f
d e f i n e I m a g e / P r e p a r e C F E L z m a K e r n e l D T B
# 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)
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e M u l t i F l a s h
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)
e n d e f
d e f i n e I m a g e / P r e p a r e
# build relocation code first
rm -rf $( KDIR) /relocate
$( CP) ../../generic/image/relocate $( KDIR)
$( MAKE) -C $( KDIR) /relocate $( RELOCATE_MAKEOPTS)
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e B c 2 2 1
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)
e n d e f
$( 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
e n d e f
d e f i n e I m a g e / B u i l d / I n i t r a m f s
# 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
e n d e f
# $(1) = Image build
# $(2) = Profile
# $(3) = imagename
# $(4) = dtb
# $(5) = boardname
# $(6) = chipid
# $(7) = additional options
d e f i n e I m a g e D T B
define Image/Build/$( 3)
$$ ( call Image/Build/$( 1) ,$$ ( 1) ,$( 3) ,$( 4) ,$( 5) ,$( 6) ,$( 7) ,$( 8) )
# $(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
d e f i n e b c m 6 3 x x C f e N e t g e a r
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)
e n d e f
TARGET_Default_DTBS += $( 4)
TARGET_Default_IMAGES += $( 3)
TARGET_$( 2) _DTBS += $( 4)
TARGET_$( 2) _IMAGES += $( 3)
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e O l d
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)
e n d e f
d e f i n e I m a g e / B u i l d
dd if = $( KDIR) /root.$( 1) of = $( BIN_DIR) /$( IMG_PREFIX) -root.$( 1) bs = 128k conv = sync
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e S p w 3 0 3 v
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)
e n d e f
# build dtb image list
$( foreach image,$( TARGET_$( PROFILE) _IMAGES) ,$( call Image/Build/$( image) ,$( 1) ) )
# $(1) = profile
# $(2) = image name
# $(3) = dts
# $(4) = cfe board name
# $(5) = cfe chip id
# $(6) = cfe additional options
d e f i n e b c m 6 3 x x C f e Z y x e l
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)
e n d e f
ifeq ( $( CONFIG_TARGET_ROOTFS_INITRAMFS) ,y)
$( call Image/Build/Initramfs)
endif
# $(1) = profile
# $(2) = image name
# $(3) = dts
d e f i n e b c m 6 3 x x R e d B o o t
define Device/$( 2)
$$ ( Device/bcm63xxRedBoot)
DEVICE_PROFILE := $( 1)
DEVICE_NAME := $( 2)
DEVICE_DTS := $( 3)
endef
TARGET_DEVICES += $( 2)
e n d e f
### Devices ###
# Generic 963281TAN
$( eval $ ( call ImageDTB ,CFEDTB ,963281TAN ,963281TAN -4M -flash -generic ,bcm 963281TAN ,963281TAN ,6328,--pad 2) )
$( eval $ ( call ImageDTB ,CFEDTB ,963281TAN ,963281TAN -8M -flash -generic ,bcm 963281TAN ,963281TAN ,6328,--pad 4) )
$( eval $ ( call ImageDTB ,CFEDTB ,963281TAN ,963281TAN -16M -flash -generic ,bcm 963281TAN ,963281TAN ,6328,--pad 8) )
$( eval $ ( call bcm 63xxCfeMultiFlash ,963281TAN ,963281TAN -generic ,bcm 963281TAN ,963281TAN ,6328) )
# Generic 96328avng
$( eval $ ( call ImageDTB ,CFEDTB ,96328avng ,96328avng -4M -flash -generic ,bcm 96328avng ,96328avng ,6328,--pad 2) )
$( eval $ ( call ImageDTB ,CFEDTB ,96328avng ,96328avng -8M -flash -generic ,bcm 96328avng ,96328avng ,6328,--pad 4) )
$( eval $ ( call ImageDTB ,CFEDTB ,96328avng ,96328avng -16M -flash -generic ,bcm 96328avng ,96328avng ,6328,--pad 8) )
$( eval $ ( call bcm 63xxCfeMultiFlash ,96328avng ,96328avng -generic ,bcm 96328avng ,96328avng ,6328) )
# Generic 96338GW
$( eval $ ( call ImageDTB ,CFEDTB ,96338GW ,96338GW -generic ,bcm 96338GW ,6338GW ,6338) )
$( eval $ ( call bcm 63xxCfe ,96338GW ,96338GW -generic ,bcm 96338GW ,6338GW ,6338) )
# Generic 96338W
$( eval $ ( call ImageDTB ,CFEDTB ,96338W ,96338W -generic ,bcm 96338W ,6338W ,6338) )
$( eval $ ( call bcm 63xxCfe ,96338W ,96338W -generic ,bcm 96338W ,6338W ,6338) )
# Generic 96345GW2
$( eval $ ( call ImageDTB ,CFEDTB ,96345GW 2,96345GW 2-generic ,bcm 96345GW 2,96345GW 2,6345) )
$( eval $ ( call ImageDTB ,CFEDTB ,96345GW 2,96345GW 2-bc 221,bcm 96345GW 2,96345GW 2,6345,--layoutver 5) )
$( eval $ ( call bcm 63xxCfeBc 221,96345GW 2,96345GW 2-generic ,bcm 96345GW 2,96345GW 2,6345) )
# Generic 96348GW
$( eval $ ( call ImageDTB ,CFEDTB ,96348GW ,96348GW -generic ,bcm 96348GW ,96348GW ,6348) )
$( eval $ ( call ImageDTB ,CFEDTB ,96348GW ,96348GW -bc 221,bcm 96348GW ,96348GW ,6348,--layoutver 5) )
$( eval $ ( call bcm 63xxCfeBc 221,96348GW ,96348GW -generic ,bcm 96348GW ,96348GW ,6348) )
# Generic 96348GW-10
$( eval $ ( call ImageDTB ,CFEDTB ,96348GW_ 10,96348GW -10-generic ,bcm 96348GW -10,96348GW -10,6348) )
$( eval $ ( call bcm 63xxCfe ,96348GW_ 10,96348GW -10-generic ,bcm 96348GW -10,96348GW -10,6348) )
# Generic 96348GW-11
$( eval $ ( call ImageDTB ,CFEDTB ,96348GW_ 11,96348GW -11-generic ,bcm 96348GW -11,96348GW -11,6348) )
$( eval $ ( call bcm 63xxCfe ,96348GW_ 11,96348GW -11-generic ,bcm 96348GW -11,96348GW -11,6348) )
# Generic 96348R
$( eval $ ( call ImageDTB ,CFEDTB ,96348R ,96348R -generic ,bcm 96348R ,96348R ,6348) )
$( eval $ ( call bcm 63xxCfe ,96348R ,96348R -generic ,bcm 96348R ,96348R ,6348) )
# Generic 96358VW
$( eval $ ( call ImageDTB ,CFEDTB ,96358VW ,96358VW -generic ,bcm 96358VW ,96358VW ,6358) )
$( eval $ ( call bcm 63xxCfe ,96358VW ,96358VW -generic ,bcm 96358VW ,96358VW ,6358) )
# Generic 96358VW2
$( eval $ ( call ImageDTB ,CFEDTB ,96358VW 2,96358VW 2-generic ,bcm 96358VW 2,96358VW 2,6358) )
$( eval $ ( call bcm 63xxCfe ,96358VW 2,96358VW 2-generic ,bcm 96358VW 2,96358VW 2,6358) )
# Generic 96368MVNgr
$( eval $ ( call ImageDTB ,CFEDTB ,96368MVNgr ,96368MVNgr -generic ,bcm 96368MVNgr ,96368MVNgr ,6368) )
$( eval $ ( call bcm 63xxCfe ,96368MVNgr ,96368MVNgr -generic ,bcm 96368MVNgr ,96368MVNgr ,6368) )
# Generic 96368MVWG
$( eval $ ( call ImageDTB ,CFEDTB ,96368MVWG ,96368MVWG -generic ,bcm 96368MVWG ,96368MVWG ,6368) )
$( eval $ ( call bcm 63xxCfe ,96368MVWG ,96368MVWG -generic ,bcm 96368MVWG ,96368MVWG ,6368) )
# ADB P.DG A4001N
$( eval $ ( call ImageDTB ,CFEDTB ,A 4001N ,A 4001N ,a 4001n ,96328dg 2x 2,6328,--pad 4) )
$( eval $ ( call bcm 63xxCfe ,A 4001N ,A 4001N ,a 4001n ,96328dg 2x 2,6328,--pad 4) )
# ADB P.DG A4001N1
$( eval $ ( call ImageDTB ,CFEDTB ,A 4001N 1,A 4001N 1,a 4001n 1,963281T_TEF ,6328,--pad 8) )
$( eval $ ( call bcm 63xxCfe ,A 4001N 1,A 4001N 1,a 4001n 1,963281T_TEF ,6328,--pad 8) )
# Alcatel RG100A
$( eval $ ( call ImageDTB ,CFEDTB ,RG 100A ,RG 100A ,rg 100a ,96358VW 2,6358,--block -size 0x 20000 --image -offset 0x 20000) )
$( eval $ ( call bcm 63xxCfe ,RG 100A ,RG 100A ,rg 100a ,96358VW 2,6358,--block -size 0x 20000 --image -offset 0x 20000) )
# Asmax AR 1004g
$( eval $ ( call ImageDTB ,CFEDTB ,AR 1004G ,AR 1004G ,ar 1004g ,96348GW -10,6348) )
$( eval $ ( call bcm 63xxCfe ,AR 1004G ,AR 1004G ,ar 1004g ,96348GW -10,6348) )
# Belkin F5D7633
$( eval $ ( call ImageDTB ,CFEDTB ,F 5D 7633,F 5D 7633,f 5d 7633,96348GW -10,6348,--block -size 0x 20000 --image -offset 0x 20000) )
$( eval $ ( call bcm 63xxCfe ,F 5D 7633,F 5D 7633,f 5d 7633,96348GW -10,6348,--block -size 0x 20000 --image -offset 0x 20000) )
# Broadcom BCM96318REF
$( eval $ ( call ImageDTB ,Dummy ,BCM 96318REF ,BCM 96318REF ,bcm 96318ref ,96318REF ,6318) )
$( eval $ ( call bcm 63xxCfeRamdisk ,BCM 96318REF ,BCM 96318REF ,bcm 96318ref ,96318REF ,6318) )
# Broadcom BCM96318REF_P300
$( eval $ ( call ImageDTB ,Dummy ,BCM 96318REF_P 300,BCM 96318ref_P 300,bcm 96318ref_p 300,96318REF_P 300,6318) )
$( eval $ ( call bcm 63xxCfeRamdisk ,BCM 96318REF_P 300,BCM 96318ref_P 300,bcm 96318ref_p 300,96318REF_P 300,6318) )
# Broadcom BCM963268BU_P300
$( eval $ ( call ImageDTB ,Dummy ,BCM 963268BU_P 300,BCM 963268BU_P 300,bcm 963268bu_p 300,963268BU_P 300,63268) )
$( eval $ ( call bcm 63xxCfeRamdisk ,BCM 963268BU_P 300,BCM 963268BU_P 300,bcm 963268bu_p 300,963268BU_P 300,63268) )
# Broadcom BCM963269BHR
$( eval $ ( call ImageDTB ,Dummy ,BCM 963269BHR ,BCM 963269BHR ,bcm 963269bhr ,963269BHR ,63268) )
$( eval $ ( call bcm 63xxCfeRamdisk ,BCM 963269BHR ,BCM 963269BHR ,bcm 963269bhr ,963269BHR ,63268) )
# BT Home Hub 2.0 A
$( eval $ ( call ImageDTB ,CFEDTB ,BTHOMEHUB 2A ,HomeHub 2A ,homehub 2a ,HOMEHUB 2A ,6358,--image -offset 0x 20000 --block -size 0x 20000) )
$( eval $ ( call bcm 63xxCfe ,BTHOMEHUB 2A ,HomeHub 2A ,homehub 2a ,HOMEHUB 2A ,6358,--image -offset 0x 20000 --block -size 0x 20000) )
# BT Voyager V2110, V2110_AA, V2110_ROI
$( eval $ ( call ImageDTB ,CFEDTB ,BTV 2110,BTV 2110,v 2110,V 2110,6348,--layoutver 5) )
$( eval $ ( call bcm 63xxCfe ,BTV 2110,BTV 2110,v 2110,V 2110,6348,--layoutver 5) )
# BT Voyager V2500V, V2500V_SIP_CLUB, V2500V_AA
$( eval $ ( call ImageDTB ,CFEDTB ,BTV 2500V ,BTV 2500V ,v 2500v -bb ,V 2500V_BB ,6348,--layoutver 5) )
$( eval $ ( call bcm 63xxCfe ,BTV 2500V ,BTV 2500V ,v 2500v -bb ,V 2500V_BB ,6348,--layoutver 5) )
# Comtrend AR-5381u
$( eval $ ( call ImageDTB ,CFEDTB ,AR 5381u ,AR -5381u ,ar -5381u ,96328A -1241N ,6328,--pad 8) )
$( eval $ ( call bcm 63xxCfe ,AR 5381u ,AR -5381u ,ar -5381u ,96328A -1241N ,6328,--pad 8) )
# Comtrend AR-5387un
$( eval $ ( call ImageDTB ,CFEDTB ,AR 5387un ,AR -5387un ,ar -5387un ,96328A -1441N 1,6328,--pad 8) )
$( eval $ ( call bcm 63xxCfe ,AR 5387un ,AR -5387un ,ar -5387un ,96328A -1441N 1,6328,--pad 8) )
# Comtrend 536, 5621
$( eval $ ( call ImageDTB ,CFEDTB ,CT 536_CT 5621,CT 536_CT 5621,ct 536plus ,96348GW -11,6348) )
$( eval $ ( call bcm 63xxCfe ,CT 536_CT 5621,CT 536_CT 5621,ct 536plus ,96348GW -11,6348) )
# Comtrend CT-5365
$( eval $ ( call ImageDTB ,CFEDTB ,CT 5365,CT -5365,ct -5365,96348A -122,6348) )
$( eval $ ( call bcm 63xxCfe ,CT 5365,CT -5365,ct -5365,96348A -122,6348) )
# Comtrend CT-6373
$( eval $ ( call ImageDTB ,CFEDTB ,CT 6373,CT -6373,ct -6373,CT 6373-1,6358) )
$( eval $ ( call bcm 63xxCfe ,CT 6373,CT -6373,ct -6373,CT 6373-1,6358) )
# Comtrend VR-3025u
$( eval $ ( call ImageDTB ,CFEDTB ,VR 3025u ,VR -3025u ,vr -3025u ,96368M -1541N ,6368,--pad 16 --image -offset 0x 20000 --block -size 0x 20000) )
$( eval $ ( call bcm 63xxCfe ,VR 3025u ,VR -3025u ,vr -3025u ,96368M -1541N ,6368,--pad 16 --image -offset 0x 20000 --block -size 0x 20000) )
# Comtrend VR-3025un
$( eval $ ( call ImageDTB ,CFEDTB ,VR 3025un ,VR -3025un ,vr -3025un ,96368M -1341N ,6368,--pad 4) )
$( eval $ ( call bcm 63xxCfe ,VR 3025un ,VR -3025un ,vr -3025un ,96368M -1341N ,6368,--pad 4) )
# Comtrend WAP-5813n
$( eval $ ( call ImageDTB ,CFEDTB ,WAP 5813n ,WAP -5813n ,wap -5813n ,96369R -1231N ,6368,--pad 4) )
$( eval $ ( call bcm 63xxCfe ,WAP 5813n ,WAP -5813n ,wap -5813n ,96369R -1231N ,6368,--pad 4) )
# D-Link DSL-2640B, rev B2
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 2640B -B 2,DSL 2640B_B ,dsl -2640b -b ,D -4P -W ,6348) )
$( eval $ ( call bcm 63xxCfe ,DSL 2640B -B 2,DSL 2640B_B ,dsl -2640b -b ,D -4P -W ,6348) )
# D-Link DSL-2640U, rev C1
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 2640U ,DSL 2640U ,dsl -2640u ,96338W 2_E 7T ,6338) )
$( eval $ ( call bcm 63xxCfe ,DSL 2640U ,DSL 2640U ,dsl -2640u ,96338W 2_E 7T ,6338) )
# D-Link DSL-2650U
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 2650U ,DSL 2650U ,dsl -2650u ,96358VW 2,6358) )
$( eval $ ( call bcm 63xxCfe ,DSL 2650U ,DSL 2650U ,dsl -2650u ,96358VW 2,6358) )
# D-Link DSL-2740B/DSL-2741B, rev C2
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 274XB_C ,DSL 274XB -C 2,dsl -274xb -c ,96358GW ,6358) )
$( eval $ ( call bcm 63xxCfe ,DSL 274XB_C ,DSL 274XB -C 2,dsl -274xb -c ,96358GW ,6358) )
# D-Link DSL-2740B/DSL-2741B, rev C3
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 274XB_C ,DSL 274XB -C 3,dsl -274xb -c ,AW 4139,6358) )
$( eval $ ( call bcm 63xxCfe ,DSL 274XB_C ,DSL 274XB -C 3,dsl -274xb -c ,AW 4139,6358) )
# D-Link DSL-2740B/DSL-2741B, rev F1
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 274XB_F ,DSL 274XB -F 1-EU ,dsl -274xb -f ,AW 4339U ,6328,--signature 2 "4.06.01.EUF 1" --pad 4) )
$( eval $ ( call ImageDTB ,CFEDTB ,DSL 274XB_F ,DSL 274XB -F 1-AU ,dsl -274xb -f ,AW 4339U ,6328,--signature 2 "4.06.01.AUF 1" --pad 4) )
$( eval $ ( call bcm 63xxCfe ,DSL 274XB_F ,DSL 274XB -F 1-EU ,dsl -274xb -f ,AW 4339U ,6328,--signature 2 "4.06.01.EUF 1" --pad 4) )
$( eval $ ( call bcm 63xxCfe ,DSL 274XB_F ,DSL 274XB -F 1-AU ,dsl -274xb -f ,AW 4339U ,6328,--signature 2 "4.06.01.AUF 1" --pad 4) )
# D-Link DSL-2750B/DSL-2751, rev D1
$( eval $ ( call ImageDTB ,Dummy ,DSL 275XB_D ,DSL 275XB -D 1,dsl -275xb -d ,AW 5200U ,6318, --pad 4) )
$( eval $ ( call bcm 63xxCfeRamdisk ,DSL 275XB_D ,DSL 275XB -D 1,dsl -275xb -d ,AW 5200U ,6318,--pad 4) )
# D-Link DVA-G3810BN/TL
$( eval $ ( call ImageDTB ,CFEDTB ,DVAG 3810BN ,DVAG 3810BN ,dva -g 3810bn_tl ,96358VW ,6358) )
$( eval $ ( call bcm 63xxCfe ,DVAG 3810BN ,DVAG 3810BN ,dva -g 3810bn_tl ,96358VW ,6358) )
# Davolink DV-201AMR
$( eval $ ( call ImageDTB ,OLDCFEDTB ,DV 201AMR ,DV -201AMR ,dv -201amr ,DV 201AMR ,6348) )
$( eval $ ( call bcm 63xxCfeOld ,DV 201AMR ,DV -201AMR ,dv -201amr ,DV 201AMR ,6348) )
# Dynalink RTA770BW (Siemens SE515)
$( eval $ ( call ImageDTB ,Dummy ,RTA 770BW ,RTA 770BW ,rta 770bw ,RTA 770BW ,6345,--layoutver 5) )
$( eval $ ( call bcm 63xxCfeRamdisk ,RTA 770BW ,RTA 770BW ,rta 770bw ,RTA 770BW ,6345,--layoutver 5) )
# Dynalink RTA770W
$( eval $ ( call ImageDTB ,Dummy ,RTA 770W ,RTA 770W ,rta 770w ,RTA 770W ,6345,--layoutver 5) )
$( eval $ ( call bcm 63xxCfeRamdisk ,RTA 770W ,RTA 770W ,rta 770w ,RTA 770W ,6345,--layoutver 5) )
# Dynalink RTA1025W (numerous routers)
$( eval $ ( call ImageDTB ,CFEDTB ,RTA 1025W ,RTA 1025W_ 16,rta 1025w ,RTA 1025W_ 16,6348,--layoutver 5) )
$( eval $ ( call bcm 63xxCfe ,RTA 1025W ,RTA 1025W_ 16,rta 1025w ,RTA 1025W_ 16,6348,--layoutver 5) )
# Dynalink RTA1320 (numerous routers)
$( eval $ ( call ImageDTB ,CFEDTB ,RTA 1320,RTA 1320_ 16M ,rta 1320,RTA 1320_ 16M ,6338,--layoutver 5) )
$( eval $ ( call bcm 63xxCfe ,RTA 1320,RTA 1320_ 16M ,rta 1320,RTA 1320_ 16M ,6338,--layoutver 5) )
# Huawei HG520v
$( eval $ ( call ImageDTB ,CFEDTB ,HG 520v ,HG 520v ,hg 520v ,HW 6358GW_B ,6358,--rsa -signature "EchoLife_HG 520v ") )
$( eval $ ( call bcm 63xxCfe ,HG 520v ,HG 520v ,hg 520v ,HW 6358GW_B ,6358,--rsa -signature "EchoLife_HG 520v ") )
# Huawei HG553
$( eval $ ( call ImageDTB ,CFEDTB ,HG 553,HG 553,hg 553,HW 553,6358,--rsa -signature "EchoLife_HG 553" --image -offset 0x 20000 --block -size 0x 20000 --tag -version 7) )
$( eval $ ( call bcm 63xxCfe ,HG 553,HG 553,hg 553,HW 553,6358,--rsa -signature "EchoLife_HG 553" --image -offset 0x 20000 --block -size 0x 20000 --tag -version 7) )
# Huawei HG556a
$( eval $ ( call ImageDTB ,CFEDTB ,HG 556a_AB ,HG 556a_A ,hg 556a -a ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 10000 --tag -version 8) )
$( eval $ ( call ImageDTB ,CFEDTB ,HG 556a_AB ,HG 556a_B ,hg 556a -b ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 20000 --tag -version 8) )
$( eval $ ( call ImageDTB ,CFEDTB ,HG 556a_C ,HG 556a_C ,hg 556a -c ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 20000 --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,HG 556a_AB ,HG 556a_A ,hg 556a -a ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 10000 --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,HG 556a_AB ,HG 556a_B ,hg 556a -b ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 20000 --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,HG 556a_C ,HG 556a_C ,hg 556a -c ,HW 556,6358,--rsa -signature "EchoLife_HG 556a " --image -offset 0x 20000 --block -size 0x 20000 --tag -version 8) )
# Huawei HG655b
$( eval $ ( call ImageDTB ,CFEDTB ,HG 655b ,HG 655b ,hg 655b ,HW 65x ,6368,--image -offset 0x 20000 --tag -version 7 --pad 4) )
$( eval $ ( call bcm 63xxCfe ,HG 655b ,HG 655b ,hg 655b ,HW 65x ,6368,--image -offset 0x 20000 --tag -version 7 --pad 4) )
# Inteno VG50
$( eval $ ( call ImageDTB ,Dummy ,VG 50,vg 50,vg 50,VW 6339GU ,63268) )
$( eval $ ( call bcm 63xxCfeRamdisk ,VG 50,vg 50,vg 50,VW 6339GU ,63268) )
# Inventel Livebox 1
$( eval $ ( call ImageDTB ,RedBootDTB ,Livebox ,livebox ,livebox -blue -5g ) )
$( eval $ ( call bcm 63xxRedBoot ,Livebox ,livebox ,livebox -blue -5g ) )
# Netgear CVG834G
$( eval $ ( call ImageDTB ,Dummy ,CVG 834G ,cvg 834g ,cvg 834g ,a 020,0001,0022,vmlinux -cvg 834g ) )
$( eval $ ( call bcm 33xxHcsRamdisk ,CVG 834G ,cvg 834g ,cvg 834g ,a 020,0001,0022) )
# Netgear DG834GT/PN
$( eval $ ( call ImageDTB ,CFEDTB ,DG 834GTPN ,DG 834GT_PN ,dg 834gtpn ,96348GW -10,6348) )
$( eval $ ( call bcm 63xxCfe ,DG 834GTPN ,DG 834GT_PN ,dg 834gtpn ,96348GW -10,6348) )
# Netgear DG834G v4
$( eval $ ( call ImageDTB ,Dummy ,DG 834GV 4,DG 834GTv 4,dg 834g_v 4,96348W 3,6348) )
# Netgear DGND3700 v1 / DGND3800B
$( eval $ ( call ImageDTB ,CFEDTB ,DGND 3700v 1_ 3800B ,DGND 3700v 1_ 3800B ,dgnd 3700v 1,96368MVWG ,6368,--image -offset 0x 20000 --block -size 0x 20000) )
#Netgear DGND3700 v1 factory firmware
$( eval $ ( call ImageDTB ,ChkDTB ,DGND 3700v 1_ 3800B ,DGND 3700v 1,,DGND 3700v 1_ 3800B ,U 12L 144T 01_NETGEAR_NEWLED ,1) )
#Netgear DGND3800B factory firmware
$( eval $ ( call ImageDTB ,ChkDTB ,DGND 3700v 1_ 3800B ,DGND 3800B ,,DGND 3700v 1_ 3800B ,U 12L 144T 11_NETGEAR_NEWLED ,1) )
$( eval $ ( call bcm 63xxCfeRamdisk ,DG 834GV 4,DG 834GTv 4,dg 834g_v 4,96348W 3,6348) )
# Netgear DGND3700 v1
$( eval $ ( call bcm 63xxCfeNetgear ,DGND 3700v 1_ 3800B ,DGND 3700v 1,dgnd 3700v 1,96368MVWG ,6368,--image -offset 0x 20000 --block -size 0x 20000,U 12L 144T 01_NETGEAR_NEWLED ,1) )
# Netgear DGND3800B
$( eval $ ( call bcm 63xxCfeNetgear ,DGND 3700v 1_ 3800B ,DGND 3800B ,dgnd 3700v 1,96368MVWG ,6368,--image -offset 0x 20000 --block -size 0x 20000,U 12L 144T 11_NETGEAR_NEWLED ,1) )
# Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
$( eval $ ( call ImageDTB ,CFEDTB ,AGPF_S 0,AGV 2+W ,agpf -s 0,AGPF -S 0,6358,--block -size 0x 20000 --image -offset 0x 20000 --signature 2 IMAGE --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,AGPF_S 0,AGV 2+W ,agpf -s 0,AGPF -S 0,6358,--block -size 0x 20000 --image -offset 0x 20000 --signature 2 IMAGE --tag -version 8) )
# Pirelli A226G
$( eval $ ( call ImageDTB ,CFEDTB ,A 226G ,A 226G ,a 226g ,DWV -S 0,6358,--signature 2 IMAGE --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,A 226G ,A 226G ,a 226g ,DWV -S 0,6358,--signature 2 IMAGE --tag -version 8) )
# Pirelli A226M/A226M-FWB
$( eval $ ( call ImageDTB ,CFEDTB ,A 226M ,A 226M ,a 226m ,DWV -S 0,6358,--signature 2 IMAGE --tag -version 8) )
$( eval $ ( call ImageDTB ,CFEDTB ,A 226M ,A 226M -FWB ,a 226m -fwb ,DWV -S 0,6358,--block -size 0x 20000 --image -offset 0x 20000 --signature 2 IMAGE --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,A 226M ,A 226M ,a 226m ,DWV -S 0,6358,--signature 2 IMAGE --tag -version 8) )
$( eval $ ( call bcm 63xxCfe ,A 226M ,A 226M -FWB ,a 226m -fwb ,DWV -S 0,6358,--block -size 0x 20000 --image -offset 0x 20000 --signature 2 IMAGE --tag -version 8) )
# Sagem F@ST2404
$( eval $ ( call ImageDTB ,CFEDTB ,FAST 2404,F @ST 2404,fast 2404,F @ST 2404,6348) )
$( eval $ ( call bcm 63xxCfe ,FAST 2404,F @ST 2404,fast 2404,F @ST 2404,6348) )
# Sagem F@ST2504n
$( eval $ ( call ImageDTB ,CFEDTB ,FAST 2504n ,F @ST 2504n ,fast 2504n ,F @ST 2504n ,6362) )
$( eval $ ( call bcm 63xxCfe ,FAST 2504n ,F @ST 2504n ,fast 2504n ,F @ST 2504n ,6362) )
# Sagem F@ST2604
$( eval $ ( call ImageDTB ,CFEDTB ,FAST 2604,F @ST 2604,fast 2604,F @ST 2604,6348) )
$( eval $ ( call bcm 63xxCfe ,FAST 2604,F @ST 2604,fast 2604,F @ST 2604,6348) )
# Sagem F@ST2704V2
$( eval $ ( call ImageDTB ,CFEDTB ,FAST 2704V 2,F @ST 2704V 2,fast 2704v 2,F @ST 2704V 2,6328) )
$( eval $ ( call bcm 63xxCfe ,FAST 2704V 2,F @ST 2704V 2,fast 2704v 2,F @ST 2704V 2,6328) )
# SFR Neufbox 4
$( eval $ ( call ImageDTB ,CFEDTB ,Neufbox 4,NEUFBOX 4-SER ,nb 4-ser -r 0,96358VW ,6358,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
$( eval $ ( call ImageDTB ,CFEDTB ,Neufbox 4,NEUFBOX 4-FXC ,nb 4-fxc -r 1,96358VW ,6358,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
$( eval $ ( call bcm 63xxCfe ,Neufbox 4,NEUFBOX 4-SER ,nb 4-ser -r 0,96358VW ,6358,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
$( eval $ ( call bcm 63xxCfe ,Neufbox 4,NEUFBOX 4-FXC ,nb 4-fxc -r 1,96358VW ,6358,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
# SFR Neufbox 6
$( eval $ ( call ImageDTB ,CFEDTB ,Neufbox 6,NEUFBOX 6,nb 6-ser -r 0,NB 6-SER -r 0,6362,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
$( eval $ ( call bcm 63xxCfe ,Neufbox 6,NEUFBOX 6,nb 6-ser -r 0,NB 6-SER -r 0,6362,--rsa -signature "OpenWRT -$ ( REVISION ) ") )
# T-Com Speedport W 303V Typ B
$( eval $ ( call ImageDTB ,SPW 303VCFEDTB ,SPW 303V ,SPW 303V ,spw 303v ,96358-502V ,6358,--pad 4) )
$( eval $ ( call bcm 63xxCfeSpw 303v ,SPW 303V ,SPW 303V ,spw 303v ,96358-502V ,6358,--pad 4) )
# T-Com Speedport W 500V
$( eval $ ( call ImageDTB ,CFEDTB ,SPW 500V ,SPW 500V ,spw 500v ,96348GW ,6348) )
$( eval $ ( call bcm 63xxCfe ,SPW 500V ,SPW 500V ,spw 500v ,96348GW ,6348) )
# Tecom GW6000
$( eval $ ( call ImageDTB ,CFEDTB ,GW 6000,GW 6000,gw 6000,96348GW ,6348) )
$( eval $ ( call bcm 63xxCfe ,GW 6000,GW 6000,gw 6000,96348GW ,6348) )
# Tecom GW6200
$( eval $ ( call ImageDTB ,CFEDTB ,GW 6200,GW 6200,gw 6200,96348GW ,6348,--rsa -signature "$ ( shell printf '\x 99') ") )
$( eval $ ( call bcm 63xxCfe ,GW 6200,GW 6200,gw 6200,96348GW ,6348,--rsa -signature "$ ( shell printf '\x 99') ") )
# Telsey CPVA502+
$( eval $ ( call ImageDTB ,Dummy ,CPVA 502PLUS ,CVPA 502PLUS ,cpva 502plus ,CPVA 502+,6348,--signature "Telsey Tlc " --signature 2 "99.99.999" --second -image -flag "0") )
$( eval $ ( call bcm 63xxCfeRamdisk ,CPVA 502PLUS ,CVPA 502PLUS ,cpva 502plus ,CPVA 502+,6348,--signature "Telsey Tlc " --signature 2 "99.99.999" --second -image -flag "0") )
# Telsey CPVA642-type (e.g. CPA-ZNTE60T)
$( eval $ ( call ImageDTB ,CFEDTB ,CPVA 642,CPA -ZNTE 60T ,cpva 642,CPVA 642,6358,--signature "Telsey Tlc " --signature 2 "99.99.999" --second -image -flag "0" --pad 4) )
$( eval $ ( call bcm 63xxCfe ,CPVA 642,CPA -ZNTE 60T ,cpva 642,CPVA 642,6358,--signature "Telsey Tlc " --signature 2 "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 bcm 63xxCfeRamdisk ,MAGIC ,MAGIC ,magic ,MAGIC ,6348) )
# TP-Link TD-W8900GB
$( eval $ ( call ImageDTB ,CFEDTB ,TDW 8900GB ,TD -W 8900GB ,td -w 8900gb ,96348GW -11,6348,--rsa -signature "$ ( shell printf 'PRID \x 89\x 10\x 00\x 02') " --image -offset 0x 20000) )
$( eval $ ( call bcm 63xxCfe ,TDW 8900GB ,TD -W 8900GB ,td -w 8900gb ,96348GW -11,6348,--rsa -signature "$ ( shell printf 'PRID \x 89\x 10\x 00\x 02') " --image -offset 0x 20000) )
# USRobotics 9108
$( eval $ ( call ImageDTB ,CFEDTB ,USR 9108,USR 9108,usr 9108,96348GW -A ,6348) )
$( eval $ ( call bcm 63xxCfe ,USR 9108,USR 9108,usr 9108,96348GW -A ,6348) )
# ZyXEL P870HW-51a v2
$( eval $ ( call ImageDTB ,ZYXCFEDTB ,P 870HW_ 51a_v 2,P 870HW -51a_v 2,p 870hw -51a -v 2,96368VVW ,6368,--rsa -signature "ZyXEL " --signature "ZyXEL_ 0001") )
$( eval $ ( call bcm 63xxCfeZyxel ,P 870HW_ 51a_v 2,P 870HW -51a_v 2,p 870hw -51a -v 2,96368VVW ,6368,--rsa -signature "ZyXEL " --signature "ZyXEL_ 0001") )
$( eval $ ( call BuildImage ) )