blob: b8486466f3bf4ec05cd89bbbd5c354feb5b3abd6 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (C) 2023 Mediatek Inc. All Rights Reserved.
# Author: Ren-Ting Wang <ren-ting.wang@mediatek.com>
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=tops
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/package-defaults.mk
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./firmware $(PKG_BUILD_DIR)/firmware
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Package/tops-rebb-fw-release
TITLE:=Mediatek Tunnel Offload Processor System ReBB Release Firmware
SECTION:=firmware
CATEGORY:=Firmware
DEPENDS:= \
@MTK_TOPS_RELEASE_TARGET \
kmod-tops-release
endef
define Package/tops-rebb-fw-release/description
Support for Mediatek Tunnel Offload Processor System ReBB release firmware.
The firmware offload and accerlerate APMCU's tunnel protocols traffic.
Available offload tunnel include L2oGRE, L2TP.
endef
define Package/tops-rebb-fw-release/install
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
$(CP) \
$(PKG_BUILD_DIR)/firmware/rebb/mt7988_mgmt/tops-mgmt.img \
$(PKG_BUILD_DIR)/firmware/rebb/mt7988_offload/tops-offload.img \
$(1)/lib/firmware/mediatek
endef
define KernelPackage/tops-release
CATEGORY:=MTK Properties
SUBMENU:=Drivers
TITLE:= MTK Tunnel Offload Processor System Kernel Driver
FILES+=$(PKG_BUILD_DIR)/tops.ko
KCONFIG:=
DEPENDS:= \
@MTK_TOPS_RELEASE_TARGET \
kmod-mediatek_hnat \
kmod-tops \
+kmod-pce \
+@KERNEL_RELAY
endef
define KernelPackage/tops-release/description
Support for MTK Tunnel Offload Processor System Released Driver. The driver
controls the TOPS system to reduce the loading of tunnel protocol processing
in APMCU.
endef
define KernelPackage/tops-release-autoload
CATEGORY:=MTK Properties
SUBMENU:=Drivers
TITLE:= MTK Tunnel Offload Processor System Auto Load
AUTOLOAD:=$(call AutoLoad,51,tops)
KCONFIG:=
DEPENDS:= \
kmod-tops-release \
+kmod-pce-autoload
endef
define KernelPackage/tops-release-autoload/description
Support for MTK Tunnel Offload Processor System auto load on system
boot process.
endef
define KernelPackage/tops
CATEGORY:=MTK Properties
TITLE:=Mediatek Tunnel Offload Processor System
SUBMENU:=Drivers
DEFAULT:=y
DEPENDS:= \
@TARGET_mediatek_mt7988
endef
define KernelPackage/tops/config
source "$(SOURCE)/Config.in"
endef
define KernelPackage/tops/description
Support for MTK Tunnel Offload Processor System. This system reduces the
loading of APMCU's tunnel protocol overhead and improve tunnel protocol's
throughput.
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG) \
modules
endef
include tops.mk
include $(filter-out tops.mk,$(wildcard *.mk))
$(eval $(call BuildPackage,tops-rebb-fw-release))
$(eval $(call KernelPackage,tops))
$(eval $(call KernelPackage,tops-release))
$(eval $(call KernelPackage,tops-release-autoload))