Merge "liblockfile: Disable linear backoff for lockfile_create."
diff --git a/configs/gflt400_defconfig b/configs/gflt400_defconfig
new file mode 100644
index 0000000..4c05307
--- /dev/null
+++ b/configs/gflt400_defconfig
@@ -0,0 +1,95 @@
+BR2_arm=y
+BR2_arm926t=y
+BR2_GCC_TARGET_TUNE="marvell-f"
+BR2_DL_DIR="${TOPDIR}/../vendor/opensource/tarballs"
+BR2_JLEVEL=15
+BR2_CCACHE=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="${TOPDIR}/../toolchains/prism"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-marvell-linux-uclibcgnueabi"
+BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y
+BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y
+BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
+BR2_TOOLCHAIN_EXTERNAL_WCHAR=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="gfiberjack"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Google Fiber"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
+BR2_ROOTFS_DEVICE_TABLE="/dev/null"
+BR2_ROOTFS_SKELETON_CUSTOM=y
+BR2_ROOTFS_POST_BUILD_SCRIPT="${TOPDIR}/support/scripts/postbuild.sh"
+BR2_TARGET_GENERIC_PLATFORM_NAME="gflt400"
+BR2_TARGET_GENERIC_PLATFORMS_SUPPORTED="GFLT400"
+# BR2_PACKAGE_BUSYBOX is not set
+BR2_PACKAGE_TOOLBOX=y
+BR2_PACKAGE_TOYBOX=y
+BR2_PACKAGE_GREP=y
+BR2_PACKAGE_DEVMEM2=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_MTD=y
+# BR2_PACKAGE_MTD_UBIATTACH is not set
+# BR2_PACKAGE_MTD_UBICRC32 is not set
+# BR2_PACKAGE_MTD_UBIDETACH is not set
+# BR2_PACKAGE_MTD_UBIFORMAT is not set
+# BR2_PACKAGE_MTD_UBIMKVOL is not set
+# BR2_PACKAGE_MTD_UBINFO is not set
+# BR2_PACKAGE_MTD_UBINIZE is not set
+# BR2_PACKAGE_MTD_UBIRENAME is not set
+# BR2_PACKAGE_MTD_UBIRMVOL is not set
+# BR2_PACKAGE_MTD_UBIRSVOL is not set
+# BR2_PACKAGE_MTD_UBIUPDATEVOL is not set
+# BR2_PACKAGE_MTD_UBISCRUBBER is not set
+BR2_PACKAGE_UBOOT_TOOLS=y
+BR2_PACKAGE_PYTHON_SSL=y
+BR2_PACKAGE_PYTHON_PYEXPAT=y
+BR2_PACKAGE_PY_DNS=y
+BR2_PACKAGE_PY_MONOTIME=y
+BR2_PACKAGE_PYTHON_CRYPTO=y
+BR2_PACKAGE_SQLITE=y
+BR2_PACKAGE_PROTOBUF_VERSION_VALUE="2.6.1"
+BR2_PACKAGE_DHCP=y
+BR2_PACKAGE_DHCP_CLIENT=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_IPROUTE2=y
+BR2_PACKAGE_IPUTILS=y
+BR2_PACKAGE_NDISC6=y
+BR2_PACKAGE_NDISC6_NDISC6=y
+BR2_PACKAGE_NDISC6_RDISC6=y
+BR2_PACKAGE_NETKITTELNET=y
+BR2_PACKAGE_DASH=y
+BR2_PACKAGE_ZSH=y
+BR2_PACKAGE_ZSH_BINARIES_ONLY=y
+BR2_PACKAGE_SYSKLOGD=y
+BR2_PACKAGE_UTIL_LINUX=y
+BR2_PACKAGE_UTIL_LINUX_AGETTY=y
+BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y
+BR2_PACKAGE_NANO=y
+BR2_PACKAGE_GOOGLE_PLATFORM=y
+BR2_PACKAGE_GOOGLE_PLATFORM_BASE=y
+BR2_PACKAGE_GOOGLE_PLATFORM_HNVRAM=y
+BR2_PACKAGE_GOOGLE_PLATFORM_LOGUPLOAD=y
+BR2_PACKAGE_GOOGLE_PLATFORM_SYSMGR=y
+BR2_PACKAGE_GOOGLE_PLATFORM_LEDPATTERN=y
+BR2_PACKAGE_GOOGLE_FIBER_JACK=y
+BR2_PACKAGE_GOOGLE_PRISM=y
+BR2_PACKAGE_CATAWAMPUS=y
+BR2_PACKAGE_MV_APP_PON_TYPE="GPON"
+BR2_PACKAGE_MV_APP=y
+BR2_PACKAGE_DEK_TOOLS=y
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_TARGET_ROOTFS_GINSTALL=y
+BR2_TARGET_ROOTFS_GINSTALL_LOADER_DIR="../loader-bin/marvell"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="gflt400"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL="repo://uboot/prism"
+BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION="HEAD"
+BR2_TARGET_UBOOT_FORMAT_SPI_BIN=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL="repo://kernel/prism"
+BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="HEAD"
+BR2_LINUX_KERNEL_DEFCONFIG="gflt400"
+BR2_LINUX_KERNEL_ZIMAGE=y
diff --git a/fs/skeleton/bin/ipapply b/fs/skeleton/bin/ipapply
index e11d4ef..d2117cf 100755
--- a/fs/skeleton/bin/ipapply
+++ b/fs/skeleton/bin/ipapply
@@ -23,6 +23,8 @@
import struct
import subprocess
import sys
+import time
+
import options
optspec = """
@@ -38,6 +40,7 @@
STATIC_IP_CONFIGS_DIR = base_path + '/config/ip/static'
DYNAMIC_IP_CONFIGS_DIR = base_path + '/tmp/ip/dynamic'
TMP_CONMAN_DIR = base_path + '/tmp/conman'
+DISABLED_FILE = base_path + '/tmp/ipapply_disabled'
def AtomicWrite(filename, data):
@@ -270,7 +273,21 @@
return ''.join((ApplyNetmask(ip, netmask), '/', netmask))
+def Disabled():
+ """Returns whether /tmp/ipapply_disabled has been written in the last hour."""
+ if os.path.exists(DISABLED_FILE):
+ disabled_s = (os.stat(DISABLED_FILE).st_mtime + 60 * 60) - time.time()
+ if disabled_s > 0:
+ Log('Disabled for the next %d seconds', disabled_s)
+ return True
+
+ return False
+
+
def main():
+ if Disabled():
+ return
+
o = options.Options(optspec)
(_, _, extra) = o.parse(sys.argv[1:])
if not extra:
diff --git a/fs/skeleton/bin/ipapply.test b/fs/skeleton/bin/ipapply.test
index c167122..87ea074 100755
--- a/fs/skeleton/bin/ipapply.test
+++ b/fs/skeleton/bin/ipapply.test
@@ -10,6 +10,7 @@
STATIC_PATH=/config/ip/static
DYNAMIC_PATH=/tmp/ip/dynamic
TMP_CONMAN=/tmp/conman
+DISABLED_FILE=/tmp/ipapply_disabled
runnable mktemp &&
tmpdir=$(mktemp -d ipapplyXXXXXXXXXX) ||
@@ -56,6 +57,8 @@
rm -rf $tmpdir/$STATIC_PATH
rm -rf $tmpdir/$DYNAMIC_PATH
rm -rf $tmpdir/$TMP_CONMAN
+ rm -f $tmpdir/$DISABLED_FILE
+
mkdir -p $tmpdir/$STATIC_PATH
mkdir -p $tmpdir/$DYNAMIC_PATH
@@ -82,7 +85,7 @@
WVPASSEQ $? 0
echo
-echo "TEST static config"
+echo "TEST static config and disable"
export IIU_TEST_UP_INTERFACES="iface0"
mkdir -p $tmpdir/$STATIC_PATH
cat >$tmpdir/$STATIC_PATH/iface0 <<-EOF
@@ -93,6 +96,14 @@
echo "1.1.1.0/24 dev br0 proto kernel scope link src 1.1.1.1" >"$tmpdir/ip_route_show"
+
+touch $tmpdir/$DISABLED_FILE
+output=$(ipapply iface0 2>&1 1>/dev/null)
+WVPASSEQ $? 0
+echo "${output}" | grep "Disabled for the next" >/dev/null
+WVPASSEQ $? 0
+
+rm $tmpdir/$DISABLED_FILE
output=$(ipapply iface0 2>&1 1>/dev/null)
WVPASSEQ $? 0
echo "${output}" | grep "ip addr add 1.1.1.1/24 dev iface0" >/dev/null
diff --git a/fs/skeleton/bin/wifi.test.platform_gfibertv b/fs/skeleton/bin/wifi.test.platform_gfibertv
index d4352b7..b7fa368 100755
--- a/fs/skeleton/bin/wifi.test.platform_gfibertv
+++ b/fs/skeleton/bin/wifi.test.platform_gfibertv
@@ -28,7 +28,7 @@
WVPASS wifi restore
WVFAIL hostapd_running
-rm -f /tmp/*.wlan[0-9] /tmp/*.wlan[0-9] /tmp/*.wcli[0-9] /tmp/*.opts.2.4 /tmp/*.opts.5
+rm -f /tmp/*.wlan* /tmp/*.wcli* /tmp/*.opts.2.4 /tmp/*.opts.5
WVPASS wifi set -b2.4 -e NONE
WVPASS hostapd_running
diff --git a/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv b/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
index 14805a1..75336ca 100755
--- a/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
+++ b/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
@@ -11,6 +11,10 @@
# blocksize from the streamer.
# wmem_max defines the maximum send socket buffer size in bytes.
sysctl net.core.wmem_max=1572864
+ # Don't delete secondary addresses on an interface when deleting primary
+ # addresses. Fixes b/33548012.
+ sysctl net.ipv4.conf.default.promote_secondaries=1
+ sysctl net.ipv4.conf.all.promote_secondaries=1
# Panic everytime there is a kernel oops
sysctl -q kernel.panic_on_oops=1
;;
diff --git a/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv b/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
index 3f743b1..10c5ab1 100755
--- a/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
+++ b/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
@@ -265,6 +265,12 @@
mount_ext4fs $1
}
+recover_atv_ext4fs()
+{
+ e2fsck $1 || mkfs.ext4 -E discard -m 2 -L ${ATV_DATA_MMC_NAME} $1
+ mount_atv_ext4fs $1
+}
+
case "$1" in
start)
@@ -302,7 +308,7 @@
echo "Found ATV partition table ${ATV_DATA_MMC_NAME} at ${ATV_DATA_BLK_NAME}!"
if [ -b ${ATV_DATA_BLK_NAME} ]; then
mount_atv_ext4fs ${ATV_DATA_BLK_NAME} || \
- echo "failed mounting ${ATV_DATA_BLK_NAME}"
+ recover_atv_ext4fs ${ATV_DATA_BLK_NAME}
fi
else
echo "Error-Could not find either ${DATA_MMC_NAME} or ${ATV_DATA_MMC_NAME}"
diff --git a/fs/skeleton/etc/init.d/network b/fs/skeleton/etc/init.d/network
index 2b15d8e..b36a2da 100755
--- a/fs/skeleton/etc/init.d/network
+++ b/fs/skeleton/etc/init.d/network
@@ -229,6 +229,14 @@
for x in "$@"; do
[ -e "$x" ] || continue
+ # Wait for MAC address.
+ for i in $(seq 1 12); do
+ if [ "$(get_mac_address_for_interface "$x")" != 00:00:00:00:00:00 ]; then
+ break
+ fi
+ sleep 0.25
+ done
+
local x="${x#/sys/class/net/}"
echo "Adding interface $x..."
diff --git a/fs/skeleton/sbin/hard_reboot b/fs/skeleton/sbin/hard_reboot
new file mode 100755
index 0000000..2660452
--- /dev/null
+++ b/fs/skeleton/sbin/hard_reboot
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+platform=$(cat /etc/platform)
+if [ "$platform" = "GFHD254" ]; then
+ gfhd254_reboot
+ sleep 5
+ echo "Hard reboot failed, soft rebooting."
+else
+ echo "$platform hard_reboot not supported, soft rebooting.."
+fi
+reboot
diff --git a/package/Config.in b/package/Config.in
index 1cbc98b..95885db 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -704,6 +704,7 @@
source "package/mv_physdk/Config.in"
source "package/mv_app/Config.in"
source "package/mv_cpss/Config.in"
+source "package/dek_tools/Config.in"
endmenu
menu "Quantenna custom build"
diff --git a/package/bcm_common/bcm_common.mk b/package/bcm_common/bcm_common.mk
index eb4e02a..c7108fa 100644
--- a/package/bcm_common/bcm_common.mk
+++ b/package/bcm_common/bcm_common.mk
@@ -69,7 +69,8 @@
URSR_TOP=${BCM_NEXUS_DIR}/.. \
COMMON_DRM_TOP=${BCM_BSEAV_DIR}/lib/security/common_drm \
SAGE_SUPPORT=${GOOG_SAGE_SUPPORT} \
-SAGE_SECURE_MODE=6
+SAGE_SECURE_MODE=6 \
+WITH_DEFRAG=1
ifeq ($(findstring $(PLAT_NOQUOTES), 97425 97428), $(PLAT_NOQUOTES))
BCM_MAKE_ENV += WVCDM_VERSION=2.1
diff --git a/package/bcm_rockford/bcm_rockford.mk b/package/bcm_rockford/bcm_rockford.mk
index fa0454a..d7c6601 100644
--- a/package/bcm_rockford/bcm_rockford.mk
+++ b/package/bcm_rockford/bcm_rockford.mk
@@ -48,7 +48,7 @@
endif
define BCM_ROCKFORD_BUILD_CMDS
- $(BCM_MAKE_ENV) $(BCM_ROCKFORD_DEBUG) NEXUS_CLIENT_SUPPORT=y WITH_DEFRAG=1 $(MAKE) $(BCM_MAKEFLAGS) -C $(@D)/middleware/v3d/driver -f V3DDriver.mk
+ $(BCM_MAKE_ENV) $(BCM_ROCKFORD_DEBUG) NEXUS_CLIENT_SUPPORT=y $(MAKE) $(BCM_MAKEFLAGS) -C $(@D)/middleware/v3d/driver -f V3DDriver.mk
$(BCM_MAKE_ENV) $(BCM_ROCKFORD_DEBUG) NEXUS_CLIENT_SUPPORT=y $(MAKE) $(BCM_MAKEFLAGS) -C $(@D)/middleware/v3d/platform/nexus -f platform_nexus.mk
$(BCM_MAKE_ENV) $(BCM_ROCKFORD_DEBUG) NEXUS_CLIENT_SUPPORT=y NEXUS_MODE=client $(MAKE) $(BCM_MAKEFLAGS) -C $(@D)/applications/khronos/v3d/nexus/cube
$(BCM_MAKE_ENV) $(MAKE) $(BCM_MAKEFLAGS) -C $(@D)/lib/psip
diff --git a/package/catawampus/tr69_reboot b/package/catawampus/tr69_reboot
index 93a4b41..6cbf56b 100755
--- a/package/catawampus/tr69_reboot
+++ b/package/catawampus/tr69_reboot
@@ -1,9 +1,10 @@
#!/bin/sh
-set -e
# TODO pause until we think the user is not watching TV.
# TODO signal the miniclient to display a message?
+# If we've updated the image, do a hard reboot.
+[ -e /tmp/ginstall_complete ] && hard_reboot
/sbin/reboot
diff --git a/package/dek_tools/Config.in b/package/dek_tools/Config.in
new file mode 100644
index 0000000..cddc54a
--- /dev/null
+++ b/package/dek_tools/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_DEK_TOOLS
+ bool "dek_tools"
+ help
+ Adds Marvell's Device Embedding Kit applications
diff --git a/package/dek_tools/dek_tools.mk b/package/dek_tools/dek_tools.mk
new file mode 100644
index 0000000..0b7674b
--- /dev/null
+++ b/package/dek_tools/dek_tools.mk
@@ -0,0 +1,17 @@
+DEK_TOOLS_SITE=repo://vendor/marvell/dek-tools
+
+define DEK_TOOLS_CLEAN_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) TARGET=buildroot CC=$(TARGET_CROSS)gcc \
+ AR=$(TARGET_CROSS)ar -C $(@D) clean
+endef
+
+define DEK_TOOLS_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE1) TARGET=buildroot CC=$(TARGET_CROSS)gcc \
+ AR=$(TARGET_CROSS)ar -C $(@D)
+endef
+
+define DEK_TOOLS_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0755 -D $(@D)/apps/* $(TARGET_DIR)/usr/bin/
+endef
+
+$(eval $(call GENTARGETS))
diff --git a/package/google/google_mcastcapture/google_mcastcapture.mk b/package/google/google_mcastcapture/google_mcastcapture.mk
index 4c13748..ceda945 100644
--- a/package/google/google_mcastcapture/google_mcastcapture.mk
+++ b/package/google/google_mcastcapture/google_mcastcapture.mk
@@ -1,10 +1,11 @@
GOOGLE_MCASTCAPTURE_SITE=repo://vendor/google/mcastcapture
GOOGLE_MCASTCAPTURE_DEPENDENCIES=openssl libcurl protobuf zlib google_platform \
- google_libgep libevent libxml2 google_gflags
+ google_libgep libevent libxml2 google_gflags libjson-cpp
GOOGLE_MCASTCAPTURE_INSTALL_STAGING = YES
HOST_GOOGLE_MCASTCAPTURE_DEPENDENCIES += host-googletest host-openssl \
host-libcurl host-protobuf host-zlib host-google_platform \
- host-libevent host-google_libgep host-libxml2 host-google_gflags
+ host-libevent host-google_libgep host-libxml2 host-google_gflags \
+ host-libjsoncpp
define GOOGLE_MCASTCAPTURE_BUILD_CMDS
TARGET=$(TARGET_CROSS) \
diff --git a/package/google/google_platform/google_platform.mk b/package/google/google_platform/google_platform.mk
index bbe4899..b660253 100644
--- a/package/google/google_platform/google_platform.mk
+++ b/package/google/google_platform/google_platform.mk
@@ -32,8 +32,7 @@
HOST_GOOGLE_PLATFORM_DEPENDENCIES=\
$(GOOGLE_PLATFORM_DEPENDENCIES) \
host-googletest \
- host-protobuf \
- host-libpcap
+ host-protobuf
GOOGLE_PLATFORM_TARGET_CFLAGS=-I$(STAGING_DIR)/usr/include/python2.7
GOOGLE_PLATFORM_HOST_CFLAGS=-isystem $(HOST_DIR)/usr/include
@@ -101,6 +100,7 @@
endif
ifeq ($(BR2_PACKAGE_GOOGLE_PLATFORM_WAVEGUIDE),y)
+HOST_GOOGLE_PLATFORM_DEPENDENCIES += host-libpcap
BUILD_WAVEGUIDE=y
endif
diff --git a/package/google/google_spacecast/etc/init.d/S90spacecast b/package/google/google_spacecast/etc/init.d/S90spacecast
index 2c0e1a4..85a6bbc 100644
--- a/package/google/google_spacecast/etc/init.d/S90spacecast
+++ b/package/google/google_spacecast/etc/init.d/S90spacecast
@@ -2,11 +2,11 @@
# SpaceCast init script.
. /etc/utils.sh
-# Set the stack size to 1MB (Default to 8M) to support more concurrent streams.
+# Set the stack size to 256KB (Default to 8M) to avoid OOM issues.
# When CGO is enabled, each blocking syscall (Read, Write) will call
# pthread_create to create a new thread, so stack size for 100 concurrent
# streams would be 800MB and the memory limit would be hit without this change.
-ulimit -s 1024
+ulimit -s 256
APP="spacecast"
BINARY="/app/spacecast/appliance"
diff --git a/package/ifplugd/ifplugd.action b/package/ifplugd/ifplugd.action
index 60a9aeb..d3eae86 100755
--- a/package/ifplugd/ifplugd.action
+++ b/package/ifplugd/ifplugd.action
@@ -9,6 +9,8 @@
CONMAN_STATUS_DIR=/tmp/conman/interfaces
+echo "ifplugd: $iface is $action"
+
case "$action" in
up)
# Clear any existing dynamic IP config.
diff --git a/package/libevent/libevent.mk b/package/libevent/libevent.mk
index 66ce344..6141a2d 100644
--- a/package/libevent/libevent.mk
+++ b/package/libevent/libevent.mk
@@ -3,10 +3,9 @@
# libevent
#
#############################################################
-LIBEVENT_VERSION = 2.1.5
-LIBEVENT_SOURCE = libevent-$(LIBEVENT_VERSION)-beta.tar.gz
-LIBEVENT_SITE = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)-beta
-
+LIBEVENT_VERSION = 2.1.7-rc
+LIBEVENT_SOURCE = libevent-$(LIBEVENT_VERSION).tar.gz
+LIBEVENT_SITE = https://github.com/libevent/libevent/archive/release-$(LIBEVENT_VERSION)
LIBEVENT_AUTORECONF = NO
LIBEVENT_INSTALL_STAGING = YES
LIBEVENT_INSTALL_TARGET = YES
@@ -21,6 +20,12 @@
$(STAGING_DIR)/usr/include/$$n; \
done
endef
+define HOST_LIBEVENT_DAMAGE_DEPRECATED
+ for n in evdns.h evutil.h evrpc.h evhttp.h event.h; do \
+ sed -i '1i#error "ev*.h deprecated, use event2/*.h or ev.h"' \
+ $(HOST_DIR)/usr/include/$$n; \
+ done
+endef
# libevent installs a python script to target - get rid of it if we
# don't have python support enabled
@@ -28,9 +33,49 @@
LIBEVENT_POST_INSTALL_TARGET_HOOKS += LIBEVENT_REMOVE_PYSCRIPT
endif
+# libevent >= 2.1.7-rc requires manual autogen.sh invocation.
+define LIBEVENT_AUTOGEN
+ cd $(@D) && \
+ $(TARGET_MAKE_ENV) ./autogen.sh
+endef
+LIBEVENT_PRE_CONFIGURE_HOOKS += LIBEVENT_AUTOGEN
+HOST_LIBEVENT_PRE_CONFIGURE_HOOKS += LIBEVENT_AUTOGEN
+
# libev and libevent both install deprecated event.h.
# Damage deprecated files so we don't conflict.
LIBEVENT_POST_INSTALL_TARGET_HOOKS += LIBEVENT_DAMAGE_DEPRECATED
+HOST_LIBEVENT_POST_INSTALL_HOOKS += HOST_LIBEVENT_DAMAGE_DEPRECATED
+
+# Only build for SSL if it's enabled.
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+LIBEVENT_DEPENDENCIES += openssl
+LIBEVENT_CONF_OPTS += --enable-openssl
+# openssl needs zlib but configure forgets to link against it causing
+# openssl detection to fail
+ifeq ($(BR2_STATIC_LIBS),y)
+LIBEVENT_CONF_ENV += OPENSSL_LIBADD='-lz'
+endif
+else
+LIBEVENT_CONF_OPTS += --disable-openssl
+endif
+
+# We don't need samples, and we don't want the static libraries.
+LIBEVENT_CONF_OPTS += --disable-samples --disable-static
+HOST_LIBEVENT_CONF_OPTS += --disable-samples --disable-static
+
+# Build with PIC only.
+LIBEVENT_CONF_OPTS += --with-pic
+HOST_LIBEVENT_CONF_OPTS += --with-pic
+
+define LIBEVENT_REMOVE_PYSCRIPT
+ rm $(TARGET_DIR)/usr/bin/event_rpcgen.py
+endef
+
+# libevent installs a python script to target - get rid of it if we
+# don't have python support enabled
+ifneq ($(BR2_PACKAGE_PYTHON),y)
+LIBEVENT_POST_INSTALL_TARGET_HOOKS += LIBEVENT_REMOVE_PYSCRIPT
+endif
$(eval $(call AUTOTARGETS))
$(eval $(call AUTOTARGETS,host))
diff --git a/package/mv_app/mv_app.mk b/package/mv_app/mv_app.mk
index 1dca45f..551188a 100644
--- a/package/mv_app/mv_app.mk
+++ b/package/mv_app/mv_app.mk
@@ -20,7 +20,15 @@
cp -f $(@D)/tools/omci_tool $(TARGET_DIR)/usr/bin/; \
fi
mkdir -p $(TARGET_DIR)/etc/xml_params
- cp -fpP package/mv_app/xml_params/* $(TARGET_DIR)/etc/xml_params/
+
+ # Copy over shared XML files
+ cp -fpP package/mv_app/xml_params/*.xml $(TARGET_DIR)/etc/xml_params/
+
+ # Copy over platform specific XML files
+ cp -fpP package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/onu_profile_xml_cfg_file.xml
+ cp -fpP package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/tpm_xml_cfg_file_epon.xml
+ cp -fpP package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/tpm_xml_cfg_file_gpon.xml
+
endef
$(eval $(call GENTARGETS))
diff --git a/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/onu_profile_xml_cfg_file.xml
rename to package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt110
diff --git a/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400 b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400
new file mode 100644
index 0000000..b33d7ee
--- /dev/null
+++ b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+<cnfg>
+ <Vendor>
+ <!--ONU vendor ID: STRING(4). -->
+ <attrib name="ONU vendor ID" value="MRVL" />
+
+ <!--ONU vendor OUI: ARRAY(3). -->
+ <attrib name="ONU vendor OUI" value="0x005043" />
+
+ <!--ONU vendor name: STRING(64). -->
+ <attrib name="ONU vendor name" value="Marvell" />
+
+ <!--Model for eOAM: STRING(4). -->
+ <attrib name="Model for eOAM" value="6601" />
+
+ <!--Model for OMCI: STRING(20). -->
+ <attrib name="Model for OMCI" value="MRVL" />
+
+ <!--Model for TR-069: STRING(64). -->
+ <attrib name="Model for TR-069" value="MRVL" />
+
+ <!--ONU product code: ARRAY(2). -->
+ <attrib name="ONU product code" value="0x0201" />
+
+ <!--ONU product class: STRING(64). -->
+ <attrib name="ONU product class" value="Marvell AVANTA 88F6500" />
+
+ <!--HW version: STRING(64). -->
+ <attrib name="HW version" value="AVANTA A0" />
+
+ <!--SW version: STRING(64). -->
+ <attrib name="SW version" value="2.7.25" />
+
+ <!--Addtional HW version: STRING(64). -->
+ <attrib name="Addtional HW version" value="0" />
+
+ <!--Addtional SW version: STRING(64). -->
+ <attrib name="Addtional SW version" value="16" />
+
+ <!--Device description: STRING(256). -->
+ <attrib name="Device description" value="MARVELL AVANTA UPON device" />
+
+ <!--Firmware version: ARRAY(16). -->
+ <attrib name="Firmware version" value="0x00000001" />
+
+ <!--Chip vendor ID: ARRAY(2). -->
+ <attrib name="Chip vendor ID" value="0x03e9" />
+
+ <!--Chip model: ARRAY(2). -->
+ <attrib name="Chip model" value="0x6601" />
+
+ <!--Chip revision: BYTE(1). -->
+ <attrib name="Chip revision" value="0x02" />
+
+ <!--Chip version: ARRAY(3). -->
+ <attrib name="Chip version" value="0x000001" />
+
+ <!--Operator ID: STRING(4). -->
+ <attrib name="Operator ID" value="CTC" />
+ </Vendor>
+
+ <Capability>
+ <!--ONU type: UINT32. -->
+ <!--0:SFU, 1:HGU, 2:SBU, 3:CBU, 4:MDU, 5:MTU, 6:1FE+1POTS SFU, 7:Mixed HGU -->
+ <attrib name="ONU type" value="0" />
+
+ <!-- 1=MV_PON_WAN_DUAL_MAC_INT_SWITCH 2=MV_PON_WAN_G0_INT_SWITCH 3=MV_PON_WAN_G1_LAN_G0_INT_SWITCH 4=MV_G0_WAN_G1_INT_SWITCH
+ 5=MV_G1_WAN_G0_INT_SWITCH 6=MV_PON_G1_WAN_G0_INT_SWITCH 7=MV_PON_G0_WAN_G1_INT_SWITCH 8=MV_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=MV_PON_WAN_G1_MNG_EXT_SWITCH 10=MV_PON_WAN_G0_SINGLE_PORT 11=MV_PON_WAN_G1_SINGLE_PORT 12=MV_PON_G1_WAN_G0_SINGLE_PORT
+ 13=MV_PON_G0_WAN_G1_SINGLE_PORT 14=MV_PON_WAN_G0_G1_LPBK 15=MV_PON_WAN_G0_G1_DUAL_LAN 16=MV_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=MV_PON_G1_SGMII_WAN_G0_SINGLE_PORT -->
+ <attrib name="Complex profile" value="17" />
+
+ <!-- active_wan 0=GMAC0 1=GMAC1 2=PMAC -->
+ <attrib name="Active wan" value="1" />
+
+ <!-- switch port to appliacation port(start from 1) mapping -->
+ <attrib name="Switch port 0" value="1" />
+ <attrib name="Switch port 1" value="2" />
+ <attrib name="Switch port 2" value="3" />
+ <attrib name="Switch port 3" value="4" />
+
+ <!--Voice management method: BYTE. -->
+ <!--0:TR-069, 1:eOAM/OMCI, 2:Proprietary. -->
+ <attrib name="Voice management method" value="1" />
+
+ <!--PON port number: BYTE. -->
+ <attrib name="PON port number" value="1" />
+
+ <!--GE Ethernet port number: BYTE. -->
+ <attrib name="GE Ethernet port number" value="1" />
+
+ <!--FE Ethernet port number: BYTE. -->
+ <attrib name="FE Ethernet port number" value="0" />
+
+ <!--POTS port number: BYTE. -->
+ <attrib name="POTS port number" value="2" />
+
+ <!--WIFI port number: BYTE. -->
+ <attrib name="WIFI port number" value="0" />
+
+ <!--USB port number: BYTE. -->
+ <attrib name="USB port number" value="0" />
+
+ <!--E1 port number: BYTE. -->
+ <attrib name="E1 port number" value="0" />
+
+ <!--ADSL port number: BYTE. -->
+ <attrib name="ADSL port number" value="0" />
+
+ <!--VDSL port number: BYTE. -->
+ <attrib name="VDSL port number" value="0" />
+
+ <!--CATV port number: BYTE. -->
+ <attrib name="CATV port number" value="0" />
+
+ <!--GE Ethernet port bitmap: UINT32. -->
+ <attrib name="GE Ethernet port bitmap" value="0x01" />
+
+ <!--FE Ethernet port bitmap: UINT32. -->
+ <attrib name="FE Ethernet port bitmap" value="0x00" />
+
+ <!--Maximum upstream queue per port: UINT32. -->
+ <attrib name="Maximum upstream queue per port" value="4" />
+
+ <!--Maximum downstream queue per port: UINT32. -->
+ <attrib name="Maximum downstream queue per port" value="4" />
+
+ <!--Maximum queue per T-CONT: UINT32. -->
+ <attrib name="Maximum queue per T-CONT" value="4" />
+
+ <!--Maximum queue per GEM MAC port: UINT32. -->
+ <attrib name="Maximum queue per GEM MAC port" value="4" />
+
+ <!--ONU pluggable capability: BYTE. -->
+ <!--0: unpluggable, 1: pluggable -->
+ <attrib name="ONU pluggable capability" value="0" />
+
+ <!--Total slot number: BYTE. -->
+ <attrib name="Total slot number" value="1" />
+
+ <!--Total T-CONT number: BYTE. -->
+ <attrib name="Total T-CONT number" value="8" />
+
+ <!--Total LLID number: BYTE. -->
+ <attrib name="Total LLID number" value="1" />
+
+ <!--Total GEM port number: UINT32. -->
+ <attrib name="Total GEM port number" value="256" />
+
+ <!--ONU protect type: BYTE. -->
+ <!--0: no protection support, 1: support type C link protection, 2: support type D link protection -->
+ <attrib name="ONU protect type" value="1" />
+
+ <!--IPv6 support capability: BYTE. -->
+ <!--0: do not support IPv6, 1: support IPv6 -->
+ <attrib name="IPv6 support capability" value="0" />
+
+ <!--Power control support capability: BYTE. -->
+ <!--0��don't support ONU power supply control
+ 1��Support ONU Tx power supply control only.
+ 2��Support both Tx and Rx power supply control.-->
+ <attrib name="Power control support capability" value="2" />
+
+ <!--SLA support capability: BYTE. -->
+ <!--1��don't support Service SLA��
+ 2-8��Support Service SLA function��
+ The value indicates the number of services the ONU supported. -->
+ <attrib name="SLA support capability" value="4" />
+
+ <!--Sleep mode support capability: BYTE. -->
+ <!--0:neither Tx nor Rx supported, 1:only Tx supported
+ 2:only Rx supported, 3:both Tx and Rx supported -->
+ <attrib name="Sleep mode support capability" value="3" />
+
+ <!--Wakeup support capability: BYTE. -->
+ <!--0: early wake-up is supported, 1: early wake-up is not supported-->
+ <attrib name="Wakeup support capability" value="1" />
+
+ <!--Traffic management option: BYTE. -->
+ <!--0:Priority controlled and flexibly scheduled upstream traffic.
+ 1:Rate controlled upstream traffic.
+ 2:Priority and rate controlled -->
+ <attrib name="Traffic management option" value="2" />
+
+ <!--Battery backup support capability: BYTE. -->
+ <!--0: do not support battery backup, 1: support battery backup -->
+ <attrib name="Battery backup support capability" value="0" />
+
+ <!--Downstream multicast channel: UINT32. -->
+ <!--0: from multicast mac address channel, 1: from multicast gemport channel-->
+ <attrib name="Downstream multicast channel" value="1" />
+
+ <!--IGMPV1 messages discard: UINT32. -->
+ <!--0: forward igmpv1 messages, 1: discard igmpv1 messages-->
+ <attrib name="IGMPV1 messages discard" value="1" />
+ </Capability>
+
+ <Queue>
+ <!-- id : GMAC number, 0:GMAC0, 2:T-CONT0, 3:T-CONT1, ...9:T-CONT7, currently does not support GMAC1 -->
+ <!-- v_q_num : Total virtual queue number in each T-CONT -->
+ <!-- hwf_q_map : Virtual queue to real HWF queue mapping list, Example:0=7 means virtual 0 map to HWF queue 7,should be accordant with TPM XML -->
+ <!-- swf_q_map : Virtual queue to real SWF queue mapping list, Example:0=7 means virtual 0 map to SWF queue 6,should be accordant with TPM XML -->
+ <gmac id="0" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="2" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="3" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="4" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="5" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="6" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="7" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="8" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="9" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ </Queue Mapping>
+</cnfg>
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml
rename to package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt110
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400 b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400
new file mode 100644
index 0000000..a5133b4
--- /dev/null
+++ b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400
@@ -0,0 +1,460 @@
+<?xml version="1.0"?>
+<cnfg>
+ <eth_complex_config>
+ <!-- 1=TPM_PON_WAN_DUAL_MAC_INT_SWITCH 2=TPM_PON_WAN_G0_INT_SWITCH 3=TPM_PON_WAN_G1_LAN_G0_INT_SWITCH 4=TPM_G0_WAN_G1_INT_SWITCH
+ 5=TPM_G1_WAN_G0_INT_SWITCH 6=TPM_PON_G1_WAN_G0_INT_SWITCH 7=TPM_PON_G0_WAN_G1_INT_SWITCH 8=TPM_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=TPM_PON_WAN_G1_MNG_EXT_SWITCH 10=TPM_PON_WAN_G0_SINGLE_PORT 11=TPM_PON_WAN_G1_SINGLE_PORT 12=TPM_PON_G1_WAN_G0_SINGLE_PORT
+ 13=TPM_PON_G0_WAN_G1_SINGLE_PORT 14=TPM_PON_WAN_G0_G1_LPBK 15=TPM_PON_WAN_G0_G1_DUAL_LAN 16=TPM_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT
+ -->
+ <profile>17</profile>
+ <!-- src 0) TPM_SRC_PORT_UNI_0
+ 1) TPM_SRC_PORT_UNI_1
+ ...
+ 7) TPM_SRC_PORT_UNI7 -->
+ <switch_ports>
+ <port id="0" src_port="0"/>
+ <port id="1" src_port="1"/>
+ <port id="2" src_port="2"/>
+ <port id="3" src_port="3"/>
+ </switch_ports>
+ <gmac_ports>
+ <port id="0" src_port="0"/>
+ </gmac_ports>
+ <!-- active_wan 0=TPM_ENUM_GMAC_0 1=TPM_ENUM_GMAC_1 2=TPM_ENUM_PMAC -->
+ <active_wan>1</active_wan>
+ </eth_complex_config>
+
+ <traffic_setting>
+ <!-- pppoe_add_enable: 0 = disable, 1 = enable
+ Indicates system can be required to insert pppoe_header in upstream for routed/napt traffic.-->
+ <pppoe_add_enable>1</pppoe_add_enable>
+
+ <!-- Maximum required number of Vlan Tags.
+ Influences the modification chain_size and the max. mru -->
+ <num_vlan_tags>2</num_vlan_tags>
+ <!-- Action for packets with illegal TTL -->
+ <!-- 0 = no action, 1 = drop, 2 = trap to CPU -->
+ <ttl_illegal_action>2</ttl_illegal_action>
+ <!-- Check TCP FIN & RES flags, to trap 5-tuples w/ these flags raised to CPU -->
+ <!-- 0 = do not check, 1 = check -->
+ <tcp_flag_check>1</tcp_flag_check>
+ <!-- CPU Rx Queue for all trapped packets (trapped due to packet TTL , TCP flags, ) -->
+ <cpu_trap_rx_queue>0</cpu_trap_rx_queue>
+ <!-- Put Switch Port connected to packet Processor in EtherType_DSA_Tag mode -->
+ <ety_dsa_enable>0</ety_dsa_enable>
+ </traffic_setting>
+
+ <mtu_setting>
+ <!-- mtu_setting_enabled: 0 = disable, 1 = enable
+ Indicates if Layer3 Hardware_forward packets that are (> MTU) must be trapped to CPU -->
+ <mtu_setting_enabled>0</mtu_setting_enabled>
+ <!-- In EPON US, the max packet size PON MAC can handle is 1593 -->
+ <!-- IPv4oE downstream mtu -->
+ <ipv4_mtu_ds>1570</ipv4_mtu_ds>
+ <!-- IPv4oE upstream mtu
+ MTU=1593-DA(6)-SA(6)-2*VLAN(4)-ETY(2) -->
+ <ipv4_mtu_us>1570</ipv4_mtu_us>
+ <!-- IPv4oPPPoE upstream mtu (for routed/napt traffic w/ pppoe_hdr insertion), also dependent on <pppoe_add_enable> -->
+ <!-- MTU=1593-DA(6)-SA(6)-2*VLAN(4)-ETY(2)-PPPoE HEADER(8) -->
+ <ipv4_pppoe_mtu_us>1562</ipv4_pppoe_mtu_us>
+ </mtu_setting>
+
+
+ <igmp_snoop>
+ <!-- Snooping enabled: 0 = FALSE, 1 = TRUE
+ When set to TRUE, the igmp_range must be created, and the following params determine igmp behavior -->
+ <enabled>1</enabled>
+ <!-- CPU rx queue for trapped IGMP packets: 0 -7 -->
+ <igmp_cpu_rx_queue>7</igmp_cpu_rx_queue>
+ <!-- Per UNI IGMP packet forwarding mode :
+ 0 = drop, 1 = forward, 2= snoop -->
+ <igmp_frwrd_mode_wan>2</igmp_frwrd_mode_wan>
+ <igmp_frwrd_mode_uni0>2</igmp_frwrd_mode_uni0>
+ <igmp_frwrd_mode_uni1>2</igmp_frwrd_mode_uni1>
+ <igmp_frwrd_mode_uni2>2</igmp_frwrd_mode_uni2>
+ <igmp_frwrd_mode_uni3>2</igmp_frwrd_mode_uni3>
+ <igmp_frwrd_mode_uni4>2</igmp_frwrd_mode_uni4>
+ </igmp_snoop>
+
+ <multicast>
+ <!-- Multicast over PPPoE allowed: (0 = FALSE, 1 = TRUE) -->
+ <mc_pppoe_enable>1</mc_pppoe_enable>
+ <!-- Per UNI Vlan translation: 0 = no_per_uni_translation, 1 = per_uni_translation
+ when this feature is enabled, range size of TPM_PNC_VIRT_UNI must be increased by 4 -->
+ <mc_per_uni_vlan_xlat>0</mc_per_uni_vlan_xlat>
+ <!-- Multicast per uni vlan xlat support for IPv4/6: 0 = no support, 1 = support -->
+ <ipv4_mc_support>1</ipv4_mc_support>
+ <ipv6_mc_support>1</ipv6_mc_support>
+ <!-- Multicast filtering mode -->
+ <!-- 0 = Forward all Multicast traffic to CPU
+ 1 = Multicast traffic is forwarded to the Internal Switch, where it is filtered based on MAC_DA.
+ 2 = Multicast traffic is filtered in packet processor according to (vid, dip, sip).
+ The stream specific target uni_port(s) are determined in Internal Switch based on MAC_DA
+ 3 = Multicast traffic is forwarded exclusively by (vid, dip, sip) including setting the target uni_ports -->
+ <mc_filter_mode>3</mc_filter_mode>
+ <!-- Multicast hwf queue: Set to highest txq of GMAC0, whose owner is PMAC. -->
+ <mc_hwf_queue>7</mc_hwf_queue>
+ <!-- Multicast cpu queue: Set to highest PMAC rx queue -->
+ <mc_cpu_queue>7</mc_cpu_queue>
+ </multicast>
+
+ <port_init>
+ <gmac_config>
+ <pon_config>
+ <!-- Max. number of configured TCONTs(GPON), LLIDs(EPON) -->
+ <num_tcont_llid>1</num_tcont_llid>
+ </pon_config>
+
+ <gmac_mh_en>
+ <!-- GMAC Marvell_Header configuration - GMAC adds 2B Marvell header at beginning of packet
+ mh_enabled 0 = FALSE, 1 = TRUE, 2 = AUTO (enabled if connected to Switch) -->
+ <gmac0_mh_en>0</gmac0_mh_en>
+ <gmac1_mh_en>0</gmac1_mh_en>
+ </gmac_mh_en>
+
+ <gmac_bm_buffers>
+ <!-- BM pool buffers per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- Number of buffers for large packets must be ( >= 128) -->
+ <!-- Number of buffers for small packets must each be ( >= 128) -->
+
+ <!-- Undefined BM Pools will receive kernel default values -->
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_bm_buffers> definitions will have no effect,
+ kernel default values are used instead. -->
+ <gmac id="0" large_pkt_pool_bufs="1024" small_pkt_pool_bufs="3072" />
+ <gmac id="1" large_pkt_pool_bufs="512" small_pkt_pool_bufs="2048" />
+ <gmac id="2" large_pkt_pool_bufs="512" small_pkt_pool_bufs="2048" />
+ </gmac_bm_buffers>
+
+ <gmac_rx_queues>
+ <!-- Rx queue sizes per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- size must be >0 -->
+ <!-- Undefined queues will be set to size=0 in hardware -->
+
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_rx_queues> definitions will have no effect,
+ kernel default values are used instead. -->
+
+ <gmac id="0">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="1">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="2">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ </gmac_rx_queues>
+
+ </gmac_config>
+
+ <tx_module_parameters>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="0">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0256" weight="0" />
+ <queue id="1" sched_method="0" owner="3" owner_q_num="0" size="0256" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="0256" weight="0" />
+ <queue id="3" sched_method="0" owner="3" owner_q_num="1" size="0256" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="0256" weight="0" />
+ <queue id="5" sched_method="0" owner="3" owner_q_num="2" size="0256" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="0256" weight="0" />
+ <queue id="7" sched_method="0" owner="3" owner_q_num="3" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="1">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0064" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="2">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="3072" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="3072" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="3072" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="3072" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="3072" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="3072" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="3072" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="3072" weight="0" />
+ </queue_map>
+ </tx_mod>
+ </tx_module_parameters>
+
+ </port_init>
+
+ <flow_control>
+ <enabled>0</enabled>
+ <queue_sample_freq>1000</queue_sample_freq>
+ <thresh_high>560</thresh_high>
+ <thresh_low>300</thresh_low>
+ <port>1</port>
+ <tgt_port>0</tgt_port>
+ <tx_port>0</tx_port>
+ <tx_queue>1</tx_queue>
+ </flow_control>
+
+ <TPM>
+ <!-- Get TPM configuration mode: 0 = Application, 1 = Kernel -->
+ <GET_config_mode>1</GET_config_mode>
+ <!-- VALIDATION type: 0 = DISABLED, 1 = ENABLED -->
+ <validation_enable>1</validation_enable>
+
+ <!-- Support 2G DS with GMAC0/1: 0 = disable, 1 = enable -->
+ <ds_mac_based_trunking>0</ds_mac_based_trunking>
+
+ <!-- Init switch or not: 0 = do not Init, 1 = do Init -->
+ <switch_init>0</switch_init>
+
+ <!-- PNC_config:
+ 0 = PNC is configured by the MV neta driver,
+ 1 = PNC is configured by the TPM SW
+ -->
+ <pnc_config>1</pnc_config>
+
+ <ds_mh_set>0</ds_mh_set>
+
+ <!-- cpu_wan_egr_loopback:
+ 0 = CPU WAN Egress Loopback - disabled
+ 1 = CPU WAN Egress Loopback - enabled
+ -->
+ <cpu_wan_egr_loopback>0</cpu_wan_egr_loopback>
+
+ <!-- IPV6 5-tuple status :
+ 0 = IPV6 is configured by normal API,
+ 1 = ipv6 is configured by 5-tuple API
+ -->
+ <ipv6_5t_enable>1</ipv6_5t_enable>
+
+ <!-- GMAC1 acts as virtual UNI :
+ 0 = virtual UNI via GMAC1 - disabled,
+ 1 = virtual UNI via GMAC1 - enabled
+ -->
+ <gmac1_virt_uni>0</gmac1_virt_uni>
+
+ <vlan_filter_tpid>
+ <!-- id : option id -->
+ <!-- comb : tpid combination
+ format - 0xAABB[,0xCCDD] -->
+ <filter_tpid id="0" type="0x8100,0x8100" />
+ <filter_tpid id="1" type="0x9100,0x8100" />
+ <filter_tpid id="2" type="0x88A8,0x8100" />
+ <filter_tpid id="3" type="0x88A8,0x88A8" />
+ <filter_tpid id="4" type="0x8100,0x88A8" />
+ <filter_tpid id="5" type="0x8100" />
+ <filter_tpid id="6" type="0x88A8" />
+ <filter_tpid id="7" type="0x9100" />
+ </vlan_filter_tpid>
+
+ <!-- trace_debug_info:
+ 0xAAAABBBB = AAAA = trace levels
+ BBBB = debug printouts
+ 0x00000000 = trace & debug printouts are disabled,
+ 0x80000000 = FATAL_TRACE_LEVEL 0x00000001 = TPM_DB_MOD
+ 0xC0000000 = ERROR_TRACE_LEVEL 0x00000002 = TPM_PNCL_MOD
+ 0xE0000000 = WARN_TRACE_LEVEL 0x00000004 = TPM_INIT_MOD
+ 0xF0000000 = INFO_TRACE_LEVEL 0x00000008 = TPM_HWM_MOD
+ 0xF8000000 = DEBUG_TRACE_LEVEL 0x00000010 = TPM_MODL_MOD
+ 0x00000020 = TPM_TPM_LOG_MOD
+ 0xFFFF0000 = ALL_TRACE_LEVEL 0x00000040 = TPM_CLI_MOD
+ 0x00000080 = TPM_PNC_HM_MOD
+ 0x00000100 = TPM_MODZ1_HM_MOD
+ 0x00000200 = TPM_MODZ2_HM_MOD
+
+ 0x0000FFFF = TPM_ALL_MODULES
+ 0xFFFFFFFF = trace & debug printouts are ALL ENABLED
+ 0xE000FFFF = default value = (WARN + ERRORS ) for trace level
+ ALL for debug printouts
+ -->
+ <trace_debug_info>0xE000FFFF</trace_debug_info>
+
+ <!-- Values for VLAN ETY registers -->
+ <vlan_mod_tpid>
+ <!-- id : type number -->
+ <!-- type : VLAN type (0xFFFF - NULL value) -->
+ <mod_tpid id="0" type="0x8100" />
+ <mod_tpid id="1" type="0x88A8" />
+ <mod_tpid id="2" type="0x9100" />
+ <mod_tpid id="3" type="0xAABB" />
+ </vlan_mod_tpid>
+
+ <modification>
+ <!-- configuration of modification chains: -->
+ <!-- id : chain id -->
+ <!-- type : chain type
+ 1 - MH_MOD_SUBR_CHAIN
+ 2 - MAC_MOD_SUBR_CHAIN
+ 3 - VLAN_MOD_SUBR_CHAIN
+ 4 - PPPOE_MOD_SUBR_CHAIN
+ 5 - IPV6_PPPOE_MOD_SUBR_CHAIN
+ 6 - L2_MAIN_CHAIN
+ 7 - IPV4_NAPT_MAIN_CHAIN
+ 8 - IPV4_MULTICAST_MAIN_CHAIN
+ 9 - IPV6_ROUTING_MAIN_CHAIN
+ 10 - IPV6_MULTICAST_MAIN_CHAIN -->
+ <!-- num : number of modification chain entries
+ 4096 - "all remaining", fills up remaining part of the modification tables with this chain_type.
+ Only "L2_MAIN_CHAIN" OR "IPV4_NAPT_MAIN_CHAIN" can be assigned "all remaining" -->
+ <chain_parameters>
+ <chain id="0" type="1" num="32" />
+ <chain id="1" type="2" num="64" />
+ <chain id="2" type="3" num="300" />
+ <chain id="3" type="4" num="8" />
+ <chain id="4" type="5" num="6" />
+ <chain id="5" type="6" num="170" />
+ <chain id="6" type="7" num="4096" />
+ <chain id="7" type="8" num="16" />
+ <chain id="8" type="9" num="64" />
+ <chain id="9" type="10" num="16" />
+ </chain_parameters>
+ <udp_checksum_use_init>0</udp_checksum_use_init>
+ <udp_checksum_calc>0</udp_checksum_calc>
+ <split_mod>
+ <!-- enable/disable split pbit and vid modification, 1: enable, 0: disable -->
+ <enable>1</enable>
+ <!--p_bit that supported -->
+ <p_bits>0, 1, 2, 3, 4, 5, 6, 7</p_bits >
+ <!--vlan number that needs split pbit and vid modification, 0~16 -->
+ <vlan_num>16</vlan_num>
+ </split_mod>
+ </modification>
+ <!-- CTC CnM status :
+ 0 = CTC CnM - disabled,
+ 1 = CTC CnM - enabled
+ -->
+ <ctc_cnm_enable>1</ctc_cnm_enable>
+ <!-- PNC MAC learning status :
+ 0 = PNC MAC learn - disabled,
+ 1 = PNC MAC learn - enabled
+ -->
+ <split_mod_mode>0</split_mod_mode>
+ <!-- split modification work mode :
+ 0 = CTC mode,
+ 1 = TR156 mode
+ -->
+ <pnc_mac_learn_enable>0</pnc_mac_learn_enable>
+
+ <!-- CTC IPv6 CNM parsing window: 0 = first 24 bytes of IPv6 header, 1 = second 24 bytes -->
+ <ctc_cnm_ipv6_parsing_window>0</ctc_cnm_ipv6_parsing_window>
+
+ <PnC>
+ <!-- num : -->
+ <!-- type : 0 = ACL, 1 = TABLE -->
+ <!-- cntr_grp : 0 = GROUP_0(Default), 1-3 = GROUP_1/GROUP_2/GROUP_3/ -->
+ <!-- lu_mask_all : 0 = DONT_MASK, 1 = MASK -->
+ <!-- min_reset_level: 0 = level_0(Default), 1 = level_1(hard_reset), 2 = Never -->
+ <range_parameters>
+ <!-- TPM_PNC_MNGMT_DS -->
+ <range num="00" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "1" />
+ <!-- TPM_PNC_MAC_LEARN -->
+ <range num="01" type="0" size="00" cntr_grp="3" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CPU_WAN_LPBK_US -->
+ <range num="02" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_NUM_VLAN_TAGS -->
+ <range num="03" type="0" size="09" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DS_LOAD_BALANCE -->
+ <range num="04" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_MULTI_LPBK -->
+ <range num="05" type="0" size="20" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_VIRT_UNI -->
+ <range num="06" type="0" size="13" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_LOOP_DET_US -->
+ <range num="07" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DROP_PRECEDENCE -->
+ <range num="08" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_L2_MAIN -->
+ <range num="09" type="0" size="64" cntr_grp="1" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_ETH_TYPE -->
+ <range num="10" type="0" size="16" cntr_grp="2" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IGMP -->
+ <range num="11" type="0" size="06" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MC_DS -->
+ <range num="12" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MAIN -->
+ <range num="13" type="1" size="64" cntr_grp="3" lu_mask="0" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_TCP_FLAG -->
+ <range num="14" type="0" size="12" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_TTL -->
+ <range num="15" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_PROTO -->
+ <range num="16" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_FRAG -->
+ <range num="17" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_LEN -->
+ <range num="18" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_NH -->
+ <range num="19" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4_MC_DS -->
+ <range num="20" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_TCP_FLAG -->
+ <range num="21" type="1" size="02" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4 -->
+ <range num="22" type="1" size="17" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_HOPL -->
+ <range num="23" type="1" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_SIP -->
+ <range num="24" type="1" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_GEN -->
+ <range num="25" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_DS -->
+ <range num="26" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_DIP -->
+ <range num="27" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_IPV4_PRE -->
+ <range num="28" type="1" size="36" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_MAIN -->
+ <range num="29" type="0" size="43" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CATCH_ALL -->
+ <range num="30" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ </range_parameters>
+ <!-- 0 = drop, 1 = trap to CPU -->
+ <catch_all_pkt_action>1</catch_all_pkt_action>
+ </PnC>
+ </TPM>
+</cnfg>
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml
rename to package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt110
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400 b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400
new file mode 100644
index 0000000..620f8bc
--- /dev/null
+++ b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400
@@ -0,0 +1,599 @@
+<?xml version="1.0"?>
+<cnfg>
+ <eth_complex_config>
+ <!-- 1=TPM_PON_WAN_DUAL_MAC_INT_SWITCH 2=TPM_PON_WAN_G0_INT_SWITCH 3=TPM_PON_WAN_G1_LAN_G0_INT_SWITCH 4=TPM_G0_WAN_G1_INT_SWITCH
+ 5=TPM_G1_WAN_G0_INT_SWITCH 6=TPM_PON_G1_WAN_G0_INT_SWITCH 7=TPM_PON_G0_WAN_G1_INT_SWITCH 8=TPM_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=TPM_PON_WAN_G1_MNG_EXT_SWITCH 10=TPM_PON_WAN_G0_SINGLE_PORT 11=TPM_PON_WAN_G1_SINGLE_PORT 12=TPM_PON_G1_WAN_G0_SINGLE_PORT
+ 13=TPM_PON_G0_WAN_G1_SINGLE_PORT 14=TPM_PON_WAN_G0_G1_LPBK 15=TPM_PON_WAN_G0_G1_DUAL_LAN 16=TPM_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT
+ -->
+ <profile>17</profile>
+ <!-- src 0) TPM_SRC_PORT_UNI_0
+ 1) TPM_SRC_PORT_UNI_1
+ ...
+ 7) TPM_SRC_PORT_UNI7 -->
+ <switch_ports>
+ <port id="0" src_port="0"/>
+ <port id="1" src_port="1"/>
+ <port id="2" src_port="2"/>
+ <port id="3" src_port="3"/>
+ </switch_ports>
+ <gmac_ports>
+ <port id="0" src_port="0"/>
+ </gmac_ports>
+ <!-- active_wan 0=TPM_ENUM_GMAC_0 1=TPM_ENUM_GMAC_1 2=TPM_ENUM_PMAC -->
+ <active_wan>1</active_wan>
+ </eth_complex_config>
+
+ <traffic_setting>
+ <!-- pppoe_add_enable: 0 = disable, 1 = enable
+ Indicates system can be required to insert pppoe_header in upstream for routed/napt traffic.-->
+ <pppoe_add_enable>1</pppoe_add_enable>
+
+ <!-- Maximum required number of Vlan Tags.
+ Influences the modification chain_size and the max. mru -->
+ <num_vlan_tags>2</num_vlan_tags>
+ <!-- Action for packets with illegal TTL -->
+ <!-- 0 = no action, 1 = drop, 2 = trap to CPU -->
+ <ttl_illegal_action>2</ttl_illegal_action>
+ <!-- Check TCP FIN & RES flags, to trap 5-tuples w/ these flags raised to CPU -->
+ <!-- 0 = do not check, 1 = check -->
+ <tcp_flag_check>1</tcp_flag_check>
+ <!-- CPU Rx Queue for all trapped packets (trapped due to packet TTL , TCP flags, ) -->
+ <cpu_trap_rx_queue>0</cpu_trap_rx_queue>
+ <!-- Put Switch Port connected to packet Processor in EtherType_DSA_Tag mode -->
+ <ety_dsa_enable>0</ety_dsa_enable>
+ </traffic_setting>
+
+ <mtu_setting>
+ <!-- mtu_setting_enabled: 0 = disable, 1 = enable
+ Indicates if Layer3 Hardware_forward packets that are (> MTU) must be trapped to CPU -->
+ <mtu_setting_enabled>0</mtu_setting_enabled>
+ <!-- In GPON US, the max packet size PON MAC can handle is 2000 -->
+ <!-- IPv4oE downstream mtu -->
+ <ipv4_mtu_ds>1978 </ipv4_mtu_ds>
+ <!-- IPv4oE upstream mtu
+ MTU=2000-DA(6)-SA(6)-2*VLAN(4)-ETY(2) -->
+ <ipv4_mtu_us>1978</ipv4_mtu_us>
+ <!-- IPv4oPPPoE upstream mtu (for routed/napt traffic w/ pppoe_hdr insertion), also dependent on <pppoe_add_enable> -->
+ <!-- MTU=2000-DA(6)-SA(6)-2*VLAN(4)-ETY(2)-PPPoE HEADER(8) -->
+ <ipv4_pppoe_mtu_us>1970</ipv4_pppoe_mtu_us>
+ </mtu_setting>
+
+ <igmp_snoop>
+ <!-- Snooping enabled: 0 = FALSE, 1 = TRUE
+ When set to TRUE, the igmp_range must be created, and the following params determine igmp behavior -->
+ <enabled>1</enabled>
+ <!-- CPU rx queue for trapped IGMP packets: 0 -7 -->
+ <igmp_cpu_rx_queue>7</igmp_cpu_rx_queue>
+ <!-- Per UNI IGMP packet forwarding mode :
+ 0 = drop, 1 = forward, 2= snoop -->
+ <igmp_frwrd_mode_wan>2</igmp_frwrd_mode_wan>
+ <igmp_frwrd_mode_uni0>2</igmp_frwrd_mode_uni0>
+ <igmp_frwrd_mode_uni1>2</igmp_frwrd_mode_uni1>
+ <igmp_frwrd_mode_uni2>2</igmp_frwrd_mode_uni2>
+ <igmp_frwrd_mode_uni3>2</igmp_frwrd_mode_uni3>
+ <igmp_frwrd_mode_uni4>2</igmp_frwrd_mode_uni4>
+ </igmp_snoop>
+
+ <multicast>
+ <!-- Multicast over PPPoE allowed: (0 = FALSE, 1 = TRUE) -->
+ <mc_pppoe_enable>1</mc_pppoe_enable>
+ <!-- Per UNI Vlan translation: 0 = no_per_uni_translation, 1 = per_uni_translation
+ when this feature is enabled, range size of TPM_PNC_VIRT_UNI must be increased by 4 -->
+ <mc_per_uni_vlan_xlat>0</mc_per_uni_vlan_xlat>
+ <!-- Multicast per uni vlan xlat support for IPv4/6: 0 = no support, 1 = support -->
+ <ipv4_mc_support>1</ipv4_mc_support>
+ <ipv6_mc_support>1</ipv6_mc_support>
+ <!-- Multicast filtering mode -->
+ <!-- 0 = Forward all Multicast traffic to CPU
+ 1 = Multicast traffic is forwarded to the Internal Switch, where it is filtered based on MAC_DA.
+ 2 = Multicast traffic is filtered in packet processor according to (vid, dip, sip).
+ The stream specific target uni_port(s) are determined in Internal Switch based on MAC_DA
+ 3 = Multicast traffic is forwarded exclusively by (vid, dip, sip) including setting the target uni_ports -->
+ <mc_filter_mode>3</mc_filter_mode>
+ <!-- Multicast hwf queue: Set to highest txq of GMAC0, whose owner is PMAC. -->
+ <mc_hwf_queue>7</mc_hwf_queue>
+ <!-- Multicast cpu queue: Set to highest PMAC rx queue -->
+ <mc_cpu_queue>0</mc_cpu_queue>
+ </multicast>
+
+ <port_init>
+ <gmac_config>
+ <pon_config>
+ <!-- Max. number of configured TCONTs(GPON), LLIDs(EPON) -->
+ <num_tcont_llid>8</num_tcont_llid>
+ </pon_config>
+
+ <gmac_mh_en>
+ <!-- GMAC Marvell_Header configuration - GMAC adds 2B Marvell header at beginning of packet
+ mh_enabled 0 = FALSE, 1 = TRUE, 2 = AUTO (enabled if connected to Switch) -->
+ <gmac0_mh_en>0</gmac0_mh_en>
+ <gmac1_mh_en>0</gmac1_mh_en>
+ </gmac_mh_en>
+
+ <gmac_bm_buffers>
+ <!-- BM pool buffers per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- Number of buffers for large packets must be ( >= 128) -->
+ <!-- Number of buffers for small packets must each be ( >= 128) -->
+
+ <!-- Undefined BM Pools will receive kernel default values -->
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_bm_buffers> definitions will have no effect,
+ kernel default values are used instead. -->
+ <gmac id="0" large_pkt_pool_bufs="2048" small_pkt_pool_bufs="4096" />
+ <gmac id="1" large_pkt_pool_bufs="2048" small_pkt_pool_bufs="4096" />
+ <gmac id="2" large_pkt_pool_bufs="128" small_pkt_pool_bufs="512" />
+ </gmac_bm_buffers>
+
+ <gmac_rx_queues>
+ <!-- Rx queue sizes per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- size must be >0 -->
+ <!-- Undefined queues will be set to size=0 in hardware -->
+
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_rx_queues> definitions will have no effect,
+ kernel default values are used instead. -->
+
+ <gmac id="0">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="1">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="2">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ </gmac_rx_queues>
+
+ </gmac_config>
+
+ <tx_module_parameters>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="0">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0256" weight="0" />
+ <queue id="1" sched_method="0" owner="3" owner_q_num="0" size="0256" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="0256" weight="0" />
+ <queue id="3" sched_method="0" owner="3" owner_q_num="1" size="0256" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="0256" weight="0" />
+ <queue id="5" sched_method="0" owner="3" owner_q_num="2" size="0256" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="0256" weight="0" />
+ <queue id="7" sched_method="0" owner="3" owner_q_num="3" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="1">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="2">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="3">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="4">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="5">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="6">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="7">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="8">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="9">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ </tx_module_parameters>
+
+ </port_init>
+
+ <flow_control>
+ <enabled>0</enabled>
+ <queue_sample_freq>1000</queue_sample_freq>
+ <thresh_high>560</thresh_high>
+ <thresh_low>300</thresh_low>
+ <port>1</port>
+ <tgt_port>0</tgt_port>
+ <tx_port>0</tx_port>
+ <tx_queue>1</tx_queue>
+ </flow_control>
+
+ <TPM>
+ <!-- Get TPM configuration mode: 0 = Application, 1 = Kernel -->
+ <GET_config_mode>1</GET_config_mode>
+ <!-- VALIDATION type: 0 = DISABLED, 1 = ENABLED -->
+ <validation_enable>1</validation_enable>
+
+ <!-- Support 2G DS with GMAC0/1: 0 = disable, 1 = enable -->
+ <ds_mac_based_trunking>0</ds_mac_based_trunking>
+
+ <!-- Init switch or not: 0 = do not Init, 1 = do Init -->
+ <switch_init>0</switch_init>
+
+ <!-- PNC_config:
+ 0 = PNC is configured by the MV neta driver,
+ 1 = PNC is configured by the TPM SW
+ -->
+ <pnc_config>1</pnc_config>
+
+ <ds_mh_set>0</ds_mh_set>
+
+ <!-- cpu_wan_egr_loopback:
+ 0 = CPU WAN Egress Loopback - disabled
+ 1 = CPU WAN Egress Loopback - enabled
+ -->
+ <cpu_wan_egr_loopback>0</cpu_wan_egr_loopback>
+
+ <!-- IPV6 5-tuple status :
+ 0 = IPV6 is configured by normal API,
+ 1 = ipv6 is configured by 5-tuple API
+ -->
+ <ipv6_5t_enable>1</ipv6_5t_enable>
+
+ <!-- GMAC1 acts as virtual UNI :
+ 0 = virtual UNI via GMAC1 - disabled,
+ 1 = virtual UNI via GMAC1 - enabled
+ -->
+ <gmac1_virt_uni>0</gmac1_virt_uni>
+
+ <vlan_filter_tpid>
+ <!-- id : option id -->
+ <!-- comb : tpid combination
+ format - 0xAABB[,0xCCDD] -->
+ <filter_tpid id="0" type="0x8100,0x8100" />
+ <filter_tpid id="1" type="0x9100,0x8100" />
+ <filter_tpid id="2" type="0x88A8,0x8100" />
+ <filter_tpid id="3" type="0x88A8,0x88A8" />
+ <filter_tpid id="4" type="0x8100,0x88A8" />
+ <filter_tpid id="5" type="0x8100" />
+ <filter_tpid id="6" type="0x88A8" />
+ <filter_tpid id="7" type="0x9100" />
+ </vlan_filter_tpid>
+
+ <!-- trace_debug_info:
+ 0xAAAABBBB = AAAA = trace levels
+ BBBB = debug printouts
+ 0x00000000 = trace & debug printouts are disabled,
+ 0x80000000 = FATAL_TRACE_LEVEL 0x00000001 = TPM_DB_MOD
+ 0xC0000000 = ERROR_TRACE_LEVEL 0x00000002 = TPM_PNCL_MOD
+ 0xE0000000 = WARN_TRACE_LEVEL 0x00000004 = TPM_INIT_MOD
+ 0xF0000000 = INFO_TRACE_LEVEL 0x00000008 = TPM_HWM_MOD
+ 0xF8000000 = DEBUG_TRACE_LEVEL 0x00000010 = TPM_MODL_MOD
+ 0x00000020 = TPM_TPM_LOG_MOD
+ 0xFFFF0000 = ALL_TRACE_LEVEL 0x00000040 = TPM_CLI_MOD
+ 0x00000080 = TPM_PNC_HM_MOD
+ 0x00000100 = TPM_MODZ1_HM_MOD
+ 0x00000200 = TPM_MODZ2_HM_MOD
+
+ 0x0000FFFF = TPM_ALL_MODULES
+ 0xFFFFFFFF = trace & debug printouts are ALL ENABLED
+ 0xE000FFFF = default value = (WARN + ERRORS ) for trace level
+ ALL for debug printouts
+ -->
+ <trace_debug_info>0xE000FFFF</trace_debug_info>
+
+ <!-- Values for VLAN ETY registers -->
+ <vlan_mod_tpid>
+ <!-- id : type number -->
+ <!-- type : VLAN type (0xFFFF - NULL value) -->
+ <mod_tpid id="0" type="0x8100" />
+ <mod_tpid id="1" type="0x88A8" />
+ <mod_tpid id="2" type="0x9100" />
+ <mod_tpid id="3" type="0xAABB" />
+ </vlan_mod_tpid>
+
+ <modification>
+ <!-- configuration of modification chains: -->
+ <!-- id : chain id -->
+ <!-- type : chain type
+ 1 - MH_MOD_SUBR_CHAIN
+ 2 - MAC_MOD_SUBR_CHAIN
+ 3 - VLAN_MOD_SUBR_CHAIN
+ 4 - PPPOE_MOD_SUBR_CHAIN
+ 5 - IPV6_PPPOE_MOD_SUBR_CHAIN
+ 6 - L2_MAIN_CHAIN
+ 7 - IPV4_NAPT_MAIN_CHAIN
+ 8 - IPV4_MULTICAST_MAIN_CHAIN
+ 9 - IPV6_ROUTING_MAIN_CHAIN
+ 10 - IPV6_MULTICAST_MAIN_CHAIN -->
+ <!-- num : number of modification chain entries
+ 4096 - "all remaining", fills up remaining part of the modification tables with this chain_type.
+ Only "L2_MAIN_CHAIN" OR "IPV4_NAPT_MAIN_CHAIN" can be assigned "all remaining" -->
+ <chain_parameters>
+ <chain id="0" type="1" num="32" />
+ <chain id="1" type="2" num="64" />
+ <chain id="2" type="3" num="300" />
+ <chain id="3" type="4" num="8" />
+ <chain id="4" type="5" num="6" />
+ <chain id="5" type="6" num="170" />
+ <chain id="6" type="7" num="4096" />
+ <chain id="7" type="8" num="24" />
+ <chain id="8" type="9" num="64" />
+ <chain id="9" type="10" num="24" />
+ </chain_parameters>
+ <udp_checksum_use_init>0</udp_checksum_use_init>
+ <udp_checksum_calc>0</udp_checksum_calc>
+ <split_mod>
+ <!-- enable/disable split pbit and vid modification, 1: enable, 0: disable -->
+ <enable>1</enable>
+ <!--p_bit that supported -->
+ <p_bits>0, 1, 2, 3, 4, 5, 6, 7</p_bits >
+ <!--vlan number that needs split pbit and vid modification, 0~16 -->
+ <vlan_num>16</vlan_num>
+ </split_mod>
+ </modification>
+ <!-- CTC CnM status :
+ 0 = CTC CnM - disabled,
+ 1 = CTC CnM - enabled
+ -->
+ <ctc_cnm_enable>0</ctc_cnm_enable>
+ <!-- PNC MAC learning status :
+ 0 = PNC MAC learn - disabled,
+ 1 = PNC MAC learn - enabled
+ -->
+ <split_mod_mode>1</split_mod_mode>
+ <!-- split modification work mode :
+ 0 = CTC mode,
+ 1 = TR156 mode
+ -->
+ <pnc_mac_learn_enable>0</pnc_mac_learn_enable>
+
+ <!-- CTC IPv6 CNM parsing window: 0 = first 24 bytes of IPv6 header, 1 = second 24 bytes -->
+ <ctc_cnm_ipv6_parsing_window>0</ctc_cnm_ipv6_parsing_window>
+
+ <PnC>
+ <!-- num : -->
+ <!-- type : 0 = ACL, 1 = TABLE -->
+ <!-- cntr_grp : 0 = GROUP_0(Default), 1-3 = GROUP_1/GROUP_2/GROUP_3/ -->
+ <!-- lu_mask_all : 0 = DONT_MASK, 1 = MASK -->
+ <!-- min_reset_level: 0 = level_0(Default), 1 = level_1(hard_reset), 2 = Never -->
+ <range_parameters>
+ <!-- TPM_PNC_MNGMT_DS -->
+ <range num="00" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "1" />
+ <!-- TPM_PNC_MAC_LEARN -->
+ <range num="01" type="0" size="0" cntr_grp="3" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CPU_WAN_LPBK_US -->
+ <range num="02" type="0" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_NUM_VLAN_TAGS -->
+ <range num="03" type="0" size="09" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DS_LOAD_BALANCE -->
+ <range num="04" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_MULTI_LPBK -->
+ <range num="05" type="0" size="10" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_VIRT_UNI -->
+ <range num="06" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_LOOP_DET_US -->
+ <range num="07" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DROP_PRECEDENCE -->
+ <range num="08" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_L2_MAIN -->
+ <range num="09" type="0" size="196" cntr_grp="1" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_ETH_TYPE -->
+ <range num="10" type="0" size="16" cntr_grp="2" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IGMP -->
+ <range num="11" type="0" size="06" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MC_DS -->
+ <range num="12" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MAIN -->
+ <range num="13" type="1" size="64" cntr_grp="3" lu_mask="0" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_TCP_FLAG -->
+ <range num="14" type="0" size="12" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_TTL -->
+ <range num="15" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_PROTO -->
+ <range num="16" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_FRAG -->
+ <range num="17" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_LEN -->
+ <range num="18" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_NH -->
+ <range num="19" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4_MC_DS -->
+ <range num="20" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_TCP_FLAG -->
+ <range num="21" type="1" size="02" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4 -->
+ <range num="22" type="1" size="17" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_HOPL -->
+ <range num="23" type="1" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_SIP -->
+ <range num="24" type="1" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_GEN -->
+ <range num="25" type="1" size="22" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_DS -->
+ <range num="26" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_DIP -->
+ <range num="27" type="1" size="22" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_IPV4_PRE -->
+ <range num="28" type="1" size="0" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_MAIN -->
+ <range num="29" type="0" size="0" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CATCH_ALL -->
+ <range num="30" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ </range_parameters>
+ <!-- 0 = drop, 1 = trap to CPU -->
+ <catch_all_pkt_action>1</catch_all_pkt_action>
+ </PnC>
+ </TPM>
+</cnfg>
diff --git a/package/tcpdump/tcpdump.mk b/package/tcpdump/tcpdump.mk
index e928206..4e781ac 100644
--- a/package/tcpdump/tcpdump.mk
+++ b/package/tcpdump/tcpdump.mk
@@ -11,7 +11,8 @@
TCPDUMP_SOURCE = tcpdump-$(TCPDUMP_VERSION).tar.gz
TCPDUMP_CONF_ENV = ac_cv_linux_vers=2 cross_compiling=y td_cv_buggygetaddrinfo=cross
TCPDUMP_CONF_OPT = --without-crypto \
- $(if $(BR2_PACKAGE_TCPDUMP_SMB),--enable-smb,--disable-smb)
+ --enable-ipv6 \
+ $(if $(BR2_PACKAGE_TCPDUMP_SMB),--enable-smb,--disable-smb)
TCPDUMP_DEPENDENCIES = zlib libpcap
diff --git a/support/scripts/version.sh b/support/scripts/version.sh
index faf38df..582d638 100755
--- a/support/scripts/version.sh
+++ b/support/scripts/version.sh
@@ -5,7 +5,7 @@
if support/scripts/is-repo.sh; then
FORALL="repo forall -c"
elif support/scripts/is-git.sh; then
- FORALL="git submodule --quite foreach"
+ FORALL="git submodule --quiet foreach"
else
echo "ERROR: No version control folder found" >&2
exit 1;
diff --git a/toolchain/golang/golang.mk b/toolchain/golang/golang.mk
index 25ffc40..e90573c 100644
--- a/toolchain/golang/golang.mk
+++ b/toolchain/golang/golang.mk
@@ -1,9 +1,9 @@
#############################################################
#
-# golang 1.6.2 - https://go.googlesource.com/go/+/go1.6.2
+# golang 1.7.4 - https://go.googlesource.com/go/+/go1.7.4
#
#############################################################
-GOLANG_VERSION = 57e459e02b4b01567f92542f92cd9afde209e193
+GOLANG_VERSION = 6b36535cf382bce845dd2d272276e7ba350b0c6b
GOLANG_SITE = https://go.googlesource.com/go
GOLANG_SITE_METHOD = git
GOLANG_DEPENDENCIES = host-golang_bootstrap