diff --git a/recipes-ccsp/ccsp/ccsp-adv-security.bbappend b/recipes-ccsp/ccsp/ccsp-adv-security.bbappend
index 1836ce2..42fae2a 100644
--- a/recipes-ccsp/ccsp/ccsp-adv-security.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-adv-security.bbappend
@@ -1 +1 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
diff --git a/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend b/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend
new file mode 100644
index 0000000..251f867
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend
@@ -0,0 +1,18 @@
+require ccsp_common_filogic.inc
+
+DEPENDS_append_dunfell = " safec"
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+EXTRA_OECONF_remove = " ${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', '--enable-wanmgr', '', d)}"
+
+do_install_append() {
+    # Config files and scripts
+    install -m 644 ${S}/config-arm/CcspCMDM.cfg ${D}${prefix}/ccsp/cm/CcspCMDM.cfg
+    install -m 644 ${S}/config-arm/CcspCM.cfg ${D}${prefix}/ccsp/cm/CcspCM.cfg
+    install -m 644 ${S}/config-arm/TR181-CM.XML ${D}${prefix}/ccsp/cm/TR181-CM.XML
+
+    # delete files that are installed by some other package
+    rm -f ${D}/usr/include/ccsp/cosa_apis.h
+    rm -f ${D}/usr/include/ccsp/cosa_apis_busutil.h
+    rm -f ${D}/usr/include/ccsp/cosa_dml_api_common.h
+}
diff --git a/recipes-ccsp/ccsp/ccsp-common-library.bbappend b/recipes-ccsp/ccsp/ccsp-common-library.bbappend
index 9387033..2b4cce0 100644
--- a/recipes-ccsp/ccsp/ccsp-common-library.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-common-library.bbappend
@@ -1,9 +1,9 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:${THISDIR}/files:"
 
-DEPENDS_append_turris = " breakpad"
-CXXFLAGS_append_turris = " \
+DEPENDS_append_filogic = " breakpad"
+CXXFLAGS_append_filogic = " \
                                 -I${STAGING_INCDIR}/breakpad \
                                 -std=c++11 \
                               "
@@ -11,10 +11,10 @@
 SRC_URI_append = " \
     file://ccsp_vendor.h \
     file://wifiinitialized.service \
-    file://checkturriswifisupport.service \
+    file://checkfilogicwifisupport.service \
     file://wifiinitialized.path \
-    file://turriswifiinitialized.path \
-    file://checkturriswifisupport.path \
+    file://filogicwifiinitialized.path \
+    file://checkfilogicwifisupport.path \
     file://wifi-initialized.target \
     file://utopia.service \
 "
@@ -28,8 +28,8 @@
 SRC_URI_append_dunfell = " file://0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch;apply=no"
 
 
