###
### hardware / software components related properties
###

config FREETZ_TYPE_CABLE
	bool
	default y
	depends on \
		FREETZ_TYPE_6490 || \
		FREETZ_TYPE_6590

config FREETZ_TYPE_FIBER
	bool
	default y
	depends on \
		FREETZ_TYPE_5490 || \
		FREETZ_TYPE_5491

config FREETZ_TYPE_DSL
	bool
	default y
	depends on \
		(!FREETZ_TYPE_CABLE && !FREETZ_TYPE_LTE && !FREETZ_TYPE_FIBER && !FREETZ_TYPE_WLAN_REPEATER) || \
		FREETZ_TYPE_6890

config FREETZ_TYPE_LTE
	bool
	default y
	depends on \
		FREETZ_TYPE_6810 || \
		FREETZ_TYPE_6820 || \
		FREETZ_TYPE_6840 || \
		FREETZ_TYPE_6842 || \
		FREETZ_TYPE_6890

config FREETZ_TYPE_WLAN_REPEATER
	bool
	default y
	depends on \
		FREETZ_TYPE_1750 || \
		FREETZ_TYPE_3000

# CONFIG_HOME_AUTO=y
config FREETZ_AVM_HAS_AHA
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_05_5X_MIN && \
		( \
			!FREETZ_TYPE_1750 && \
			!FREETZ_TYPE_3000 && \
			!FREETZ_TYPE_3270 && \
			!FREETZ_TYPE_3272 && \
			!FREETZ_TYPE_3370 && \
			!FREETZ_TYPE_3390 && \
			!FREETZ_TYPE_3490 && \
			!FREETZ_TYPE_4020 && \
			!FREETZ_TYPE_4040 && \
			!FREETZ_TYPE_7312 && \
			!FREETZ_TYPE_7412    \
		)

config FREETZ_AVM_HAS_DECT
	bool
	default y
	depends on \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7150_7170 || \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570 || \
		FREETZ_TYPE_W900V_7170 || \
		( \
			FREETZ_AVM_VERSION_05_2X_MIN && \
			!FREETZ_TYPE_1750 && \
			!FREETZ_TYPE_3000 && \
			!FREETZ_TYPE_3270 && \
			!FREETZ_TYPE_3272 && \
			!FREETZ_TYPE_3370 && \
			!FREETZ_TYPE_3390 && \
			!FREETZ_TYPE_3490 && \
			!FREETZ_TYPE_4020 && \
			!FREETZ_TYPE_4040 \
		)

config FREETZ_AVM_HAS_FHEM
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN && \
		( \
			FREETZ_TYPE_3270    || \
			FREETZ_TYPE_3370    || \
			FREETZ_TYPE_3390    || \
			FREETZ_TYPE_3490    || \
			FREETZ_TYPE_5490    || \
			FREETZ_TYPE_5491    || \
			FREETZ_TYPE_6840    || \
			FREETZ_TYPE_7240    || \
			FREETZ_TYPE_7270_16 || \
			FREETZ_TYPE_7330_XL || \
			FREETZ_TYPE_7340    || \
			FREETZ_TYPE_7360_V1 || \
			FREETZ_TYPE_7360_V2 || \
			FREETZ_TYPE_7362_SL || \
			FREETZ_TYPE_7369    || \
			FREETZ_TYPE_7390    || \
			FREETZ_TYPE_7430    || \
			FREETZ_TYPE_7490       \
		)

config FREETZ_AVM_HAS_MYFRITZ
	bool
	default y
	depends on !FREETZ_TYPE_WLAN_REPEATER
	depends on FREETZ_AVM_VERSION_05_2X_MIN

# Multi-Annex support, i.e. the same firmware image can be used both for Annex A and B
config FREETZ_AVM_HAS_MULTI_ANNEX
	bool
	default y
	depends on FREETZ_TYPE_DSL
	depends on FREETZ_AVM_VERSION_05_2X_MIN

config FREETZ_AVM_HAS_ANNEX_SELECTION
	bool
	default y
	depends on FREETZ_AVM_HAS_MULTI_ANNEX
	depends on \
		(FREETZ_SYSTEM_TYPE_AR9     && !FREETZ_TYPE_7312 && !FREETZ_TYPE_7320) || \
		(FREETZ_SYSTEM_TYPE_AR10                                             ) || \
		(FREETZ_SYSTEM_TYPE_IKS                                              ) || \
		(FREETZ_SYSTEM_TYPE_IPQ40xx && !FREETZ_TYPE_4040                     ) || \
		(FREETZ_SYSTEM_TYPE_GRX5                                             ) || \
		(FREETZ_SYSTEM_TYPE_UR8     && !FREETZ_TYPE_7240                     ) || \
		(FREETZ_SYSTEM_TYPE_VR9)

