diff --git a/airoha/Config.in b/airoha/Config.in
index ae9207b5ab7d20450b4ebe5209693c27310778a6..1d625dd42ce8bb3b34fc35eaea8a6d753531adf6 100644
--- a/airoha/Config.in
+++ b/airoha/Config.in
@@ -3,7 +3,7 @@ if TARGET_airoha
 	config KERNEL_GIT_CLONE_URI
 		default "https://dev.iopsys.eu/airoha/linux.git"
 	config KERNEL_GIT_REF
-		default "65704cf58e209a0ab2b9680aca0a047ad7deff04" if TARGET_airoha_an7581
+		default "03dd4c90949b4e60c0e0b29314afdd3f5c800504" if TARGET_airoha_an7581
 		default "97d2eb7b02e0c963ab66c11e2c9c70660694b680" if TARGET_airoha_en7523
 	config KERNEL_GIT_MIRROR_HASH
 		default "e76032cce99c247d73bae1b67bc7a1de58a8a3def4c6f2426f322ad062b608de"
diff --git a/airoha/an7581/defines/dir.mak b/airoha/an7581/defines/dir.mak
index 9ff995f14122767b0e752e9087af86b7843bea56..294540e6aa7ade72bed87747d074dd7dd60dbfda 100644
--- a/airoha/an7581/defines/dir.mak
+++ b/airoha/an7581/defines/dir.mak
@@ -276,6 +276,8 @@ export KERNEL_ECNT_ARCH_ARM_INC_DIR
 
 export KERNEL_ARHT_DIR=$(TRUNK_DIR)/linux-arht
 export KERNEL_ARHT_GENERIC_DIR=$(TRUNK_DIR)/linux-6/generic-6.6
+export GLOBAL_INC_DIR=$(TRUNK_DIR)/global_inc
+export GLOBAL_FLASH_LAYOUT_INC_DIR=$(GLOBAL_INC_DIR)/flash_layout
 
 MODULE_DIR=$(TRUNK_DIR)/modules
 MODULES_PRIV_SRC_DIR=$(MODULE_DIR)/private
@@ -356,8 +358,10 @@ MODULES_DIAG_TOOL=$(MODULES_PRIV_SRC_DIR)/diag_tools
 export MODULES_RAETH_DIR
 
 MODULES_CRITICAL_DP_DIR=$(TRUNK_DIR)/BSP/critical_ip_bsp/dp_bsp
+ifeq ($(strip $(TCSUPPORT_CHIP_VARIANT_CONFIG)  $(TCSUPPORT_OPEN_HWNAT)),)
 MODULES_CRITICAL_DP_RA_HWNAT_V3_DIR=$(MODULES_CRITICAL_DP_DIR)/ra_hwnat_v3
 export MODULES_CRITICAL_DP_RA_HWNAT_V3_DIR
+endif
 MODULES_CRITICAL_DP_IFC_DIR=$(MODULES_CRITICAL_DP_DIR)/ifc
 export MODULES_CRITICAL_DP_IFC_DIR
 MODULES_CRITICAL_DP_SPEEDTEST_DIR=$(MODULES_CRITICAL_DP_DIR)/speedtest
@@ -395,8 +399,13 @@ MODULES_HWNAT_DIR=$(MODULES_PRIV_SRC_DIR)/hwnat
 MODULES_RA_HWNAT_DIR=$(MODULES_PRIV_SRC_DIR)/ra_hwnat
 MODULES_RA_HWNAT_7510_DIR=$(MODULES_PRIV_SRC_DIR)/ra_hwnat_7510
 export MODULES_RA_HWNAT_7510_DIR
+ifneq ($(strip $(TCSUPPORT_CHIP_VARIANT_CONFIG) $(TCSUPPORT_OPEN_HWNAT)),)
+MODULES_RA_HWNAT_V3_OPEN_DIR=$(MODULES_PRIV_SRC_DIR)/ra_hwnat_v3_open
+export MODULES_RA_HWNAT_V3_OPEN_DIR
+else
 MODULES_RA_HWNAT_V3_DIR=$(MODULES_PRIV_SRC_DIR)/ra_hwnat_v3
 export MODULES_RA_HWNAT_V3_DIR