-# we need to patch to code for Turris
-do_turris_patches() {
+# we need to patch to code for Filogic
+do_filogic_patches() {
     cd ${S}
     if [ ! -e patch_applied ]; then
         patch -p1 < ${WORKDIR}/0003-add-dependency-to-pandm.patch
@@ -41,7 +41,7 @@
        touch patch_applied
     fi
 }
-addtask turris_patches after do_unpack before do_compile
+addtask filogic_patches after do_unpack before do_compile
 
 do_install_append_class-target(){
     # Config files and scripts
@@ -81,11 +81,11 @@
     install -D -m 0644 ${S}/systemd_units/rfc.service ${D}${systemd_unitdir}/system/rfc.service
 
     install -D -m 0644 ${WORKDIR}/wifiinitialized.service ${D}${systemd_unitdir}/system/wifiinitialized.service
-    install -D -m 0644 ${WORKDIR}/checkturriswifisupport.service ${D}${systemd_unitdir}/system/checkturriswifisupport.service
+    install -D -m 0644 ${WORKDIR}/checkfilogicwifisupport.service ${D}${systemd_unitdir}/system/checkfilogicwifisupport.service
 
     install -D -m 0644 ${WORKDIR}/wifiinitialized.path ${D}${systemd_unitdir}/system/wifiinitialized.path
-    install -D -m 0644 ${WORKDIR}/turriswifiinitialized.path ${D}${systemd_unitdir}/system/turriswifiinitialized.path
-    install -D -m 0644 ${WORKDIR}/checkturriswifisupport.path ${D}${systemd_unitdir}/system/checkturriswifisupport.path
+    install -D -m 0644 ${WORKDIR}/filogicwifiinitialized.path ${D}${systemd_unitdir}/system/filogicwifiinitialized.path
+    install -D -m 0644 ${WORKDIR}/checkfilogicwifisupport.path ${D}${systemd_unitdir}/system/checkfilogicwifisupport.path
 
     install -D -m 0644 ${WORKDIR}/wifi-initialized.target ${D}${systemd_unitdir}/system/wifi-initialized.target
 
@@ -107,7 +107,7 @@
     #reduce sleep time to 12 sconds
     sed -i 's/300/12/g' ${D}${systemd_unitdir}/system/rfc.service
    
-    #change for turris omnia
+    #change for Filogic
     sed -i 's/PIDFile/#&/' ${D}${systemd_unitdir}/system/CcspPandMSsp.service 
 
     #WanManager - RdkWanManager.service
@@ -147,10 +147,10 @@
 SYSTEMD_SERVICE_${PN} += "snmpSubAgent.service"
 SYSTEMD_SERVICE_${PN} += "CcspEthAgent.service"
 SYSTEMD_SERVICE_${PN} += "wifiinitialized.service"
-SYSTEMD_SERVICE_${PN} += "checkturriswifisupport.service"
+SYSTEMD_SERVICE_${PN} += "checkfilogicwifisupport.service"
 SYSTEMD_SERVICE_${PN} += "wifiinitialized.path"
-SYSTEMD_SERVICE_${PN} += "turriswifiinitialized.path"
-SYSTEMD_SERVICE_${PN} += "checkturriswifisupport.path"
+SYSTEMD_SERVICE_${PN} += "filogicwifiinitialized.path"
+SYSTEMD_SERVICE_${PN} += "checkfilogicwifisupport.path"
 SYSTEMD_SERVICE_${PN} += "wifi-initialized.target"
 SYSTEMD_SERVICE_${PN} += "ProcessResetDetect.path"
 SYSTEMD_SERVICE_${PN} += "ProcessResetDetect.service"
@@ -174,10 +174,10 @@
     ${systemd_unitdir}/system/snmpSubAgent.service \
     ${systemd_unitdir}/system/CcspEthAgent.service \
     ${systemd_unitdir}/system/wifiinitialized.service \
-    ${systemd_unitdir}/system/checkturriswifisupport.service \
+    ${systemd_unitdir}/system/checkfilogicwifisupport.service \
     ${systemd_unitdir}/system/wifiinitialized.path \
-    ${systemd_unitdir}/system/turriswifiinitialized.path \
-    ${systemd_unitdir}/system/checkturriswifisupport.path \
+    ${systemd_unitdir}/system/filogicwifiinitialized.path \
+    ${systemd_unitdir}/system/checkfilogicwifisupport.path \
     ${systemd_unitdir}/system/wifi-initialized.target \
     ${systemd_unitdir}/system/ProcessResetDetect.path \
     ${systemd_unitdir}/system/ProcessResetDetect.service \
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h b/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h
index d942c1f..bc023a9 100644
--- a/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h
+++ b/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h
@@ -17,6 +17,6 @@
 limitations under the License.
 */
 
-#define CONFIG_VENDOR_NAME "Turris CZ"
+#define CONFIG_VENDOR_NAME "Mediatek Inc."
 #define CONFIG_VENDOR_ID "0xFFFFFFFE"
-#define CONFIG_TI_GW_DESCRIPTION "Turris Omnia Gateway device"
+#define CONFIG_TI_GW_DESCRIPTION "Filogic Gateway device"
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.path b/recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.path
new file mode 100644
index 0000000..00a1873
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.path
@@ -0,0 +1,9 @@
+[Unit]
+Description=Check Filogic Wifi Support Initialized Path
+
+[Path]
+PathExists=/tmp/pam_initialized
+Unit=checkfilogicwifisupport.service
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service b/recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.service
similarity index 65%
rename from recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service
rename to recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.service
index e92810f..b5a31be 100644
--- a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service
+++ b/recipes-ccsp/ccsp/ccsp-common-library/checkfilogicwifisupport.service
@@ -1,5 +1,5 @@
 [Unit]
-Description=Check WIFI support on Turris Omnia device
+Description=Check WIFI support on Filogic device
 After=hostapd.service
 
 [Service]
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path b/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path
deleted file mode 100644
index 4f9c8d8..0000000
--- a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Check Turris Wifi Support Initialized Path
-
-[Path]
-PathExists=/tmp/pam_initialized
-Unit=checkturriswifisupport.service
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path b/recipes-ccsp/ccsp/ccsp-common-library/filogicwifiinitialized.path
similarity index 72%
rename from recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path
rename to recipes-ccsp/ccsp/ccsp-common-library/filogicwifiinitialized.path
index 5b4da66..4f9b8b2 100644
--- a/recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path
+++ b/recipes-ccsp/ccsp/ccsp-common-library/filogicwifiinitialized.path
@@ -1,5 +1,5 @@
 [Unit]
-Description=TurrisOmnia WIFI Initialized Path
+Description=Filogic WIFI Initialized Path
 
 [Path]
 PathExists=/tmp/wifi_driver_initialized
diff --git a/recipes-ccsp/ccsp/ccsp-cr.bbappend b/recipes-ccsp/ccsp/ccsp-cr.bbappend
index 9362db4..e9f63b7 100644
--- a/recipes-ccsp/ccsp/ccsp-cr.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-cr.bbappend
@@ -1,14 +1,15 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
+
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
 SRC_URI_append = " \
-    file://cr-deviceprofile_turris.xml \
+    file://cr-deviceprofile_filogic.xml \
 "
 
 do_install_append() {
     # Config files and scripts
-    install -m 644 ${WORKDIR}/cr-deviceprofile_turris.xml ${D}/usr/ccsp/cr-deviceprofile.xml
-    install -m 644 ${WORKDIR}/cr-deviceprofile_turris.xml ${D}/usr/ccsp/cr-ethwan-deviceprofile.xml
+    install -m 644 ${WORKDIR}/cr-deviceprofile_filogic.xml ${D}/usr/ccsp/cr-deviceprofile.xml
+    install -m 644 ${WORKDIR}/cr-deviceprofile_filogic.xml ${D}/usr/ccsp/cr-ethwan-deviceprofile.xml
 }
 
 LDFLAGS_append_dunfell = " -lpthread -lbreakpadwrapper"
diff --git a/recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_turris.xml b/recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_filogic.xml
similarity index 100%
rename from recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_turris.xml
rename to recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_filogic.xml
diff --git a/recipes-ccsp/ccsp/ccsp-dmcli.bbappend b/recipes-ccsp/ccsp/ccsp-dmcli.bbappend
index a4fc0c0..b50d7f0 100644
--- a/recipes-ccsp/ccsp/ccsp-dmcli.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-dmcli.bbappend
@@ -1,7 +1,7 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 LDFLAGS_append_dunfell = " -lsafec-3.5.1"
 
-do_install_append_turris () {
+do_install_append_filogic () {
     ln -sf ${bindir}/dmcli ${D}${bindir}/ccsp_bus_client_tool
 }
diff --git a/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend b/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend
index 66dd286..38e81c4 100644
--- a/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 CFLAGS_aarch64_append = " -Werror=format-truncation=1 "
 
diff --git a/recipes-ccsp/ccsp/ccsp-home-security.bbappend b/recipes-ccsp/ccsp/ccsp-home-security.bbappend
index 1836ce2..42fae2a 100644
--- a/recipes-ccsp/ccsp/ccsp-home-security.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-home-security.bbappend
@@ -1 +1 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
diff --git a/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend b/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend
index b7e65ec..8b0b5aa 100644
--- a/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 EXTRA_OECONF_append  = " --with-ccsp-arch=arm"
 
diff --git a/recipes-ccsp/ccsp/ccsp-misc.bbappend b/recipes-ccsp/ccsp/ccsp-misc.bbappend
index 925ae9e..495a2fb 100644
--- a/recipes-ccsp/ccsp/ccsp-misc.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-misc.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 DEPENDS_append_dunfell = " ccsp-lm-lite"
 
diff --git a/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend b/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend
new file mode 100644
index 0000000..035658a
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend
@@ -0,0 +1,11 @@
+require ccsp_common_filogic.inc
+
+DEPENDS_append_dunfell = " safec"
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+do_install_append() {
+    # Config files and scripts
+    install -m 644 ${S}/config/CcspMtaAgent.xml ${D}/usr/ccsp/mta/CcspMtaAgent.xml
+    install -m 644 ${S}/config/CcspMta.cfg ${D}/usr/ccsp/mta/CcspMta.cfg
+    install -m 644 ${S}/config/CcspMtaLib.cfg ${D}/usr/ccsp/mta/CcspMtaLib.cfg
+}
diff --git a/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend b/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend
index 1f592e7..01975af 100644
--- a/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend
@@ -1,6 +1,6 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 DEPENDS_append = " utopia curl "
 
diff --git a/recipes-ccsp/ccsp/ccsp-psm.bbappend b/recipes-ccsp/ccsp/ccsp-psm.bbappend
index 5a204f8..6bb58b8 100644
--- a/recipes-ccsp/ccsp/ccsp-psm.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-psm.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 LDFLAGS_append_dunfell = " -lsafec-3.5.1"
 
@@ -7,11 +7,6 @@
     install -d ${D}/usr/ccsp/config
     install -m 644 ${S}/config/bbhm_def_cfg_qemu.xml ${D}/usr/ccsp/config/bbhm_def_cfg.xml
     install -m 755 ${S}/scripts/bbhm_patch.sh ${D}/usr/ccsp/psm/bbhm_patch.sh
-#    sed -i '/NotifyWiFiChanges/a \
-#      <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID" type="astr">TURRIS_RDKB-AP0</Record> \
-#      <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID" type="astr">TURRIS_RDKB-AP1</Record> \
-#      <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase" type="astr">rdk@1234</Record> \
-#      <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase" type="astr">rdk@1234</Record>' ${D}/usr/ccsp/config/bbhm_def_cfg.xml
 
 #WanManager Feature
     DISTRO_WAN_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','rdkb_wan_manager','true','false',d)}"
diff --git a/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend b/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend
index 1836ce2..42fae2a 100644
--- a/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend
@@ -1 +1 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
diff --git a/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend b/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend
index e8b448a..49fd4f7 100644
--- a/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
@@ -17,14 +17,14 @@
                 install -d ${D}${base_libdir}/rdk/
                 install -d ${D}${systemd_unitdir}/system/
 
-                # delete wan0 reference for Turris
-                sed -i "/wan0:80/a  echo \"This interface is not available in Turris\""  ${D}${sysconfdir}/webgui.sh
-                sed -i "/wan0:443/a  echo \"This interface is not available in Turris\""  ${D}${sysconfdir}/webgui.sh
+                # delete wan0 reference for Filogic
+                sed -i "/wan0:80/a  echo \"This interface is not available in Filogic\""  ${D}${sysconfdir}/webgui.sh
+                sed -i "/wan0:443/a  echo \"This interface is not available in Filogic\""  ${D}${sysconfdir}/webgui.sh
                 sed -i "s/if \[ \"\$BOX_TYPE\" == \"HUB4\" \]/if \[ \"\$BOX_TYPE\" = \"HUB4\" \]/g" ${D}${sysconfdir}/webgui.sh
                 sed -i '/wan0/d' ${D}${sysconfdir}/webgui.sh
 
-                #delete server.pem reference for TurrisOmnia
-                sed -e '/server.pem/ s/^#*/echo "Removed server.pem references for Turris"\n#/' -i ${D}${sysconfdir}/webgui.sh
+                #delete server.pem reference for Filogic
+                sed -e '/server.pem/ s/^#*/echo "Removed server.pem references for Filogic"\n#/' -i ${D}${sysconfdir}/webgui.sh
 
                 install -m 755 ${WORKDIR}/CcspWebUI.sh ${D}${base_libdir}/rdk/
                 install -m 644 ${WORKDIR}/CcspWebUI.service ${D}${systemd_unitdir}/system/
diff --git a/recipes-ccsp/ccsp/ccsp-webui-php.bbappend b/recipes-ccsp/ccsp/ccsp-webui-php.bbappend
index 913b9f2..90cfe21 100644
--- a/recipes-ccsp/ccsp/ccsp-webui-php.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-webui-php.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
@@ -13,12 +13,12 @@
     install -d ${D}${sysconfdir}
     install -m 755 ${S}/../Styles/xb3/config/php.ini ${D}${sysconfdir}
 
-    # delete wan0 reference for TurrisOmnia
-    sed -i "/wan0:80/a  echo \"This interface is not available in Turris\""  ${D}${sysconfdir}/webgui.sh
-    sed -i "/wan0:443/a  echo \"This interface is not available in Turris\""  ${D}${sysconfdir}/webgui.sh
+    # delete wan0 reference for Filogic
+    sed -i "/wan0:80/a  echo \"This interface is not available in Filogic\""  ${D}${sysconfdir}/webgui.sh
+    sed -i "/wan0:443/a  echo \"This interface is not available in Filogic\""  ${D}${sysconfdir}/webgui.sh
     sed -i '/wan0/d' ${D}${sysconfdir}/webgui.sh
 
-    #delete server.pem reference for TurrisOmnia
+    #delete server.pem reference for Filogic
     sed -e '/server.pem/ s/^#*/echo "Removed server.pem references for R-pi"\n#/' -i ${D}${sysconfdir}/webgui.sh
 
     sed -i -e "s/'TCP',\ 'UDP',\ 'TCP\/UDP'/'TCP',\ 'UDP',\ 'BOTH'/g" ${D}/usr/www/actionHandler/ajax_managed_services.php
@@ -27,7 +27,7 @@
 	sed -i -e "s/https:\/\/webui-xb3-cpe-srvr.xcal.tv/http:\/\/'.\$ip_addr.'/g" ${D}/usr/www/index.php
 	sed -i -e "s/LIGHTTPD_PID=\`pidof lighttpd\`/LIGHTTPD_PID=\`pidof lighttpd php-cgi\`/g" ${D}${sysconfdir}/webgui.sh
 	sed -i -e "s/\/bin\/kill \$LIGHTTPD_PID/\/bin\/kill -9 \$LIGHTTPD_PID/g" ${D}${sysconfdir}/webgui.sh
-        #Remove Mesh-Mode Validation on TurrisOmnia
+        #Remove Mesh-Mode Validation on Filogic
         sed -i -e "s/&& (\$Mesh_Mode==\"false\")//g" ${D}/usr/www/actionHandler/ajaxSet_wireless_network_configuration_edit.php
 	sed -i "/setting ConfigureWiFi to true/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
 	sed -i "/setting ConfigureWiFi to true/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend b/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend
index 49ab837..b4c70cf 100644
--- a/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
@@ -25,7 +25,7 @@
 "
 
 # we need to patch to code for ccsp-wifi-agent
-do_turris_ccspwifiagent_patches() {
+do_filogic_ccspwifiagent_patches() {
     cd ${S}
     if [ ! -e patch_applied ]; then
         bbnote "Patching handle_mesh-rename-opensync.patch"
@@ -34,7 +34,7 @@
         touch patch_applied
     fi
 }
-addtask turris_ccspwifiagent_patches after do_unpack before do_configure
+addtask filogic_ccspwifiagent_patches after do_unpack before do_configure
 
 EXTRA_OECONF_append  = " --with-ccsp-arch=arm"
 
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg b/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg
index 6d63af6..ceff0a3 100644
--- a/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg
@@ -4,8 +4,8 @@
 RADIO_CHANNEL_1=36
 CHANNEL_MODE_0=20
 CHANNEL_MODE_1=20
-SSID_NAME_0=TURRIS_RDKB-AP0
-SSID_NAME_1=TURRIS_RDKB-AP1
+SSID_NAME_0=Filogic_RDKB-AP0
+SSID_NAME_1=Filogic_RDKB-AP1
 PRESHAREDKEY_0=rdk@1234
 PRESHAREDKEY_1=rdk@1234
 BEACONTYPE_0=11i
diff --git a/recipes-ccsp/ccsp/ccsp-xdns.bbappend b/recipes-ccsp/ccsp/ccsp-xdns.bbappend
index 30ce42d..78fbef3 100644
--- a/recipes-ccsp/ccsp/ccsp-xdns.bbappend
+++ b/recipes-ccsp/ccsp/ccsp-xdns.bbappend
@@ -1,4 +1,4 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
 
 EXTRA_OECONF_append  = " --with-ccsp-arch=arm"
 
diff --git a/recipes-ccsp/ccsp/ccsp_common_turris.inc b/recipes-ccsp/ccsp/ccsp_common_filogic.inc
similarity index 95%
rename from recipes-ccsp/ccsp/ccsp_common_turris.inc
rename to recipes-ccsp/ccsp/ccsp_common_filogic.inc
index 00eef0a..c71d57f 100644
--- a/recipes-ccsp/ccsp/ccsp_common_turris.inc
+++ b/recipes-ccsp/ccsp/ccsp_common_filogic.inc
@@ -1,4 +1,4 @@
-SUMMARY = "common inc for turris"
+SUMMARY = "common inc for filogic"
 
 CFLAGS_append += " -U_COSA_SIM_ -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-strict-aliasing \
            -D_ANSC_LINUX -D_ANSC_USER -D_ANSC_LITTLE_ENDIAN_ -D_CCSP_CWMP_TCP_CONNREQ_HANDLER \
diff --git a/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch b/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch
deleted file mode 100644
index 8a838fa..0000000
--- a/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/source/gw_prov_sm.c b/source/gw_prov_sm.c
-index 76cf208..983d1fa 100644
---- a/source/gw_prov_sm.c
-+++ b/source/gw_prov_sm.c
-@@ -88,7 +88,7 @@ char log_buff[1024];
- #define NETUTILS_IPv6_GLOBAL_ADDR_LEN     	 128
- #define ER_NETDEVNAME "erouter0"
- #define IFNAME_WAN_0    "wan0"
--#define IFNAME_ETH_0    "eth0"
-+#define IFNAME_ETH_0    "eth2"
- #define TLV202_42_FAVOR_DEPTH 1
- #define TLV202_42_FAVOR_WIDTH 2
- 
-@@ -2449,9 +2449,9 @@ static int GWP_act_ProvEntry_callback()
-        return -1;
-     }
- 
--    system("ifconfig eth0 down");
-+    system("ifconfig eth2 down");
-     memset(command,0,sizeof(command));
--    sprintf(command, "ip link set eth0 name %s", wanPhyName);
-+    sprintf(command, "ip link set eth2 name %s", wanPhyName);
-     printf("****************value of command = %s**********************\n", command);
-     system(command);
- 
diff --git a/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch b/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch
deleted file mode 100644
index a23f320..0000000
--- a/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch
+++ /dev/null
@@ -1,350 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index c4aeb55..7eded47 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -53,5 +53,6 @@ AC_CONFIG_FILES(
- 	Makefile
- )
- AM_CONDITIONAL([PLATFORM_RASPBERRYPI_ENABLED], [test $PLATFORM_RASPBERRYPI_ENABLED = yes])
-+AM_CONDITIONAL([PLATFORM_TURRIS_ENABLED], [test $PLATFORM_TURRIS_ENABLED = yes])
- AC_OUTPUT
- 
-diff --git a/source/Makefile.am b/source/Makefile.am
-index d7d99da..4cb1847 100644
---- a/source/Makefile.am
-+++ b/source/Makefile.am
-@@ -23,9 +23,13 @@ AM_CFLAGS += -DCONFIG_PRIMARY_NET_BRIDGE_MODE
- if PLATFORM_RASPBERRYPI_ENABLED
- AM_LDFLAGS = -lsysevent
- else
-+if PLATFORM_TURRIS_ENABLED
-+AM_LDFLAGS = -lsysevent
-+else
- AM_LDFLAGS = -lgwprovappabs
- AM_LDFLAGS += -lsysevent
- endif
-+endif
- AM_LDFLAGS += -lsyscfg
- AM_LDFLAGS += -lulog
- 
-@@ -38,5 +42,11 @@ gw_prov_utopia_SOURCES = gw_prov_sm.c
- if PLATFORM_RASPBERRYPI_ENABLED
- gw_prov_utopia_LDFLAGS = -lsysevent -lsyscfg -lulog
- else
-+if PLATFORM_TURRIS_ENABLED
-+gw_prov_utopia_LDFLAGS = -lsysevent -lsyscfg -lulog
-+else
- gw_prov_utopia_LDFLAGS =  -lgwprovappabs -lsysevent -lsyscfg -lulog
- endif
-+endif
-+gw_prov_utopia_LDFLAGS += -pthread
-+gw_prov_utopia_LDFLAGS += -pthread
-diff --git a/source/gw_prov_sm.c b/source/gw_prov_sm.c
-index 7117be3..a8c154f 100644
---- a/source/gw_prov_sm.c
-+++ b/source/gw_prov_sm.c
-@@ -55,11 +55,11 @@
- #include <sys/socket.h>
- #include <sys/stat.h>
- #include <fcntl.h>
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- #include <sys/types.h>
- #endif
- #include <unistd.h>
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- #include <ruli.h>
- #endif
- #include <sysevent/sysevent.h>
-@@ -68,7 +68,7 @@
- #include "gw_prov_abstraction.h"
- #include "Tr69_Tlv.h"
- #include <autoconf.h>
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- #include "docsis_esafe_db.h"
- #endif
- #include <time.h>
-@@ -197,7 +197,7 @@ static token_t sysevent_token;
- static int sysevent_fd_gs;
- static token_t sysevent_token_gs;
- static pthread_t sysevent_tid;
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
- static pthread_t linkstate_tid;
- #endif
- static int phylink_wan_state = 0;
-@@ -264,7 +264,7 @@ static int getSyseventBridgeMode(int erouterMode, int bridgeMode) {
- }
- 
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- /**************************************************************************/
- /*! \fn STATUS GW_TlvParserInit(void)
-  **************************************************************************
-@@ -736,7 +736,7 @@ static int GWP_SysCfgSetInt(const char *name, int int_value)
-    return syscfg_set(NULL, name, value);
- }
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- /**************************************************************************/
- /*! \fn static STATUS GWP_UpdateEsafeAdminMode()
-  **************************************************************************
-@@ -788,7 +788,7 @@ validate_mode(int* bridge_mode, int* eRouterMode)
- 	GWPROV_PRINT(" %s : bridge_mode = %d , eRouterMode = %d \n", __FUNCTION__, *bridge_mode, *eRouterMode);
- }
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- void docsis_gotEnable_callback(Uint8 state)
- {
- 	GWPROV_PRINT(" Entry %s , state = %d \n", __FUNCTION__, state);
-@@ -840,7 +840,7 @@ static void GWP_DocsisInited(void)
- **************************************************************************/
- static void GWP_EnableERouter(void)
- {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- 	GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
-     /* Update ESAFE state */
-     GWP_UpdateEsafeAdminMode(eRouterMode);
-@@ -903,7 +903,7 @@ static void GWP_EnterRouterMode(void)
- **************************************************************************/
- static void GWP_DisableERouter(void)
- {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- 	GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
-     /* Update ESAFE state */
-     GWP_UpdateEsafeAdminMode(eRouterMode);
-@@ -1049,7 +1049,7 @@ static void GWP_UpdateERouterMode(void)
-             }
-             else  // remain enabled, switch mode
-             {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                 /* Update ESAFE state */
-                 GWP_UpdateEsafeAdminMode(eRouterMode);
- #endif
-@@ -1121,7 +1121,7 @@ static void GWP_ProcessUtopiaRestart(void)
- //     }
- }
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- /**************************************************************************/
- /*! \fn int GWP_ProcessIpv4Down();
-  **************************************************************************
-@@ -1428,13 +1428,13 @@ static void *GWP_sysevent_threadfunc(void *data)
-             {
-                 if (strcmp(val, "up")==0)
-                 {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                     GWP_ProcessIpv4Up();
- #endif
-                 }
-                 else if (strcmp(val, "down")==0)
-                 {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                     GWP_ProcessIpv4Down();
- #endif
-                 }
-@@ -1443,13 +1443,13 @@ static void *GWP_sysevent_threadfunc(void *data)
-             {
-                 if (strcmp(val, "up")==0)
-                 {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                     GWP_ProcessIpv6Up();
- #endif
-                 }
-                 else if (strcmp(val, "down")==0)
-                 {
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                     GWP_ProcessIpv6Down();
- #endif
-                 }
-@@ -1492,7 +1492,7 @@ static void *GWP_sysevent_threadfunc(void *data)
-             {
-                 if (strcmp(val, "started") == 0) {
-                     if (!webui_started) { 
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-                        if(strcmp(name, "bridge-status") == 0) {
-                              GWP_DisableERouter();
-                         }
-@@ -1536,7 +1536,7 @@ static void *GWP_sysevent_threadfunc(void *data)
-                 Uint8 v6addr[ NETUTILS_IPv6_GLOBAL_ADDR_LEN / sizeof(Uint8) ];
-                 Uint8 soladdr[ NETUTILS_IPv6_GLOBAL_ADDR_LEN / sizeof(Uint8) ];
-                 inet_pton(AF_INET6, val, v6addr);
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-                 getMultiCastGroupAddress(v6addr,soladdr);
- #endif
-                 inet_ntop(AF_INET6, soladdr, val, sizeof(val));
-@@ -1621,7 +1621,7 @@ static int GWP_act_DocsisLinkUp_callback()
-     printf("\n**************************\n\n");
- 
-     
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-      char *temp;
-      char command[128];
-      char wanPhyName[20];
-@@ -1678,7 +1678,7 @@ static int GWP_act_DocsisLinkUp_callback()
- }
- 
- 
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
- /**************************************************************************/
- /*! \fn void *GWP_linkstate_threadfunc(void *)
-  **************************************************************************
-@@ -1796,7 +1796,7 @@ void GWP_Util_get_shell_output( char * cmd, char *out, int len )
- }
- 
- /* GWP_UpdateTr069CfgThread() */
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- void GWP_UpdateTr069CfgThread( void *data )
- {
- 	int 	IsNeedtoProceedFurther    = TRUE;
-@@ -1911,7 +1911,7 @@ void GWP_UpdateTr069CfgThread( void *data )
- 	GWPROV_PRINT(" Exit %s \n", __FUNCTION__);
- }
- #endif
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- /**************************************************************************/
- /*! \fn int GWP_act_DocsisCfgfile(SME_APP_T *app, SME_EVENT_T *event);
-  **************************************************************************
-@@ -2144,7 +2144,7 @@ static int GWP_act_DocsisInited_callback()
- {
-     esafeErouterOperModeExtIf_e operMode;
-     //DOCSIS_Esafe_Db_Enable_e eRouterModeTmp; 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     DOCSIS_Esafe_Db_extIf_e eRouterModeTmp;
- #endif
-     char macstr[20];
-@@ -2154,7 +2154,7 @@ static int GWP_act_DocsisInited_callback()
-     char soladdrStr[64];
-     int sysevent_bridge_mode = 0;
- 	GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     /* Docsis initialized */
-     printf("Got DOCSIS Initialized\n");
- 
-@@ -2198,7 +2198,7 @@ static int GWP_act_DocsisInited_callback()
- //     }
- #if !defined(INTEL_PUMA7) && !defined(_COSA_BCM_MIPS_) && !defined(_COSA_BCM_ARM_)
- 	printf("Not Initializing bridge_mode and eRouterMode for XB3\n");
--#elif defined(_PLATFORM_RASPBERRYPI_)
-+#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-     printf("Not Initializing bridge_mode and eRouterMode for Raspberry Pi\n");
- #else
-     bridge_mode = GWP_SysCfgGetInt("bridge_mode");
-@@ -2212,12 +2212,12 @@ static int GWP_act_DocsisInited_callback()
-     system(sysevent_cmd);
- #endif
-   
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     GWP_DocsisInited();
- #endif
-   
-       system("sysevent set docsis-initialized 1");
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- 
-     /* Must set the ESAFE Enable state before replying to the DocsisInit event */
-     eRouterModeTmp = eRouterMode;
-@@ -2279,7 +2279,7 @@ static int GWP_act_DocsisInited_callback()
-     }
- 
-     //calculate cm base solicited node address
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     getInterfaceLinkLocalAddress(IFNAME_WAN_0, lladdr);
-     
-    
-@@ -2482,7 +2482,7 @@ static int GWP_act_DocsisInited_callback()
- **************************************************************************/
- static int GWP_act_ProvEntry_callback()
- {
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-     int uid = 0;
-     uid = getuid();
- #endif
-@@ -2491,7 +2491,7 @@ static int GWP_act_ProvEntry_callback()
- #ifdef MULTILAN_FEATURE
-     macaddr_t macAddr;
- #endif
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
-     //system("sysevent set lan-start");
-    
-@@ -2411,14 +2411,14 @@ static int GWP_act_ProvEntry_callback()
- 
-     /* Now that we have the ICC que (SME) and we are registered on the docsis INIT    */
-     /* event, we can notify PCD to continue                                           */
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
-     sendProcessReadySignal();
- #endif
- 
-     /* Initialize Switch */
-     // VEN_SWT_InitSwitch();
- 
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-     printf("Thread to monitor link status \n");
-     pthread_create(&linkstate_tid, NULL, GWP_linkstate_threadfunc, NULL);
- #endif
-@@ -2426,7 +2426,7 @@ static int GWP_act_ProvEntry_callback()
-     return 0;
- }
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- static int GWP_act_DocsisTftpOk_callback(){
- 	GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
-     gDocTftpOk = 1;
-@@ -2735,13 +2735,13 @@ int main(int argc, char *argv[])
- #ifdef MULTILAN_FEATURE
-     char sysevent_cmd[80];
- #endif
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
-      int uid = 0;
-      uid = getuid();
- #endif
-     printf("Started gw_prov_utopia\n");
- 
--#if !defined(_PLATFORM_RASPBERRYPI_)
-+#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
- 
-     #ifdef FEATURE_SUPPORT_RDKLOG
-        setenv("LOG4C_RCPATH","/rdklogger",1);
-diff --git a/source/include/gw_prov_abstraction.h b/source/include/gw_prov_abstraction.h
-index e5a45e0..536191a 100644
---- a/source/include/gw_prov_abstraction.h
-+++ b/source/include/gw_prov_abstraction.h
-@@ -62,7 +62,7 @@
- #define GW_SUBTLV_TR069_CONNREQ_PASSWORD_EXTIF            6
- #define GW_SUBTLV_TR069_ACS_OVERRIDE_EXTIF                7
- 
--#if defined(_PLATFORM_RASPBERRYPI_)
-+#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
- typedef enum
- {
-     False = 0,
diff --git a/recipes-ccsp/ccsp/parodus2ccsp.bbappend b/recipes-ccsp/ccsp/parodus2ccsp.bbappend
index 5d1ce0a..bd393bc 100644
--- a/recipes-ccsp/ccsp/parodus2ccsp.bbappend
+++ b/recipes-ccsp/ccsp/parodus2ccsp.bbappend
@@ -1,8 +1,8 @@
-SRC_URI += "${CMF_GIT_ROOT}/rdk/devices/raspberrypi/webpa-client;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/devices;name=rdkbturris"
+SRC_URI += "${CMF_GIT_ROOT}/rdk/devices/raspberrypi/webpa-client;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/devices;name=rdkbfilogic"
 
-SRCREV_rdkbturris = "${AUTOREV}"
-do_fetch[vardeps] += "SRCREV_rdkbturris"
-SRCREV_FORMAT .= "_rdkbturris"
+SRCREV_rdkbfilogic = "${AUTOREV}"
+do_fetch[vardeps] += "SRCREV_rdkbfilogic"
+SRCREV_FORMAT .= "_rdkbfilogic"
 
 inherit systemd
 
diff --git a/recipes-ccsp/ccsp/start-parodus.bbappend b/recipes-ccsp/ccsp/start-parodus.bbappend
index 1836ce2..42fae2a 100644
--- a/recipes-ccsp/ccsp/start-parodus.bbappend
+++ b/recipes-ccsp/ccsp/start-parodus.bbappend
@@ -1 +1 @@
-require ccsp_common_turris.inc
+require ccsp_common_filogic.inc