# two different firmware images are available, one supporting Annex A and another one supporting Annex B
config FREETZ_AVM_HAS_ANNEX_A_AND_B
	bool
	default y
	depends on FREETZ_TYPE_DSL
	depends on FREETZ_TYPE_LANG_EN && \
		( \
			FREETZ_TYPE_300IP || \
			FREETZ_TYPE_FON || \
			FREETZ_TYPE_5124 || \
			FREETZ_TYPE_WLAN || \
			FREETZ_TYPE_7140 || \
			FREETZ_TYPE_7170 \
		)

config FREETZ_AVM_HAS_NAS
	bool
	select FREETZ_BUSYBOX_FEATURE_TAR_OLDGNU_COMPATIBILITY
	default y
	depends on \
			FREETZ_AVM_VERSION_05_2X_MIN && \
			!FREETZ_TYPE_1750 && \
			!FREETZ_TYPE_3000 && \
			!FREETZ_TYPE_6810 && \
			!FREETZ_TYPE_6820 && \
			!FREETZ_TYPE_7312 && \
			!FREETZ_TYPE_7412

config FREETZ_AVM_HAS_NTFS
	bool
	default y
	depends on \
		(FREETZ_TYPE_7270_V1 && FREETZ_AVMPLUGINS_NTFS) || \
		FREETZ_TYPE_7570 || \
		( \
			FREETZ_AVM_VERSION_05_2X_MIN && \
			!FREETZ_TYPE_1750 && \
			!FREETZ_TYPE_3000 && \
			!FREETZ_TYPE_6810 && \
			!FREETZ_TYPE_6820 && \
			!FREETZ_TYPE_7312 && \
			!FREETZ_TYPE_7412    \
		)

config FREETZ_AVM_HAS_PHONE
	bool
	default y
	depends on \
		!FREETZ_TYPE_1750 && \
		!FREETZ_TYPE_2170 && \
		!FREETZ_TYPE_3000 && \
		!FREETZ_TYPE_3020 && \
		!FREETZ_TYPE_3030 && \
		!FREETZ_TYPE_3130 && \
		!FREETZ_TYPE_3131 && \
		!FREETZ_TYPE_3170 && \
		!FREETZ_TYPE_3270 && \
		!FREETZ_TYPE_4020 && \
		!FREETZ_TYPE_4040

config FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on \
		(FREETZ_TYPE_4020                           && FREETZ_AVM_VERSION_06_8X_MIN) || \
		(FREETZ_TYPE_7270_V1                        && FREETZ_AVM_VERSION_04_XX_MAX) || \
		(FREETZ_TYPE_7360_SL && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_TYPE_7360_V1 && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_DE && FREETZ_AVM_VERSION_06_5X_MIN) || \
		(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN)

config FREETZ_AVM_HAS_PLUGIN_MEDIASRV
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_MINI
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_NTFS
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_ONLINEPB
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_SAMBA
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_TAM
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on \
		(FREETZ_TYPE_7270_V1                        && FREETZ_AVM_VERSION_04_XX_MAX) || \
		(FREETZ_TYPE_7390                           && FREETZ_AVM_VERSION_06_8X_MIN)

config FREETZ_AVM_HAS_PLUGIN_WEBCM_INTERPRETER
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on \
		(FREETZ_TYPE_4020                           && FREETZ_AVM_VERSION_06_8X_MIN) || \
		(FREETZ_TYPE_7360_SL && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_TYPE_7360_V1 && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN) || \
		(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_2X_MIN)
#		(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_DE && FREETZ_AVM_VERSION_06_5X_MIN) # is contained but is empty

config FREETZ_AVM_HAS_PLUGIN_WEBDAV
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on (FREETZ_TYPE_7270_V1 && FREETZ_AVM_VERSION_04_XX_MAX)

config FREETZ_AVM_HAS_PLUGIN_WLAN
	depends on FREETZ_AVM_HAS_PLUGINS_UPDATE
	bool
	default y
	depends on \
			(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_DE && FREETZ_AVM_VERSION_06_5X_MIN) || \
			(FREETZ_TYPE_7390    && FREETZ_TYPE_LANG_EN && FREETZ_AVM_VERSION_06_5X_MIN)

