# cortex-strings
 #
 CORTEX-STRINGS_CONF =
-ifneq ($(BOXSERIES), $(filter $(BOXSERIES), hd51 bre2ze4k))
+ifneq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd51 bre2ze4k))
        CORTEX-STRINGS_CONF = --without-neon
 endif
 $(D)/cortex-strings: $(ARCHIVE)/cortex-strings-git-$(CORTEX_STRINGS_VER).tar.gz | $(TARGETPREFIX)
 
 #Makefile to build drivers
 
+ifeq ($(BOXSERIES), h7)
+DRIVER_VER = 4.10.12
+DRIVER_DATE = 20190405
+DRIVER_SRC = $(KERNEL_TYPE)-drivers-$(DRIVER_VER)-$(DRIVER_DATE).zip
+endif
+
 ifeq ($(BOXSERIES), hd51)
 DRIVER_VER = 4.10.12
 DRIVER_DATE = 20180424
 endif
 
 $(ARCHIVE)/$(DRIVER_SRC):
+ifeq ($(BOXSERIES), $(filter $(BOXMODEL), hd51 bre2ze4k))
        $(WGET) http://source.mynonpublic.com/gfutures/$(DRIVER_SRC)
+endif
+ifeq ($(BOXSERIES), h7)
+       $(WGET) http://www.zgemma.org/downloads/$(DRIVER_SRC)
+endif
 
 driver: $(D)/driver
 $(D)/driver: $(ARCHIVE)/$(DRIVER_SRC) $(D)/kernel-armbox | $(TARGETPREFIX)
-ifeq ($(BOXSERIES), hd51)
-       $(START_BUILD)
-       install -d $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/extra
-       unzip -o $(ARCHIVE)/$(DRIVER_SRC) -d $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/extra
-       $(TOUCH)
-endif
-ifeq ($(BOXSERIES), bre2ze4k)
+ifeq ($(BOXSERIES), $(filter $(BOXMODEL), h7 hd51 bre2ze4k))
        $(START_BUILD)
        install -d $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/extra
        unzip -o $(ARCHIVE)/$(DRIVER_SRC) -d $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/extra
 
   CST_KERNEL_VERSION    ?= 2.6.34.13
   KVERSION_FULL          = $(CST_KERNEL_VERSION)-nevis
   KBRANCH               ?= $(CST_KERNEL_VERSION)-cnxt
+else ifeq ($(BOXMODEL), h7)
+  BOXTYPE                = armbox
+  BOXSERIES              = h7
+  CROSSTOOL_NG_VER       = $(CT_NG_VER_ARM)
+  TARGET                ?= arm-cortex-linux-gnueabihf
+  PLATFORM               = bcm7251s
+  DRIVER_DIR            ?= $(PLATFORM)
 else ifeq ($(BOXMODEL), hd51)
   BOXTYPE                = armbox
   BOXSERIES              = hd51
   TARGET_EXTRA_CFLAGS    = -fdata-sections -ffunction-sections
   TARGET_EXTRA_LDFLAGS   = -Wl,--gc-sections
   CXX11_ABI              = -D_GLIBCXX_USE_CXX11_ABI=0
-else ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd51 bre2ze4k))
+else ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd51 bre2ze4k))
   CORTEX-STRINGS         = -lcortex-strings
   TARGET_O_CFLAGS        = -O2
   TARGET_MARCH_CFLAGS    = -march=armv7ve -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard
 
 #
 ifeq ($(BOXTYPE), armbox)
 
+ifeq ($(BOXSERIES), h7)
+KERNEL_VER             = 4.10.12
+KERNEL_VERSION_FULL    = $(KERNEL_VER)
+KVERSION_FULL          = $(KERNEL_VER)
+KERNEL_DATE            = 20180424
+KERNEL_TYPE            = h7
+KERNEL_SRC             = linux-$(KERNEL_VER)-arm.tar.gz
+KERNEL_URL             = http://www.zgemma.org/downloads
+KERNEL_CONFIG          = kernel-4.10-bcm7251s.config
+KERNEL_DIR             = $(BUILD_TMP)/linux-$(KERNEL_VER)
+KERNEL_PATCHES_ARM     = $(BCM7251S_PATCHES)
+KERNEL_DTB_VER         = bcm7445-bcm97445svmb.dtb
+endif
+
 ifeq ($(BOXSERIES), bre2ze4k)
 KERNEL_VER             = 4.10.12
 KERNEL_VERSION_FULL    = $(KERNEL_VER)
 KERNEL_URL             = http://source.mynonpublic.com/gfutures
 KERNEL_CONFIG          = kernel-4.10-bcm7251s.config
 KERNEL_DIR             = $(BUILD_TMP)/linux-$(KERNEL_VER)