+endif
 MODULES_FE_PPE_TEST_DIR=$(MODULES_PRIV_SRC_DIR)/fe_ppe_test
 MODULES_KPROFILE_DIR=$(MODULES_PRIV_SRC_DIR)/kprofile
 RT2561AP_DIR=$(MODULES_PRIV_SRC_DIR)/wifi/rt61ap/Module
@@ -604,13 +613,15 @@ export MODULES_XSI_AN8811_BBU_API_MDIO_ARHT_DIR
 export MODULES_ENB_BSP_PHY_AN8811_DIR
 endif
 
-ifneq ($(strip $(TCSUPPORT_ETHER_AS21XX)),)
-MODULES_AS21XX_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx
-MODULES_AS21XX_BBU_API_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx_bbu_api
-MODULES_AS21XX_BBU_API_MDIO_ARHT_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx_bbu_api/mdio_arht
-export MODULES_AS21XX_DIR
-export MODULES_AS21XX_BBU_API_DIR
-export MODULES_AS21XX_BBU_API_MDIO_ARHT_DIR
+ifneq ($(strip $(TCSUPPORT_ETHER_8831)),)
+MODULES_8831_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx
+MODULES_8831_BBU_API_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx_bbu_api
+MODULES_8831_BBU_API_MDIO_ARHT_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx_bbu_api/mdio_arht
+8831_UBOOT_DRIVER_DIR=$(TRUNK_DIR)/BSP/unopen_ip/serdes_phy/10Gphy/as21xx/as21xx_uboot_driver
+export MODULES_8831_DIR
+export MODULES_8831_BBU_API_DIR
+export MODULES_8831_BBU_API_MDIO_ARHT_DIR
+export 8831_UBOOT_DRIVER_DIR
 endif
 
 #ifneq ($(strip $(TCSUPPORT_ECNT_MAP)),)
@@ -727,6 +738,7 @@ export VOIP_BSP_DIR=$(TRUNK_DIR)/BSP/voip_bsp
 export VOIP_BSP_CRITICAL_DIR=$(TRUNK_DIR)/BSP/critical_ip_bsp/voip_bsp
 export VOIP_APP_DIR=$(TRUNK_DIR)/apps/voip_app
 export VOIP_APP_CRITICAL_DIR=$(TRUNK_DIR)/apps/critical_ip_app/voip_app
+export OLT_APP_CRITICAL_DIR=$(TRUNK_DIR)/apps/critical_ip_app/olt_app/olt_omci/src/frame/
 export MESH_APP_DIR=$(TRUNK_DIR)/apps/mesh_app_open
 export APP_CRITICALIP_DIR=$(APP_DIR)/critical_ip_app
 export VOIP_APP_BSP_DIR=$(APP_BSP_PRIVATEDIR)/voip
@@ -814,5 +826,6 @@ endif
 APP_RATEMANAGER_DIR=$(APP_BSP_PRIVATEDIR)/ratemanager
 
 MODULES_CRITICAL_NPU_DIR=$(TRUNK_DIR)/BSP/critical_ip_bsp/npu_bsp
+MODULES_CRITICAL_OLT_BSP_DIR=$(TRUNK_DIR)/BSP/critical_ip_bsp/olt_bsp
 MODULES_CRITICAL_NPU_EXT_DIR=$(TRUNK_DIR)/../critical_ip/tclinux_phoenix
 MODULES_MD32RV_EXT_DIR=$(MODULES_CRITICAL_NPU_EXT_DIR)/BSP/critical_ip_bsp/npu_bsp/md32rv-sdk
diff --git a/airoha/an7581/defines/econet_feed_paths.mk b/airoha/an7581/defines/econet_feed_paths.mk
index a9381fb0edc35bed90fd377f4a1a22a437f01119..651e3ea550701947299f7b1076aef263b382bfb9 100644
--- a/airoha/an7581/defines/econet_feed_paths.mk
+++ b/airoha/an7581/defines/econet_feed_paths.mk
@@ -9,5 +9,5 @@ export ECNT_BUILD_DIR=$(AIROHA_FEEDS_DIR)/include
 export KERNEL_BUILD_DIR
 export KERNEL_DIR=$(LINUX_DIR)
 ifeq ($(TCPLATFORM),en7581)
-export RELEASE_PROFILE=UNION_AN7581_KITE_LOGAN_KERNEL_5_4_demo
+export RELEASE_PROFILE=UNION_AN7581_KITE_LOGAN_EMMC_OPTEE_KERNEL_5_4_demo
 endif