# TAM = Telephone Answering Machine
config FREETZ_AVM_HAS_TAM
	bool
	default y
	depends on !FREETZ_TYPE_WLAN_REPEATER
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7170 || \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570

config FREETZ_AVM_HAS_TEMPERATURE_SENSOR
	bool
	default y
	depends on \
		(FREETZ_AVM_VERSION_05_2X_MIN && FREETZ_AVM_VERSION_05_5X_MAX) || \
		(FREETZ_AVM_VERSION_06_2X_MIN) || \
		FREETZ_SYSTEM_TYPE_UR8

config FREETZ_AVM_HAS_TR069
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_FON     || \
		FREETZ_TYPE_WLAN    || \
		FREETZ_TYPE_300IP   || \
		FREETZ_TYPE_3020    || \
		FREETZ_TYPE_3030    || \
		FREETZ_TYPE_3130    || \
		FREETZ_TYPE_3131    || \
		FREETZ_TYPE_5010    || \
		FREETZ_TYPE_5050    || \
		FREETZ_TYPE_5124    || \
		FREETZ_TYPE_5140    || \
		FREETZ_TYPE_7050    || \
		FREETZ_TYPE_7112    || \
		FREETZ_TYPE_7113    || \
		FREETZ_TYPE_7140    || \
		FREETZ_TYPE_7141    || \
		FREETZ_TYPE_7150    || \
		FREETZ_TYPE_7170    || \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570

# firmware contains tr069fwupdate binary (for MT-D)
config FREETZ_AVM_HAS_TR069_FWUPDATE
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_300IP   || \
		FREETZ_TYPE_3130    || \
		FREETZ_TYPE_3131    || \
		FREETZ_TYPE_5010    || \
		FREETZ_TYPE_5124    || \
		FREETZ_TYPE_5140    || \
		FREETZ_TYPE_7112    || \
		FREETZ_TYPE_7113    || \
		FREETZ_TYPE_7140    || \
		FREETZ_TYPE_7141    || \
		FREETZ_TYPE_7150    || \
		FREETZ_TYPE_7170    || \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570

config FREETZ_AVM_HAS_UDEV
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN

config FREETZ_AVM_HAS_UMTS
	bool
	default y
	depends on !FREETZ_TYPE_WLAN_REPEATER
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_7270_V1

config FREETZ_AVM_HAS_USB_HOST
	bool
	default y
	depends on !FREETZ_TYPE_WLAN_REPEATER
	depends on \
		!FREETZ_TYPE_FON        && \
		!FREETZ_TYPE_WLAN       && \
		!FREETZ_TYPE_W501V      && \
		!FREETZ_TYPE_W701V_7170 && \
		!FREETZ_TYPE_300IP      && \
		!FREETZ_TYPE_3020       && \
		!FREETZ_TYPE_3030       && \
		!FREETZ_TYPE_5010       && \
		!FREETZ_TYPE_5050       && \
		!FREETZ_TYPE_5140       && \
		!FREETZ_TYPE_7050       && \
		!FREETZ_TYPE_7112       && \
		!FREETZ_TYPE_7112_7170  && \
		!FREETZ_TYPE_7113       && \
		!FREETZ_TYPE_7113_7170  && \
		!FREETZ_TYPE_7312       && \
		!FREETZ_TYPE_7412

# box has USB host controller named AHCI (= AVM [USB] Host Controller Interface)
# note: no support for "low speed" devices
config FREETZ_AVM_HAS_USB_HOST_AHCI
	bool
	depends on FREETZ_AVM_HAS_USB_HOST
	default y
	depends on \
		FREETZ_TYPE_2170 || \
		FREETZ_TYPE_3130 || \
		FREETZ_TYPE_3131 || \
		FREETZ_TYPE_3170 || \
		FREETZ_TYPE_5124 || \
		FREETZ_TYPE_7140 || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7170

# firmware contains aura-usb daemon (remote USB connection, USB-Fernanschluss)
config FREETZ_AVM_HAS_AURA_USB
	bool
	select FREETZ_REMOVE_AURA_USB if ! FREETZ_AVM_HAS_USB_HOST
	default y
	depends on \
		FREETZ_AVM_HAS_USB_HOST || \
		FREETZ_TYPE_7112_7170 || \
		FREETZ_TYPE_7113_7170 || \
		FREETZ_TYPE_W701V_7170