-KERNEL_PATCHES_ARM     = $(BRE2ZE4K_PATCHES)
+KERNEL_PATCHES_ARM     = $(BCM7251S_PATCHES)
 KERNEL_DTB_VER         = bcm7445-bcm97445svmb.dtb
 endif
 
 KERNEL_URL             = http://source.mynonpublic.com/gfutures
 KERNEL_CONFIG          = kernel-4.10-bcm7251s.config
 KERNEL_DIR             = $(BUILD_TMP)/linux-$(KERNEL_VER)
-KERNEL_PATCHES_ARM     = $(HD51_PATCHES)
+KERNEL_PATCHES_ARM     = $(BCM7251S_PATCHES)
 KERNEL_DTB_VER         = bcm7445-bcm97445svmb.dtb
 endif
 
 #
 # Patches Kernel
 #
-
-HD51_PATCHES = \
-               armbox/hd51_TBS-fixes-for-4.10-kernel.patch \
-               armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch \
-               armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch \
-               armbox/hd51_0001-STV-Add-PLS-support.patch \
-               armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch \
-               armbox/hd51_blindscan2.patch \
-               armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch \
-               armbox/hd51_reserve_dvb_adapter_0.patch \
-               armbox/hd51_blacklist_mmc0.patch \
-               armbox/hd51_export_pmpoweroffprepare.patch
-
-BRE2ZE4K_PATCHES = \
+BCM7251S_PATCHES = \
                armbox/hd51_TBS-fixes-for-4.10-kernel.patch \
                armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch \
                armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch \
        @touch $@
 
 $(D)/kernel.do_compile: $(D)/kernel.do_prepare
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd51 bre2ze4k))
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd51 bre2ze4k))
        set -e; cd $(KERNEL_DIR); \
                $(MAKE) -C $(KERNEL_DIR) ARCH=arm oldconfig
                $(MAKE) -C $(KERNEL_DIR) ARCH=arm CROSS_COMPILE=$(TARGET)- $(KERNEL_DTB_VER) zImage modules
 
 #KERNEL = $(D)/kernel
 $(D)/kernel-armbox: $(D)/kernel.do_compile
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd51 bre2ze4k))
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd51 bre2ze4k))
 #      install -m 644 $(KERNEL_DIR)/arch/arm/boot/zImage $(BOOT_DIR)/vmlinux.ub
 #      install -m 644 $(KERNEL_DIR)/vmlinux $(TARGETPREFIX)/boot/vmlinux-arm-$(KERNEL_VER)
 #      install -m 644 $(KERNEL_DIR)/System.map $(TARGETPREFIX)/boot/System.map-arm-$(KERNEL_VER)
 
 
 N_CFLAGS  = -Wall -Wextra -Wshadow -Wsign-compare
 
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd2 hd51))
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd2 hd51 bre2ze4k))
 N_CFLAGS += -Wformat-truncation=0 -Wno-ignored-qualifiers
 N_CFLAGS += -Wno-int-in-bool-context -Wno-cast-function-type
 endif
 ifeq ($(BOXTYPE), armbox)
 NEUTRINO_DEPS += $(D)/minidlna
 endif
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd2 hd51 hd60 bre2ze4k))
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd2 hd51 bre2ze4k))
 NEUTRINO_DEPS += $(D)/mc
 NEUTRINO_DEPS += $(D)/rsync
 endif
        $(START_BUILD)
        $(MAKE) $(D)/libsigc $(D)/giflib $(D)/openssl \
                        $(D)/libcurl $(D)/libpng $(D)/libjpeg $(D)/freetype \
-                       $(D)/libdvbsi++ $(D)/pugixml $(D)/ffmpeg \
-                       $(D)/libbluray $(D)/libopenthreads $(D)/libusb $(D)/libfribidi \
+                       $(D)/libdvbsi++ $(D)/pugixml $(D)/libbluray $(D)/libopenthreads \
+                       $(D)/ffmpeg $(D)/libusb $(D)/libfribidi \
                        $(D)/luaposix $(D)/luacurl $(D)/luasocket $(D)/lua-expat $(D)/lua-feedparser
        $(TOUCH)
 
 
 #
 LINKS_PATCH  = links-$(LINKS_VER).patch
 LINKS_PATCH += links-$(LINKS_VER)-ac-prog-cxx.patch
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd51 bre2ze4k))
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), h7 hd51 bre2ze4k))
 LINKS_PATCH += links-$(LINKS_VER)-hd51-input.patch
 endif