diff --git a/airoha/an7581/defines/rule.mak b/airoha/an7581/defines/rule.mak
index 67d05b688443b22e89724a610b5a1288358dd251..f3096a748e76117369b90d61a73f1b0665b09752 100644
--- a/airoha/an7581/defines/rule.mak
+++ b/airoha/an7581/defines/rule.mak
@@ -13,6 +13,20 @@ export TCSUPPORT_OPENWRT=1
 BSP_CFLAGS+=-DTCSUPPORT_OPENWRT
 endif
 
+ifneq ($(strip $(TCSUPPORT_CHIP_VARIANT_CONFIG)),)
+export TCSUPPORT_CHIP_VARIANT_CONFIG=1
+BSP_CFLAGS+=-DTCSUPPORT_CHIP_VARIANT_CONFIG
+BSP_CFLAGS+=-I$(KERNEL_ARHT_DIR)/include/
+BSP_CFLAGS+=-I$(KERNEL_ARHT_DIR)/include/uapi
+BSP_CFLAGS+=-I$(GLOBAL_INC_DIR)
+endif
+
+ifneq ($(strip $(TCSUPPORT_OPEN_HWNAT)),)
+export TCSUPPORT_OPEN_HWNAT=1
+BSP_CFLAGS+=-DTCSUPPORT_OPEN_HWNAT
+BSP_CFLAGS+=-I$(GLOBAL_INC_DIR)
+endif
+
 ifneq ($(strip $(TCSUPPORT_OPENWRT_MULTI_WAN)),)
 export TCSUPPORT_OPENWRT_MULTI_WAN=1
 BSP_CFLAGS+=-DTCSUPPORT_OPENWRT_MULTI_WAN
@@ -6158,6 +6172,11 @@ ifneq ($(strip $(TCSUPPORT_TPL_SUPPORT)),)
 export TCSUPPORT_TPL_SUPPORT=1
 BSP_CFLAGS+= -DTCSUPPORT_TPL_SUPPORT
 endif
+ifneq ($(strip $(TCSUPPORT_TPL_ENC)),)
+export TCSUPPORT_TPL_ENC=1
+BSP_CFLAGS+= -DTCSUPPORT_TPL_ENC
+endif
+
 endif
 endif
 ifneq ($(strip $(TCSUPPORT_ATF_2_1)),)
@@ -6176,6 +6195,10 @@ endif
 endif
 
 ifneq ($(strip $(TCSUPPORT_ATF_2_10)),)
+ifneq ($(strip $(TCSUPPORT_ARM_SECURE_BOOT)),)
+export TCSUPPORT_ARM_SECURE_BOOT=1
+BSP_CFLAGS+=-DTCSUPPORT_ARM_SECURE_BOOT
+endif
 export TCSUPPORT_ATF_VERSION=arm-trusted-firmware-2.10.0
 endif
 
@@ -6279,6 +6302,13 @@ export TCSUPPORT_ETHER_8811=1
 BSP_CFLAGS+= -DTCSUPPORT_ETHER_8811
 endif
 
+ifneq ($(strip $(TCSUPPORT_ETHER_8831)),)
+export TCSUPPORT_ETHER_8831=1
+BSP_CFLAGS+= -DTCSUPPORT_ETHER_8811
+export TCSUPPORT_ETHER_AS21XX=1
+BSP_CFLAGS+= -DTCSUPPORT_ETHER_AS21XX
+endif
+
 ifneq ($(strip $(TCSUPPORT_ETHER_AS21XX)),)
 export TCSUPPORT_ETHER_AS21XX=1
 BSP_CFLAGS+= -DTCSUPPORT_ETHER_AS21XX
diff --git a/airoha/image/Makefile b/airoha/image/Makefile
index 1ba1fe9e1e954749ad62864d95adce38b3187a07..575125fcc0b435651352d0336c505a0d4e534b35 100755
--- a/airoha/image/Makefile
+++ b/airoha/image/Makefile
@@ -242,7 +242,6 @@ PON_PACKAGES += \
 	kmod-bbf247 \
 	kmod-lddla \
 	kmod-lddla_1g \
-	kmod-gpon_igmp \
 	kmod-xpon_10g \
 	kmod-xpon_phy_10g
 endif