config FREETZ_AVM_HAS_ETHERNET_OVER_USB
	bool
	default y
	depends on \
		FREETZ_TYPE_FON   || \
		FREETZ_TYPE_WLAN  || \
		FREETZ_TYPE_2170  || \
		FREETZ_TYPE_300IP || \
		FREETZ_TYPE_3020  || \
		FREETZ_TYPE_3030  || \
		FREETZ_TYPE_3131  || \
		FREETZ_TYPE_3170  || \
		FREETZ_TYPE_5050  || \
		FREETZ_TYPE_7050

config FREETZ_AVM_HAS_WEBDAV
	bool
	default y
	depends on \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570 || \
		( \
			FREETZ_AVM_VERSION_05_2X_MIN && \
			!FREETZ_TYPE_1750 && \
			!FREETZ_TYPE_3000 && \
			!FREETZ_TYPE_6810 && \
			!FREETZ_TYPE_6820 && \
			!FREETZ_TYPE_7312 && \
			!FREETZ_TYPE_7412    \
		)

config FREETZ_AVM_HAS_WLAN
	bool
	default y
	depends on \
		!FREETZ_TYPE_FON   && \
		!FREETZ_TYPE_2170  && \
		!FREETZ_TYPE_300IP && \
		!FREETZ_TYPE_5010  && \
		!FREETZ_TYPE_5050  && \
		!FREETZ_TYPE_5124  && \
		!FREETZ_TYPE_5140

config FREETZ_AVM_SERIAL_CONSOLE_DEVICE
	string
	default "/dev/ttyS1"           if FREETZ_SYSTEM_TYPE_AR9
	default "/dev/ttyLTQ0"         if FREETZ_SYSTEM_TYPE_GRX5
	default "/dev/ttyMSM0"         if FREETZ_SYSTEM_TYPE_IPQ40xx
	default "/dev/ttyS0"



###
### kernel/kernel-modules related properties
###

config FREETZ_AVM_HAS_IPV6
	bool
	select FREETZ_TARGET_IPV6_SUPPORT
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_7570

# original kernel has pty support
config FREETZ_AVM_HAS_PTY_SUPPORT
	bool
	default y
	depends on \
		!FREETZ_TYPE_5140 && \
		!FREETZ_TYPE_W501V

config FREETZ_AVM_HAS_PRINTK
	bool
	default y
	depends on \
		!(FREETZ_TYPE_3170 && !FREETZ_REPLACE_KERNEL)

config FREETZ_AVM_HAS_AUTOFS4_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_06_5X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_GRX5       \
			)

config FREETZ_AVM_HAS_EXT2_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR9     || \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_AR10    || \
			FREETZ_SYSTEM_TYPE_GRX5    || \
			FREETZ_SYSTEM_TYPE_IKS     || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8     || \
			FREETZ_SYSTEM_TYPE_VR9        \
			)

config FREETZ_AVM_HAS_EXT3_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR9     || \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_AR10    || \
			FREETZ_SYSTEM_TYPE_GRX5    || \
			FREETZ_SYSTEM_TYPE_IKS     || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8     || \
			FREETZ_SYSTEM_TYPE_VR9        \
			)

config FREETZ_AVM_HAS_EXT4_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR9     || \
			FREETZ_SYSTEM_TYPE_AR10    || \
			FREETZ_SYSTEM_TYPE_GRX5    || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_VR9        \
			)
	# disabled in AVM's kernel .config's for AR934x, IKS, UR8

config FREETZ_AVM_HAS_NLS_CP437_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8        \
			)

config FREETZ_AVM_HAS_NLS_ISO8859_1_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8        \
			)

config FREETZ_AVM_HAS_NLS_ISO8859_15_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8        \
			)

config FREETZ_AVM_HAS_NLS_UTF8_BUILTIN
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN \
			&& ( \
			FREETZ_SYSTEM_TYPE_AR9     || \
			FREETZ_SYSTEM_TYPE_AR934x  || \
			FREETZ_SYSTEM_TYPE_AR10    || \
			FREETZ_SYSTEM_TYPE_IPQ40xx || \
			FREETZ_SYSTEM_TYPE_PUMA6   || \
			FREETZ_SYSTEM_TYPE_QCA956x || \
			FREETZ_SYSTEM_TYPE_UR8     || \
			FREETZ_SYSTEM_TYPE_VR9        \
			)
	# configured as module in AVM's kernel .config's for IKS, GRX5

config FREETZ_AVM_HAS_ISOFS_MODULE
	bool
	default y
	depends on \
		FREETZ_TYPE_5124 || \
		FREETZ_TYPE_7140 || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7170

