[Add meta-cmf-filogic sdk cmf for rdkb development]

[Description]
Add meta-cmf-filogic sdk cmf for rdkb development
1. rdkb base on dunfell rdkb-next (> 2022q1)
2. cmf is mostly from meta-turris implementation
3. some 64bit support are port from rp4-64 cmf
4. arm64/arm 32bit bsp both can run on rdkb

[Release-log]
N/A

diff --git a/conf/distro/include/rdk-turris.inc b/conf/distro/include/rdk-turris.inc
new file mode 100644
index 0000000..97a3c6b
--- /dev/null
+++ b/conf/distro/include/rdk-turris.inc
@@ -0,0 +1,19 @@
+
+DISTRO_FEATURES_append = " rdk-oss-ssa"
+DISTRO_FEATURES_remove_dunfell = "telemetry2_0"
+
+# RDKBDEV-73 : Dynamic DNS : Standardization based on broadband-forum.
+DISTRO_FEATURES_append = " ddns_broadband"
+
+# RDKBDEV-83 : Device Gateway Association using Managed Device
+DISTRO_FEATURES_append = " device_gateway_association"
+
+# RDKBDEV-50: Adding DSLite Functionality and related TR-181 DataModel Parameters
+DISTRO_FEATURES_append = " dslite"
+
+# REFPLTV-1137: DLNA support for xupnp
+DISTRO_FEATURES_append = " dlna"
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+DISTRO_FEATURES_append = " rdkb_wan_manager"
diff --git a/conf/include/rdk-external-src-platform.inc b/conf/include/rdk-external-src-platform.inc
new file mode 100644
index 0000000..40746fa
--- /dev/null
+++ b/conf/include/rdk-external-src-platform.inc
@@ -0,0 +1,11 @@
+# Note: This feature is for developers ONLY.
+# Please do not forget to set BB_ENV_EXTRAWHITE before
+# launching the yocto build.
+# `export BB_ENV_EXTRAWHITE="${BB_ENV_EXTRAWHITE} RDK_ROOT_PATH"`
+#
+INHERIT += "externalsrc"
+
+EXTERNALSRC_pn-hal-dhcpv4c-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/dhcpv4c' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/dhcpv4c/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-ethsw-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/ethsw' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/ethsw/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-platform-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/platform' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/platform/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-wifi-turris = "${@'${RDK_ROOT_PATH}/rdkb/devices/turris/hal/source/wifi' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/devices/turris/hal')) else ''}"
diff --git a/conf/include/turris-bbmasks.inc b/conf/include/turris-bbmasks.inc
new file mode 100644
index 0000000..943749b
--- /dev/null
+++ b/conf/include/turris-bbmasks.inc
@@ -0,0 +1,18 @@
+BBMASK .= "|meta-rdk/recipes-common/rdkversion/"
+BBMASK .= "|meta-cmf/recipes-common/rdkversion/"
+
+BBMASK .= "|meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bb"
+BBMASK .= "|meta-rdk/recipes-support/base64/base64_git.bb"
+
+BBMASK .= "|meta-rdk-ext/recipes-common/rtmessage"
+BBMASK .= "|meta-rdk-ext/recipes-kernel/linux/linux-libc-headers_%.bbappend"
+
+BBMASK .= "|meta-browser/*"
+BBMASK .= "|openembedded-core/meta/recipes-bsp/u-boot/libubootenv_0.2.bb"
+BBMASK .= "|openembedded-core/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb"
+BBMASK .= "|meta-virtualization/recipes-devtools/protobuf"
+
+BBMASK .= "${@'' if os.path.isdir('|meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb') else '|meta-cmf/recipes-devtools/breakpad/breakpad_git.bb'}"
+
+#To avoid build warning
+BBMASK .= "|meta-rdk-ext/recipes-support/iksemel/iksemel_1.5.bb"
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..15de589
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,15 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+	${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "cmf-filogic"
+BBFILE_PATTERN_cmf-filogic = "^${LAYERDIR}/"
+BBFILE_PRIORITY_cmf-filogic = "24"
+
+LAYERSERIES_COMPAT_cmf-filogic = "dunfell"
+
+require conf/distro/include/rdk-turris.inc
+#require conf/include/rdk-external-src-platform.inc
diff --git a/conf/machine/filogic830-32bit.conf b/conf/machine/filogic830-32bit.conf
new file mode 100644
index 0000000..510c23f
--- /dev/null
+++ b/conf/machine/filogic830-32bit.conf
@@ -0,0 +1,38 @@
+#@TYPE: Machine
+#@NAME: mediatek filogic
+#@NEEDED_BSPLAYERS: meta-filogic
+#@DESCRIPTION: Machine configuration for running a RDK broadband on mediatek filogic
+#@RDK_FLAVOR: rdkb
+
+include conf/machine/filogic-32bit.conf
+
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+MACHINE_IMAGE_NAME = "rdkb-generic-broadband-image"
+
+MACHINEOVERRIDES .= ":broadband:turris:filogic-32bit:mt7986-32bit"
+
+PREFERRED_VERSION_xfsprogs = "4.8.0"
+PREFERRED_VERSION_php_dunfell = "7.1.%"
+PREFERRED_VERSION_php-native_dunfell = "7.1.%"
+
+PREFERRED_PROVIDER_hal-wifi = "hal-wifi-cfg80211"
+
+#masking files for dunfell build
+require conf/include/turris-bbmasks.inc
+#require conf/include/rdk-external-src-platform.inc
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+
+# kernel 5.4 gold linker 'arm-rdk-linux-gnueabi-ld' not supported
+#DISTRO_FEATURES_append = " referencepltfm "
+#DISTRO_FEATURES_remove = " ld-is-gold"
+
+#for sdk support
+INHERIT_append = " uninative"
+BB_SETSCENE_ENFORCE_WHITELIST_append = " %:* *:do_fetch *"
+
+BOOT_SUFFIX = "bin"
+MACHINE_FEATURES = "ext2 ipsec nfs pci smbfs usbgadget usbhost vfat"
+
diff --git a/conf/machine/filogic830.conf b/conf/machine/filogic830.conf
new file mode 100644
index 0000000..28502d2
--- /dev/null
+++ b/conf/machine/filogic830.conf
@@ -0,0 +1,38 @@
+#@TYPE: Machine
+#@NAME: mediatek filogic
+#@NEEDED_BSPLAYERS: meta-filogic
+#@DESCRIPTION: Machine configuration for running a RDK broadband on mediatek filogic
+#@RDK_FLAVOR: rdkb
+
+include conf/machine/filogic.conf
+
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+MACHINE_IMAGE_NAME = "rdkb-generic-broadband-image"
+
+MACHINEOVERRIDES .= ":broadband:turris:filogic:mt7986"
+
+PREFERRED_VERSION_xfsprogs = "4.8.0"
+PREFERRED_VERSION_php_dunfell = "7.1.%"
+PREFERRED_VERSION_php-native_dunfell = "7.1.%"
+
+PREFERRED_PROVIDER_hal-wifi = "hal-wifi-cfg80211"
+
+#masking files for dunfell build
+require conf/include/turris-bbmasks.inc
+#require conf/include/rdk-external-src-platform.inc
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+
+# kernel 5.4 gold linker 'arm-rdk-linux-gnueabi-ld' not supported
+#DISTRO_FEATURES_append = " referencepltfm "
+#DISTRO_FEATURES_remove = " ld-is-gold"
+
+#for sdk support
+INHERIT_append = " uninative"
+BB_SETSCENE_ENFORCE_WHITELIST_append = " %:* *:do_fetch *"
+
+BOOT_SUFFIX = "bin"
+MACHINE_FEATURES = "ext2 ipsec nfs pci smbfs usbgadget usbhost vfat"
+
diff --git a/conf/machine/include/tune-cortexa7-soft.inc b/conf/machine/include/tune-cortexa7-soft.inc
new file mode 100644
index 0000000..5435ab5
--- /dev/null
+++ b/conf/machine/include/tune-cortexa7-soft.inc
@@ -0,0 +1,14 @@
+DEFAULTTUNE = "cortexa7-soft"
+
+AVAILTUNES += "cortexa7-soft"
+
+require conf/machine/include/tune-cortexa7.inc
+
+TUNEVALID[fpu-soft] = "Use software FPU."
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', ' -msoft-float', '', d)}"
+TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', 'soft', '', d)}"
+
+# Basic tune definitions
+ARMPKGARCH_tune-cortexa7-soft = "cortexa7"
+TUNE_FEATURES_tune-cortexa7-soft = "${TUNE_FEATURES_tune-cortexa7} fpu-soft"
+PACKAGE_EXTRA_ARCHS_tune-cortexa7-soft  = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp fpu-soft"