update: Update the Siflower SDK patch for the new version

This commit is contained in:
GL.iNet-Xinfa.Deng 2021-06-21 15:59:46 +08:00
parent 09e39c4bdd
commit 8f919cb97f
10 changed files with 544 additions and 20774 deletions

View File

@ -8,9 +8,8 @@ Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
openwrt-18.06/include/image-commands.mk | 27 ++++++++++++++++++++++
.../package/base-files/files/lib/upgrade/fwtool.sh | 1 +
.../base-files/files/lib/upgrade/platform.sh | 3 ++-
.../package/base-files/files/sbin/sysupgrade | 19 +++++++++------
openwrt-18.06/target/linux/siflower/image/Makefile | 1 +
5 files changed, 43 insertions(+), 8 deletions(-)
4 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/openwrt-18.06/include/image-commands.mk b/openwrt-18.06/include/image-commands.mk
index 5e24c5e..ec7b7e8 100644
@ -84,52 +83,6 @@ index d0468bd..60666e7 100644
if [ "$dev_siwifi_id" != "siwifi-1688a" ]; then
echo "Invalid image type."
diff --git a/openwrt-18.06/package/base-files/files/sbin/sysupgrade b/openwrt-18.06/package/base-files/files/sbin/sysupgrade
index 58b613b..ba03534 100755
--- a/openwrt-18.06/package/base-files/files/sbin/sysupgrade
+++ b/openwrt-18.06/package/base-files/files/sbin/sysupgrade
@@ -2,6 +2,8 @@
. /lib/functions.sh
. /lib/functions/system.sh
+. /usr/share/libubox/jshn.sh
+. /lib/functions/gl_util.sh
# initialize defaults
export MTD_CONFIG_ARGS=""
@@ -227,7 +229,6 @@ do_save_conffiles() {
ask_bool 0 "Edit config file list" && vi "$CONFFILES"
if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then
- echo "${INSTALLED_PACKAGES}" >> "$CONFFILES"
mkdir -p "$ETCBACKUP_DIR"
# Avoid touching filesystem on each backup
RAMFS="$(mktemp -d -t sysupgrade.XXXXXX)"
@@ -237,14 +238,18 @@ do_save_conffiles() {
echo "Cannot mount '$ETCBACKUP_DIR' as tmpfs to avoid touching disk while saving the list of installed packages." >&2
ask_bool 0 "Abort" && exit
}
-
+ local user_apps="$(get_user_apps)"
+ [ -n "$user_apps" ] && {
+ echo "${INSTALLED_PACKAGES}" >> "$CONFFILES"
+ echo "$user_apps" > ${INSTALLED_PACKAGES}
+ }
# Format: pkg-name<TAB>{rom,overlay,unkown}
# rom is used for pkgs in /rom, even if updated later
- find /usr/lib/opkg/info -name "*.control" \( \
- \( -exec test -f /rom/{} \; -exec echo {} rom \; \) -o \
- \( -exec test -f /overlay/upper/{} \; -exec echo {} overlay \; \) -o \
- \( -exec echo {} unknown \; \) \
- \) | sed -e 's,.*/,,;s/\.control /\t/' > ${INSTALLED_PACKAGES}
+ # find /usr/lib/opkg/info -name "*.control" \( \
+ # \( -exec test -f /rom/{} \; -exec echo {} rom \; \) -o \
+ # \( -exec test -f /overlay/upper/{} \; -exec echo {} overlay \; \) -o \
+ # \( -exec echo {} unknown \; \) \
+ # \) | sed -e 's,.*/,,;s/\.control /\t/' > ${INSTALLED_PACKAGES}
fi
v "Saving config files..."
diff --git a/openwrt-18.06/target/linux/siflower/image/Makefile b/openwrt-18.06/target/linux/siflower/image/Makefile
index 2655412..ae229da 100644
--- a/openwrt-18.06/target/linux/siflower/image/Makefile

View File

@ -0,0 +1,181 @@
From b398467460b81a18f45b4857c92b877244a51702 Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Wed, 16 Jun 2021 16:33:47 +0800
Subject: [PATCH] fix: modify the Siflower SDK according to the feature
Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
---
.../package/base-files/files/bin/config_generate | 4 ++--
openwrt-18.06/package/base-files/files/etc/shadow | 2 +-
.../mac80211/files/lib/netifd/wireless/mac80211.sh | 11 ++++++-----
.../kernel/mac80211/files/lib/wifi/mac80211.sh | 20 ++++++++++++--------
.../network/config/firewall/files/firewall.config | 9 ---------
.../network/config/netifd/files/etc/init.d/network | 1 -
6 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/openwrt-18.06/package/base-files/files/bin/config_generate b/openwrt-18.06/package/base-files/files/bin/config_generate
index 9de0c3a..f2bee1f 100755
--- a/openwrt-18.06/package/base-files/files/bin/config_generate
+++ b/openwrt-18.06/package/base-files/files/bin/config_generate
@@ -89,7 +89,7 @@ generate_network() {
uci -q batch <<-EOF
set network.$1.type='bridge'
set network.$1.proto='static'
- set network.$1.ipaddr='192.168.4.1'
+ set network.$1.ipaddr='192.168.8.1'
set network.$1.netmask='255.255.255.0'
set network.$1.ip6assign='60'
EOF
@@ -145,7 +145,7 @@ generate_network() {
static)
local ipad
case "$1" in
- lan) ipad=${ipaddr:-"192.168.4.1"} ;;
+ lan) ipad=${ipaddr:-"192.168.8.1"} ;;
*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
esac
diff --git a/openwrt-18.06/package/base-files/files/etc/shadow b/openwrt-18.06/package/base-files/files/etc/shadow
index 8f87824..21c26e6 100644
--- a/openwrt-18.06/package/base-files/files/etc/shadow
+++ b/openwrt-18.06/package/base-files/files/etc/shadow
@@ -1,4 +1,4 @@
-root:$1$wEehtjxj$YBu4quNfVUjzfv8p/PBo5.:0:0:99999:7:::
+root::0:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
diff --git a/openwrt-18.06/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/openwrt-18.06/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index 1f8868b..2a4a12e 100755
--- a/openwrt-18.06/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/openwrt-18.06/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -1,6 +1,7 @@
#!/bin/sh
. /lib/netifd/netifd-wireless.sh
. /lib/netifd/hostapd.sh
+. /lib/functions/system.sh
init_wireless_driver "$@"
@@ -398,18 +399,18 @@ mac80211_generate_mac() {
local oIFS="$IFS"; IFS=":"; set -- $ref; IFS="$oIFS"
macidx=$(($id + 2))
- [ "$mask" = "ff:ff:ff:ff:ff:ff" ] && {
+# [ "$mask" = "ff:ff:ff:ff:ff:ff" ] && {
# modified by robert
# for if mask is FF:FF:FF:FF:FF:FF, the previous logic will generate a wrong mac-address
- printf "%s:%s:%s:%s:%s:%02x" $1 $2 $3 $4 $5 $(( 0x$6 ^ $id ))
- return
- }
+# printf "%s:%s:%s:%s:%s:%02x" $1 $2 $3 $4 $5 $(( 0x$6 ^ $id ))
+# return
+# }
[ "$((0x$mask1))" -gt 0 ] && {
b1="0x$1"
[ "$id" -gt 0 ] && \
b1=$(($b1 ^ ((($id - 1) << 2) | 0x2)))
- printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6
+ printf "%02x:%s:%s:%s:%s:%s" $(($b1%256)) $2 $3 $4 $5 $6
return
}
diff --git a/openwrt-18.06/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/openwrt-18.06/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index a8e53f6..dcb0a8c 100755
--- a/openwrt-18.06/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/openwrt-18.06/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -67,7 +67,8 @@ detect_mac80211() {
devidx=$(($devidx + 1))
done
- for _dev in /sys/class/ieee80211/*; do
+ for _dev in `ls /sys/class/ieee80211/ -r`; do
+ _dev="/sys/class/ieee80211/$_dev"
[ -e "$_dev" ] || continue
dev="${_dev##*/}"
@@ -80,19 +81,19 @@ detect_mac80211() {
channel="1"
htmode=""
ht_capab=""
- ssidprefix="-2.4G"
+ ssidprefix=""
noscan="0"
band="2.4G"
htcodex="0"
txpower="20"
- iw phy "$dev" info | grep -q 'Capabilities:' && htmode=HT20
+ iw phy "$dev" info | grep -q 'Capabilities:' && htmode=HT40
iw phy "$dev" info | grep -q '5180 MHz' && {
mode_band="a"
channel="161"
- ssidprefix=""
+ ssidprefix="-5G"
band="5G"
txpower="25"
iw phy "$dev" info | grep -q 'VHT Capabilities' && htmode="VHT80"
@@ -117,8 +118,11 @@ detect_mac80211() {
[ -f "/sys/devices/factory-read/countryid" ] && {
country=`cat /sys/devices/factory-read/countryid`
}
- ssid=SiWiFi-`cat /sys/class/ieee80211/${dev}/macaddress | cut -c 13- | sed 's/://g'`$ssidprefix
- ssid_lease=SiWiFi-租赁-$ssidprefix`cat /sys/class/ieee80211/${dev}/macaddress | cut -c 13- | sed 's/://g'`
+ #ssid=SiWiFi-`cat /sys/class/ieee80211/${dev}/macaddress | cut -c 13- | sed 's/://g'`$ssidprefix
+ #ssid_lease=SiWiFi-租赁-$ssidprefix`cat /sys/class/ieee80211/${dev}/macaddress | cut -c 13- | sed 's/://g'`
+
+ ssid=OpenWrt$ssidprefix
+ ssid_lease=OpenWrt-lease$ssidprefix
if [ ! -n "$country" ]; then
country='CN'
fi
@@ -131,9 +135,9 @@ detect_mac80211() {
set wireless.radio${devidx}=wifi-device
set wireless.radio${devidx}.type=mac80211
set wireless.radio${devidx}.country=${country}
- set wireless.radio${devidx}.txpower_lvl=${txpower_lvl}
set wireless.radio${devidx}.txpower=${txpower}
- set wireless.radio${devidx}.channel=${channel}
+ set wireless.radio${devidx}.txpower_max=${txpower}
+ set wireless.radio${devidx}.channel=auto
set wireless.radio${devidx}.band=${band}
set wireless.radio${devidx}.hwmode=11${mode_band}
set wireless.radio${devidx}.noscan=${noscan}
diff --git a/openwrt-18.06/package/network/config/firewall/files/firewall.config b/openwrt-18.06/package/network/config/firewall/files/firewall.config
index d6e311c..584ed85 100644
--- a/openwrt-18.06/package/network/config/firewall/files/firewall.config
+++ b/openwrt-18.06/package/network/config/firewall/files/firewall.config
@@ -16,15 +16,6 @@ config zone
option forward ACCEPT
config zone
- option name wwan
- list network 'wwan'
- option input REJECT
- option output ACCEPT
- option forward REJECT
- option masq 1
- option mtu_fix 1
-
-config zone
option name wan
list network 'wan'
list network 'wan6'
diff --git a/openwrt-18.06/package/network/config/netifd/files/etc/init.d/network b/openwrt-18.06/package/network/config/netifd/files/etc/init.d/network
index 2501824..7af9df3 100755
--- a/openwrt-18.06/package/network/config/netifd/files/etc/init.d/network
+++ b/openwrt-18.06/package/network/config/netifd/files/etc/init.d/network
@@ -15,7 +15,6 @@ init_switch() {
start_service() {
./usr/bin/hnat_update_interface.sh
local lanip=$(uci get network.lan.ipaddr)
- echo ${lanip} siwifi.cn > /etc/hosts
init_switch
--
2.7.4

View File

@ -0,0 +1,25 @@
From b00110c3c28b05fa61c24c8928b55a53eb6a7624 Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Fri, 18 Jun 2021 17:09:15 +0800
Subject: [PATCH] fix: iproute2 depends
---
openwrt-18.06/package/network/utils/iproute2/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openwrt-18.06/package/network/utils/iproute2/Makefile b/openwrt-18.06/package/network/utils/iproute2/Makefile
index c79d751..e9cfdd9 100644
--- a/openwrt-18.06/package/network/utils/iproute2/Makefile
+++ b/openwrt-18.06/package/network/utils/iproute2/Makefile
@@ -47,7 +47,7 @@ $(call Package/iproute2/Default)
VARIANT:=full
PROVIDES:=ip
ALTERNATIVES:=300:/sbin/ip:/sbin/ip-full
- DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libcap
endef
define Package/tc
--
2.7.4

View File

@ -0,0 +1,57 @@
From 00c8bf9c940bddb69ac88556f808842b02e6e425 Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Sat, 19 Jun 2021 11:39:46 +0800
Subject: [PATCH] fix: i2c func select
Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
---
.../linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c | 24 ++++++----------------
1 file changed, 6 insertions(+), 18 deletions(-)
diff --git a/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c b/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
index 1a8ca99..ebbcd78 100644
--- a/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
+++ b/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
@@ -265,33 +265,21 @@ static int sfax8_pad_set_func(struct sfax8_pinctrl *info, u32 index, pad_func fu
{
// write 0,0,0 to fmux_sel_reg mode_bit1_reg mode_bit0_reg
case FUNC0:
+ case FUNC1:
+ case FUNC2:
+ case FUNC3:
regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
- tmp |=(0x1 << FUNC_SW_SEL_REG);
+ tmp &= ~(0x7 << 0);
+ tmp |= (func << 0) | (0x1 << FUNC_SW_SEL_REG);
regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
regmap_read(info->regmap_base, PAD_INDEX_REG0(index), &tmp);
- tmp |=(0x1 << SW_IE_REG);
+ tmp &= ~(0x1 << SW_OEN_REG);
regmap_write(info->regmap_base, PAD_INDEX_REG0(index), tmp);
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
- tmp &= ~(0x7 << 0);
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
- break;
-
- // write 0,0,1 to fmux_sel_reg mode_bit1_reg mode_bit0_reg
- case FUNC1:
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
- tmp |=(0x1 << FUNC_SW_SEL_REG);
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
-
regmap_read(info->regmap_base, PAD_INDEX_REG0(index), &tmp);
tmp |=(0x1 << SW_IE_REG);
regmap_write(info->regmap_base, PAD_INDEX_REG0(index), tmp);
-
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
- tmp &= ~(0x3 << 1);
- tmp |=(0x1 << 0);
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
break;
case GPIO_INPUT:
--
2.7.4

View File

@ -1,88 +0,0 @@
From 6796b58597e2974ff218db5f84ef61496c68b784 Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Fri, 28 May 2021 12:06:11 +0800
Subject: [PATCH] update: bridge-utils package
Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
---
openwrt-18.06/package/utils/bridge-utils/Makefile | 49 ++++++++++++++++++++++
.../patches/001-libbridge_cflags.patch | 11 +++++
2 files changed, 60 insertions(+)
create mode 100644 openwrt-18.06/package/utils/bridge-utils/Makefile
create mode 100644 openwrt-18.06/package/utils/bridge-utils/patches/001-libbridge_cflags.patch
diff --git a/openwrt-18.06/package/utils/bridge-utils/Makefile b/openwrt-18.06/package/utils/bridge-utils/Makefile
new file mode 100644
index 0000000..e9e3472
--- /dev/null
+++ b/openwrt-18.06/package/utils/bridge-utils/Makefile
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=bridge-utils
+PKG_VERSION:=1.6
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@KERNEL/linux/utils/net/$(PKG_NAME)
+PKG_HASH:=cc67efb5d5fb8928a6569b3fade2b4042ec17da04678dab127d96b46489e26c8
+PKG_MAINTAINER:=Nikolay Martynov <mar.kolya@gmail.com>
+
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/bridge
+ SECTION:=net
+ CATEGORY:=Base system
+ TITLE:=Ethernet bridging configuration utility
+ URL:=http://www.linuxfromscratch.org/blfs/view/svn/basicnet/bridge-utils.html
+ ALTERNATIVES:=300:/usr/sbin/brctl:/usr/libexec/bridge-utils-brctl
+endef
+
+define Package/bridge/description
+ Manage ethernet bridging: a way to connect networks together to
+ form a larger network.
+endef
+
+TARGET_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+
+CONFIGURE_ARGS += \
+ --with-linux-headers="$(LINUX_DIR)" \
+
+define Package/bridge/install
+ $(INSTALL_DIR) $(1)/usr/libexec
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/brctl/brctl $(1)/usr/libexec/bridge-utils-brctl
+endef
+
+$(eval $(call BuildPackage,bridge))
diff --git a/openwrt-18.06/package/utils/bridge-utils/patches/001-libbridge_cflags.patch b/openwrt-18.06/package/utils/bridge-utils/patches/001-libbridge_cflags.patch
new file mode 100644
index 0000000..e35a649
--- /dev/null
+++ b/openwrt-18.06/package/utils/bridge-utils/patches/001-libbridge_cflags.patch
@@ -0,0 +1,11 @@
+--- a/libbridge/Makefile.in
++++ b/libbridge/Makefile.in
+@@ -5,7 +5,7 @@ AR=ar
+ RANLIB=@RANLIB@
+
+ CC=@CC@
+-CFLAGS = -Wall -g $(KERNEL_HEADERS)
++CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
--
2.7.4

File diff suppressed because it is too large Load Diff

View File

@ -89,7 +89,7 @@ index 0000000..4d6d539
+ VID_HDR_OFFSET := 2048
+ IMAGES += factory.img sysupgrade.tar
+ IMAGE/sysupgrade.tar := sysupgrade-tar | append-gl-metadata
+ IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | append-gl-metadata
+ IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
+endef
+
+ifdef CONFIG_TARGET_siflower_sf19a28_fullmask_SF19A28-GL-SFT1200

View File

@ -0,0 +1,25 @@
From c354e5a0ca8ad862c3c1f3c1b71a13a2d634939f Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Mon, 21 Jun 2021 15:44:41 +0800
Subject: [PATCH] fix: siflower support nand tar upgrade
Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
---
openwrt-18.06/target/linux/siflower/sf19a28-fullmask/target.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/target.mk b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/target.mk
index af34c96..868da4a 100644
--- a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/target.mk
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/target.mk
@@ -6,6 +6,7 @@ SUBTARGET:=sf19a28-fullmask
BOARDNAME:=sf19a28 full mask based boards
ARCH_PACKAGES:=mips_siflower
CPU_TYPE:=mips-interAptiv
+FEATURES+=usb nand gpio
define Target/Description
Build firmware images for siflower sf19a28 full mask based boards.
--
2.7.4

View File

@ -1,4 +1,4 @@
From 0e73a949f2e64152ab793f42865ecaeef5dfe4ea Mon Sep 17 00:00:00 2001
From a74e543f8d10262448a23cf2a1f5c24b53b2d9d3 Mon Sep 17 00:00:00 2001
From: Lancer <luoyejiang0701@gmail.com>
Date: Mon, 26 Apr 2021 17:36:39 +0800
Subject: [PATCH] add support GL.iNET SF1200 target
@ -17,15 +17,16 @@ Signed-off-by: Lancer <luoyejiang0701@gmail.com>
.../etc/config/btn_ctrl_cfg | 34 +
.../base-files-SF19A28-GL-SF1200/etc/config/ddns | 26 +
.../base-files-SF19A28-GL-SF1200/etc/config/siwifi | 5 +
.../etc/hotplug.d/iface/05-updatehnatlan | 59 +
.../etc/hotplug.d/iface/80-updatewan | 28 +
.../base-files-SF19A28-GL-SF1200/etc/rc.local | 12 +
.../base-files-SF19A28-GL-SF1200/lib/667.img | Bin 0 -> 131072 bytes
.../usr/bin/hnat_enable.sh | 2 +
.../usr/bin/hnat_read.sh | 21 +
.../usr/bin/hnat_update_interface.sh | 78 +
.../sf19a28-fullmask/config-4.14_gl_sf1200 | 574 ++
.../sf19a28-fullmask/profiles/sf19a28-gl-sf1200.mk | 28 +
.../siflower/sf19a28_gl_sf1200_fullmask_def.config | 4086 ++++++++++++++
.../siflower/sf19a28_gl_sf1200_fullmask_rel.config | 5575 ++++++++++++++++++++
20 files changed, 10653 insertions(+)
21 files changed, 10667 insertions(+)
create mode 100644 linux-4.14.90-dev/linux-4.14.90/arch/mips/boot/dts/siflower/sf19a28_fullmask_gl_sf1200.dts
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/bin/config_check.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/bin/sf_reset.sh
@ -35,10 +36,11 @@ Signed-off-by: Lancer <luoyejiang0701@gmail.com>
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/config/btn_ctrl_cfg
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/config/ddns
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/config/siwifi
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/05-updatehnatlan
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/80-updatewan
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/rc.local
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/lib/667.img
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_enable.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_read.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_update_interface.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sf1200
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/profiles/sf19a28-gl-sf1200.mk
create mode 100644 openwrt-18.06/target/linux/siflower/sf19a28_gl_sf1200_fullmask_def.config
@ -422,105 +424,6 @@ index 0000000..964dc1d
+ option romtime '2015-12-02 00:00:00'
+
+config admin 'key'
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/05-updatehnatlan b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/05-updatehnatlan
new file mode 100755
index 0000000..074fa01
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/05-updatehnatlan
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+if echo "$INTERFACE" | grep -q -e "lan" -e "guest"
+then
+ echo "$INTERFACE is in lan"
+else
+ exit 0
+fi
+
+#lan_index=${INTERFACE:3}
+#[ "x$lan_index" == "x" ] && lan_index=1
+[ "$INTERFACE" == "lan" ] && lan_index=1
+[ "$INTERFACE" == "guest" ] && lan_index=2
+[ $lan_index -gt 0 -a $lan_index -lt 8 ] || exit 0
+
+iptohex() {
+ IFS=.
+ for str in $1
+ do
+ printf "%02x" $str
+ done
+}
+
+clear_non_exist_lan() {
+ for i in $(seq 1 8)
+ do
+ lan_name="lan$i"
+ if [ $i == 1 ]; then
+ lan_name="lan";
+ fi
+ ifexist=`uci -q get network.$lan_name`
+ if [ "x$ifexist" == "x" ]; then
+ echo "dellan $i" > /sys/kernel/debug/hnat_debug
+ fi
+ done
+}
+
+del_lan() {
+ clear_non_exist_lan
+ echo "dellan $lan_index" > /sys/kernel/debug/hnat_debug
+}
+
+add_lan() {
+ lanip=`uci -q get network.$INTERFACE.ipaddr`
+ if [ "x$lanip" != "x" ]; then
+ lanhex=`iptohex $lanip`
+ netmask=`uci -q get network.$INTERFACE.netmask`
+ if [ "x$netmask" == "x" ]; then
+ netmask="255.255.255.0"
+ fi
+ maskhax=`iptohex $netmask`
+ echo "addlan $lan_index 0x$lanhex 0x$maskhax" > /sys/kernel/debug/hnat_debug
+ else
+ echo "dellan $lan_index" > /sys/kernel/debug/hnat_debug
+ fi
+}
+
+[ "$ACTION" = ifdown ] && del_lan && exit 0
+[ "$ACTION" = ifup ] && add_lan && exit 0
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/80-updatewan b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/80-updatewan
new file mode 100755
index 0000000..0005553
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/hotplug.d/iface/80-updatewan
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+update_hnat_wanmask() {
+ wan_masklen=`ubus call network.interface.wan status | grep 'ipv4-address' -A 6 | grep mask | awk -F ' ' '{print $2}'| awk -F ',' '{print $1}' | head -n 1 |tr -d "\n"`
+ if [ "x$wan_masklen" != "x" -a "$wan_masklen" != "0" ]; then
+ if [ "$wan_masklen" -ge 32 ]; then
+ wan_masklen=31
+ fi
+ echo "updatewanmask $wan_masklen" > /sys/kernel/debug/hnat_debug
+ fi
+}
+
+update_wan_ip() {
+ wan_ip=`ubus call network.interface.wan status | grep 'ipv4-address' -A 6 | grep "\"address\"\:" | awk -F '"' '{print $4}' | head -n 1 | tr -d "\n"`
+ old_ip=`uci -q get network.wan.recent_ip`
+ if [ "$wan_ip" != "$old_ip" -a "x$wan_ip" != "x" ]; then
+ if [ "x$old_ip" != "x" ]; then
+ echo "vldclean" > /sys/kernel/debug/hnat_debug
+ fi
+ uci set network.wan.recent_ip=$wan_ip
+ uci commit network
+ fi
+}
+
+[ "$ACTION" = ifup ] || exit 0
+[ "$INTERFACE" = "wwan" ] || [ "$INTERFACE" = "wan" ] || exit 0
+update_hnat_wanmask
+update_wan_ip
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/rc.local b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/etc/rc.local
new file mode 100755
index 0000000..c0af7c2
@ -722,6 +625,125 @@ dfj}S-2m}IwKp+qZ1OkCTAP@)y0>S?m_&;!2Ac_D0
literal 0
Hc$@<O00001
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_enable.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_enable.sh
new file mode 100755
index 0000000..958454f
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_enable.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+iptables -I FORWARD 1 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j FLOWOFFLOAD --hw
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_read.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_read.sh
new file mode 100755
index 0000000..19a1b15
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_read.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+devmem 0x10804008 32 0x11
+devmem 0x10804008 32 0x01
+
+index=0
+addr=0x10804100
+
+echo "===== start dump hnat count ====="
+while(true)
+do
+ printf "base:0x%x " $addr
+ aa=`devmem $addr`
+ printf "value:%d \n" $aa
+ addr=$(($addr + 4))
+ index=$(($index + 1))
+ if [ $index -eq 60 ]; then
+ break;
+ fi
+done
+echo "===== end dump hnat count ====="
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_update_interface.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_update_interface.sh
new file mode 100755
index 0000000..8446a10
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SF1200/usr/bin/hnat_update_interface.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+update_guest_lan() {
+ guest_lan=`uci -q get network.guest`
+ if [ "x$guest_lan" != "x" ]; then
+ guest_lan_ip=`uci -q get network.guest.ipaddr`
+ if [ "x$guest_lan_ip" != "x" ]; then
+ echo addifname 0 7 br-guest > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+}
+
+update_lan() {
+ for i in $(seq 1 7)
+ do
+ lan_name="lan$i"
+ if [ $i == 1 ]; then
+ lan_name="lan"
+ fi
+ ifexist=`uci -q get network.$lan_name`
+ if [ "x$ifexist" != "x" ]; then
+ lan_ip=`uci -q get network.$lan_name.ipaddr`
+ if [ "x$lan_ip" != "x" ]; then
+ lan_type=`uci -q get network.$lan_name.type`
+ index=$(expr $i - 1)
+ if [ "$lan_type" == "bridge" ]; then
+ echo addifname 0 $index br-$lan_name > /sys/kernel/debug/hnat_debug
+ else
+ ifname=`uci -q get network.$lan_name.ifname`
+ if [ "x$ifname" != "x" ]; then
+ echo addifname 0 $index $ifname > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ fi
+ fi
+ done
+}
+
+update_wan() {
+ for i in $(seq 1 7)
+ do
+ wan_name="wan$i"
+ if [ $i == 1 ]; then
+ wan_name="wan"
+ fi
+ ifexist=`uci -q get network.$wan_name`
+ if [ "x$ifexist" != "x" -a $wan_name != "wan6" ]; then
+ ifname=`uci -q get network.$wan_name.ifname`
+ if [ "x$ifname" != "x" ]; then
+ index=$(expr $i - 1)
+ echo addifname 1 $index $ifname > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ done
+
+}
+
+update_pppoe_wan() {
+ if [ -f "/usr/sbin/pppd" ]; then
+ if_wan_exist=`uci -q get network.wan`
+ if [ "x$if_wan_exist" != "x" ]; then
+ echo addifname 1 7 pppoe-wan > /sys/kernel/debug/hnat_debug
+ else
+ wan_name=`uci show network | grep interface | grep wan | grep -v wan_dev | grep -v wan6 | head -1 | awk -F "[.=]" '{print $2}' | tr -d '\n'`
+ if [ "x$wan_name" != "x" ]; then
+ echo addifname 1 7 pppoe-$wan_name > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ fi
+}
+
+echo dellan 1 1 > /sys/kernel/debug/hnat_debug
+echo delwan 1 1 > /sys/kernel/debug/hnat_debug
+
+update_guest_lan
+update_lan
+update_wan
+update_pppoe_wan
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sf1200 b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sf1200
new file mode 100755
index 0000000..3450a1a

View File

@ -1,4 +1,4 @@
From 93758e0e329708e6552d964a758d6078c54a6b88 Mon Sep 17 00:00:00 2001
From cd68c3315b317a309d8cdfb8fdf09ef5e732ea5c Mon Sep 17 00:00:00 2001
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
Date: Wed, 2 Jun 2021 15:26:40 +0800
Subject: [PATCH] add: support GL.iNET SFT1200 target
@ -13,22 +13,24 @@ Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
.../bin/wanLinkStatus | 3 +
.../etc/board.d/01_network | 34 +
.../etc/board.d/99-default_network | 23 +
.../etc/hotplug.d/iface/05-updatehnatlan | 59 +
.../etc/hotplug.d/iface/80-updatewan | 28 +
.../base-files-SF19A28-GL-SFT1200/etc/rc.local | 12 +
.../usr/bin/hnat_enable.sh | 2 +
.../usr/bin/hnat_read.sh | 21 +
.../usr/bin/hnat_update_interface.sh | 78 +
.../sf19a28-fullmask/config-4.14_gl_sft1200 | 601 ++
.../profiles/sf19a28-gl-sft1200.mk | 28 +
.../sf19a28_gl_sft1200_fullmask_def.config | 5997 ++++++++++++++++++++
14 files changed, 6949 insertions(+)
15 files changed, 6963 insertions(+)
create mode 100644 linux-4.14.90-dev/linux-4.14.90/arch/mips/boot/dts/siflower/sf19a28_fullmask_gl_sft1200.dts
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/bin/config_check.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/bin/sf_reset.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/bin/wanLinkStatus
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/board.d/01_network
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/board.d/99-default_network
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/05-updatehnatlan
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/80-updatewan
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/rc.local
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_enable.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_read.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_update_interface.sh
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sft1200
create mode 100755 openwrt-18.06/target/linux/siflower/sf19a28-fullmask/profiles/sf19a28-gl-sft1200.mk
create mode 100644 openwrt-18.06/target/linux/siflower/sf19a28_gl_sft1200_fullmask_def.config
@ -315,105 +317,6 @@ index 0000000..e5d86d8
+board_config_flush
+
+exit 0
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/05-updatehnatlan b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/05-updatehnatlan
new file mode 100755
index 0000000..074fa01
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/05-updatehnatlan
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+if echo "$INTERFACE" | grep -q -e "lan" -e "guest"
+then
+ echo "$INTERFACE is in lan"
+else
+ exit 0
+fi
+
+#lan_index=${INTERFACE:3}
+#[ "x$lan_index" == "x" ] && lan_index=1
+[ "$INTERFACE" == "lan" ] && lan_index=1
+[ "$INTERFACE" == "guest" ] && lan_index=2
+[ $lan_index -gt 0 -a $lan_index -lt 8 ] || exit 0
+
+iptohex() {
+ IFS=.
+ for str in $1
+ do
+ printf "%02x" $str
+ done
+}
+
+clear_non_exist_lan() {
+ for i in $(seq 1 8)
+ do
+ lan_name="lan$i"
+ if [ $i == 1 ]; then
+ lan_name="lan";
+ fi
+ ifexist=`uci -q get network.$lan_name`
+ if [ "x$ifexist" == "x" ]; then
+ echo "dellan $i" > /sys/kernel/debug/hnat_debug
+ fi
+ done
+}
+
+del_lan() {
+ clear_non_exist_lan
+ echo "dellan $lan_index" > /sys/kernel/debug/hnat_debug
+}
+
+add_lan() {
+ lanip=`uci -q get network.$INTERFACE.ipaddr`
+ if [ "x$lanip" != "x" ]; then
+ lanhex=`iptohex $lanip`
+ netmask=`uci -q get network.$INTERFACE.netmask`
+ if [ "x$netmask" == "x" ]; then
+ netmask="255.255.255.0"
+ fi
+ maskhax=`iptohex $netmask`
+ echo "addlan $lan_index 0x$lanhex 0x$maskhax" > /sys/kernel/debug/hnat_debug
+ else
+ echo "dellan $lan_index" > /sys/kernel/debug/hnat_debug
+ fi
+}
+
+[ "$ACTION" = ifdown ] && del_lan && exit 0
+[ "$ACTION" = ifup ] && add_lan && exit 0
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/80-updatewan b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/80-updatewan
new file mode 100755
index 0000000..0005553
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/hotplug.d/iface/80-updatewan
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+update_hnat_wanmask() {
+ wan_masklen=`ubus call network.interface.wan status | grep 'ipv4-address' -A 6 | grep mask | awk -F ' ' '{print $2}'| awk -F ',' '{print $1}' | head -n 1 |tr -d "\n"`
+ if [ "x$wan_masklen" != "x" -a "$wan_masklen" != "0" ]; then
+ if [ "$wan_masklen" -ge 32 ]; then
+ wan_masklen=31
+ fi
+ echo "updatewanmask $wan_masklen" > /sys/kernel/debug/hnat_debug
+ fi
+}
+
+update_wan_ip() {
+ wan_ip=`ubus call network.interface.wan status | grep 'ipv4-address' -A 6 | grep "\"address\"\:" | awk -F '"' '{print $4}' | head -n 1 | tr -d "\n"`
+ old_ip=`uci -q get network.wan.recent_ip`
+ if [ "$wan_ip" != "$old_ip" -a "x$wan_ip" != "x" ]; then
+ if [ "x$old_ip" != "x" ]; then
+ echo "vldclean" > /sys/kernel/debug/hnat_debug
+ fi
+ uci set network.wan.recent_ip=$wan_ip
+ uci commit network
+ fi
+}
+
+[ "$ACTION" = ifup ] || exit 0
+[ "$INTERFACE" = "wwan" ] || [ "$INTERFACE" = "wan" ] || exit 0
+update_hnat_wanmask
+update_wan_ip
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/rc.local b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/etc/rc.local
new file mode 100755
index 0000000..c0af7c2
@ -432,6 +335,125 @@ index 0000000..c0af7c2
+#devmem 0x1790b3b0 32 0xAAAA0007
+#devmem 0x1790b3d4 32 0x1B0B50FF
+#devmem 0x1790b3d8 32 0x1B0B50FF
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_enable.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_enable.sh
new file mode 100755
index 0000000..958454f
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_enable.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+iptables -I FORWARD 1 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j FLOWOFFLOAD --hw
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_read.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_read.sh
new file mode 100755
index 0000000..19a1b15
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_read.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+devmem 0x10804008 32 0x11
+devmem 0x10804008 32 0x01
+
+index=0
+addr=0x10804100
+
+echo "===== start dump hnat count ====="
+while(true)
+do
+ printf "base:0x%x " $addr
+ aa=`devmem $addr`
+ printf "value:%d \n" $aa
+ addr=$(($addr + 4))
+ index=$(($index + 1))
+ if [ $index -eq 60 ]; then
+ break;
+ fi
+done
+echo "===== end dump hnat count ====="
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_update_interface.sh b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_update_interface.sh
new file mode 100755
index 0000000..8446a10
--- /dev/null
+++ b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/base-files-SF19A28-GL-SFT1200/usr/bin/hnat_update_interface.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+update_guest_lan() {
+ guest_lan=`uci -q get network.guest`
+ if [ "x$guest_lan" != "x" ]; then
+ guest_lan_ip=`uci -q get network.guest.ipaddr`
+ if [ "x$guest_lan_ip" != "x" ]; then
+ echo addifname 0 7 br-guest > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+}
+
+update_lan() {
+ for i in $(seq 1 7)
+ do
+ lan_name="lan$i"
+ if [ $i == 1 ]; then
+ lan_name="lan"
+ fi
+ ifexist=`uci -q get network.$lan_name`
+ if [ "x$ifexist" != "x" ]; then
+ lan_ip=`uci -q get network.$lan_name.ipaddr`
+ if [ "x$lan_ip" != "x" ]; then
+ lan_type=`uci -q get network.$lan_name.type`
+ index=$(expr $i - 1)
+ if [ "$lan_type" == "bridge" ]; then
+ echo addifname 0 $index br-$lan_name > /sys/kernel/debug/hnat_debug
+ else
+ ifname=`uci -q get network.$lan_name.ifname`
+ if [ "x$ifname" != "x" ]; then
+ echo addifname 0 $index $ifname > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ fi
+ fi
+ done
+}
+
+update_wan() {
+ for i in $(seq 1 7)
+ do
+ wan_name="wan$i"
+ if [ $i == 1 ]; then
+ wan_name="wan"
+ fi
+ ifexist=`uci -q get network.$wan_name`
+ if [ "x$ifexist" != "x" -a $wan_name != "wan6" ]; then
+ ifname=`uci -q get network.$wan_name.ifname`
+ if [ "x$ifname" != "x" ]; then
+ index=$(expr $i - 1)
+ echo addifname 1 $index $ifname > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ done
+
+}
+
+update_pppoe_wan() {
+ if [ -f "/usr/sbin/pppd" ]; then
+ if_wan_exist=`uci -q get network.wan`
+ if [ "x$if_wan_exist" != "x" ]; then
+ echo addifname 1 7 pppoe-wan > /sys/kernel/debug/hnat_debug
+ else
+ wan_name=`uci show network | grep interface | grep wan | grep -v wan_dev | grep -v wan6 | head -1 | awk -F "[.=]" '{print $2}' | tr -d '\n'`
+ if [ "x$wan_name" != "x" ]; then
+ echo addifname 1 7 pppoe-$wan_name > /sys/kernel/debug/hnat_debug
+ fi
+ fi
+ fi
+}
+
+echo dellan 1 1 > /sys/kernel/debug/hnat_debug
+echo delwan 1 1 > /sys/kernel/debug/hnat_debug
+
+update_guest_lan
+update_lan
+update_wan
+update_pppoe_wan
diff --git a/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sft1200 b/openwrt-18.06/target/linux/siflower/sf19a28-fullmask/config-4.14_gl_sft1200
new file mode 100755
index 0000000..ae79c32