config FREETZ_AVM_HAS_JFFS2_MODULE
	bool
	default y
	depends on \
		(FREETZ_TYPE_7140 && !FREETZ_TYPE_LANG_DE) || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7170 || \
		\
		FREETZ_TYPE_3270 || \
		FREETZ_TYPE_7240 || \
		FREETZ_TYPE_7270 || \
		FREETZ_TYPE_7570 || \
		\
		FREETZ_TYPE_7340 || \
		\
		FREETZ_TYPE_4020 || \
		FREETZ_TYPE_6810 || \
		FREETZ_TYPE_7360_V2

config FREETZ_AVM_HAS_JFFS2_BUILTIN
	bool
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR9     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6

config FREETZ_AVM_HAS_RAMZSWAP_MODULE
	bool
	default y
	depends on FREETZ_KERNEL_VERSION_2_6_28_MIN && FREETZ_KERNEL_VERSION_2_6_32_MAX
	depends on FREETZ_AVM_VERSION_05_2X_MIN

config FREETZ_AVM_HAS_TUN_BUILTIN
	bool
	default y
	depends on !FREETZ_SYSTEM_TYPE_GRX5

config FREETZ_AVM_HAS_BUGON_IN_NET_CORE
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_07_0X_MIN && \
		(FREETZ_SYSTEM_TYPE_GRX5 || FREETZ_SYSTEM_TYPE_VR9)

# crypto modules
config FREETZ_AVM_HAS_CRYPTO_ALGAPI_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_19_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x || \
		FREETZ_SYSTEM_TYPE_UR8

config FREETZ_AVM_HAS_CRYPTO_AEAD_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_28_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_AES_BUILTIN
	bool
	# depends on any kernel version
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x || \
		FREETZ_SYSTEM_TYPE_UR8

config FREETZ_AVM_HAS_CRYPTO_ARC4_BUILTIN
	bool
	# depends on any kernel version
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6

config FREETZ_AVM_HAS_CRYPTO_BLKCIPHER_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_19_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_CBC_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_19_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_HASH_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_19_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_MANAGER_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_19_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_PCOMP_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_32_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x || \
		FREETZ_SYSTEM_TYPE_UR8

config FREETZ_AVM_HAS_CRYPTO_RNG_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_28_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_SHA1_BUILTIN
	bool
	# depends on any kernel version
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IKS     || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_SHA256_BUILTIN
	bool
	# depends on any kernel version
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x

config FREETZ_AVM_HAS_CRYPTO_WORKQUEUE_BUILTIN
	bool
	depends on FREETZ_KERNEL_VERSION_2_6_32_MIN
	default y
	depends on \
		FREETZ_SYSTEM_TYPE_AR934x  || \
		FREETZ_SYSTEM_TYPE_GRX5    || \
		FREETZ_SYSTEM_TYPE_IPQ40xx || \
		FREETZ_SYSTEM_TYPE_PUMA6   || \
		FREETZ_SYSTEM_TYPE_QCA955x || \
		FREETZ_SYSTEM_TYPE_QCA956x



###
### binaries/daemons/libraries related properties
###

config FREETZ_AVM_HAS_CDROM_ISO
	bool
	default y
	depends on \
		FREETZ_TYPE_FON   || \
		FREETZ_TYPE_WLAN  || \
		FREETZ_TYPE_300IP || \
		FREETZ_TYPE_3020  || \
		FREETZ_TYPE_3030  || \
		FREETZ_TYPE_5050

config FREETZ_AVM_HAS_CHRONYD
	bool
	select FREETZ_AVMDAEMON_DISABLE_NTP if ! FREETZ_REMOVE_CHRONYD
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_7570

config FREETZ_AVM_HAS_E2FSPROGS
	bool
	default y
	depends on FREETZ_AVM_VERSION_05_2X_MIN

config FREETZ_AVM_HAS_INETD
	bool
	select FREETZ_PACKAGE_INETD
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN || \
		FREETZ_TYPE_7170 || \
		FREETZ_TYPE_7270_V1 || \
		FREETZ_TYPE_7570

config FREETZ_AVM_HAS_LSOF
	bool
	default y
	# TODO: check the condition, most likely it's wrong
	depends on FREETZ_AVM_VERSION_05_2X_MIN

# original firmware contains microvoip-dsl.bin
config FREETZ_AVM_HAS_MICROVOIP_DSL
	bool
	default y
	depends on \
		FREETZ_TYPE_FON  || \
		FREETZ_TYPE_WLAN || \
		FREETZ_TYPE_3131 || \
		FREETZ_TYPE_3170 || \
		FREETZ_TYPE_5010 || \
		FREETZ_TYPE_5124 || \
		FREETZ_TYPE_5140 || \
		FREETZ_TYPE_5140 || \
		FREETZ_TYPE_7112 || \
		FREETZ_TYPE_7113 || \
		FREETZ_TYPE_7140 || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7170

config FREETZ_AVM_HAS_MINID
	bool
	select FREETZ_REMOVE_MINID if \
		FREETZ_TYPE_7113_7170 || \
		FREETZ_TYPE_7112_7170 || \
		FREETZ_TYPE_3170_7170 || \
		FREETZ_TYPE_W701V_7170
	default y
	depends on \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7170 || \
		FREETZ_TYPE_7270_V1

config FREETZ_AVM_HAS_OPENSSL
	bool
	default y
	depends on \
		!FREETZ_TYPE_WLAN  && \
		!FREETZ_TYPE_W501V && \
		!FREETZ_TYPE_300IP && \
		!FREETZ_TYPE_3020  && \
		!FREETZ_TYPE_3030  && \
		!FREETZ_TYPE_5010  && \
		!FREETZ_TYPE_5050  && \
		!FREETZ_TYPE_7050  && \
		!FREETZ_TYPE_7140

config FREETZ_AVM_HAS_OPENSSL_VERSION_0
	bool
	default y
	depends on FREETZ_AVM_HAS_OPENSSL && FREETZ_AVM_VERSION_06_0X_MAX

config FREETZ_AVM_HAS_OPENSSL_VERSION_1
	bool
	default y
	depends on FREETZ_AVM_HAS_OPENSSL && FREETZ_AVM_VERSION_06_2X_MIN

# original firmware contains piglet file for POTS
config FREETZ_AVM_HAS_PIGLET_POTS
	bool
	default y
	depends on \
		FREETZ_TYPE_5010 || \
		FREETZ_TYPE_5113 || \
		FREETZ_TYPE_7113 || \
		FREETZ_TYPE_7113_7170 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7340 || \
		FREETZ_TYPE_7340_7390

# original firmware contains piglet file for ISDN
config FREETZ_AVM_HAS_PIGLET_ISDN
	bool
	default y
	depends on \
		FREETZ_TYPE_2170 || \
		FREETZ_TYPE_3130 || \
		FREETZ_TYPE_3131 || \
		FREETZ_TYPE_3170 || \
		FREETZ_TYPE_5010 || \
		FREETZ_TYPE_5113 || \
		FREETZ_TYPE_5124 || \
		FREETZ_TYPE_5140 || \
		FREETZ_TYPE_7113 || \
		FREETZ_TYPE_7113_7170 || \
		FREETZ_TYPE_7140 || \
		FREETZ_TYPE_7141 || \
		FREETZ_TYPE_7150 || \
		FREETZ_TYPE_7170 || \
		FREETZ_TYPE_7340 || \
		FREETZ_TYPE_7340_7390

config FREETZ_AVM_HAS_SOCAT
	bool
	default y
	depends on (FREETZ_TYPE_7390 && FREETZ_AVM_VERSION_06_0X_MAX)



###
### other properties
###

config FREETZ_AVM_HAS_ALLCFGCONV_WITH_DECRYPTION_SUPPORT
	bool
	default y
	depends on \
		(FREETZ_AVM_VERSION_05_5X_MAX &&  FREETZ_SYSTEM_TYPE_UR8) || \
		(FREETZ_AVM_VERSION_06_0X_MAX && !FREETZ_SYSTEM_TYPE_UR8)

config FREETZ_AVM_HAS_DEBUG_CFG_SUPPORT
	bool
	default y
	depends on \
		(FREETZ_AVM_VERSION_05_5X_MAX &&  FREETZ_SYSTEM_TYPE_UR8) || \
		(FREETZ_AVM_VERSION_06_0X_MAX && !FREETZ_SYSTEM_TYPE_UR8)

# multid.leases file used by AVM uses "8 columns"-format instead of "7 columns"-one
# Note: v2 is a Freetz internal name, it is unknown if and how AVM distinguishes the file format version.
# TODO: check the default values, at the moment pure assumption
config FREETZ_AVM_HAS_MULTID_LEASES_FORMAT_V2
	bool
	default y
	depends on \
		FREETZ_AVM_VERSION_05_2X_MIN
