blob: 2c7e0a9b4420d7548c8687733ff08fff385c2139 [file] [log] [blame]
developere5e687d2023-08-08 16:05:33 +08001# SPDX-License-Identifier: GPL-2.0-or-later
2#
3# Copyright (C) 2023 Mediatek Inc. All Rights Reserved.
4# Author: Ren-Ting Wang <ren-ting.wang@mediatek.com>
5#
6
7include $(TOPDIR)/rules.mk
8include $(INCLUDE_DIR)/kernel.mk
9
10PKG_NAME:=tops
11PKG_RELEASE:=1
12
13include $(INCLUDE_DIR)/package.mk
14include $(INCLUDE_DIR)/package-defaults.mk
15
developere5e687d2023-08-08 16:05:33 +080016define Build/Prepare
17 mkdir -p $(PKG_BUILD_DIR)
18 $(CP) ./firmware $(PKG_BUILD_DIR)/firmware
19 $(CP) ./src/* $(PKG_BUILD_DIR)/
20endef
21
22define Package/tops-rebb-fw-release
developer1b2375f2023-08-31 14:38:35 +080023 TITLE:=Mediatek Tunnel Offload Processor System ReBB Release Firmware
developere5e687d2023-08-08 16:05:33 +080024 SECTION:=firmware
25 CATEGORY:=Firmware
developer1b2375f2023-08-31 14:38:35 +080026 DEPENDS:= \
27 @MTK_TOPS_RELEASE_TARGET \
28 kmod-tops-release
developere5e687d2023-08-08 16:05:33 +080029endef
30
31define Package/tops-rebb-fw-release/description
developer1b2375f2023-08-31 14:38:35 +080032 Support for Mediatek Tunnel Offload Processor System ReBB release firmware.
33 The firmware offload and accerlerate APMCU's tunnel protocols traffic.
34 Available offload tunnel include L2oGRE, L2TP.
developere5e687d2023-08-08 16:05:33 +080035endef
36
37define Package/tops-rebb-fw-release/install
38 $(INSTALL_DIR) $(1)/lib/firmware/mediatek
39 $(CP) \
40 $(PKG_BUILD_DIR)/firmware/rebb/mt7988_mgmt/tops-mgmt.img \
41 $(PKG_BUILD_DIR)/firmware/rebb/mt7988_offload/tops-offload.img \
42 $(1)/lib/firmware/mediatek
43endef
44
developer1b2375f2023-08-31 14:38:35 +080045define KernelPackage/tops-release
developere5e687d2023-08-08 16:05:33 +080046 CATEGORY:=MTK Properties
47 SUBMENU:=Drivers
developer1b2375f2023-08-31 14:38:35 +080048 TITLE:= MTK Tunnel Offload Processor System Kernel Driver
developere5e687d2023-08-08 16:05:33 +080049 FILES+=$(PKG_BUILD_DIR)/tops.ko
50 KCONFIG:=
developere5e687d2023-08-08 16:05:33 +080051 DEPENDS:= \
developer1b2375f2023-08-31 14:38:35 +080052 @MTK_TOPS_RELEASE_TARGET \
developere5e687d2023-08-08 16:05:33 +080053 kmod-mediatek_hnat \
developer1b2375f2023-08-31 14:38:35 +080054 kmod-tops \
developere5e687d2023-08-08 16:05:33 +080055 +kmod-pce \
56 +@KERNEL_RELAY
developer5d86c142023-12-06 14:18:27 +080057ifeq ($(CONFIG_MTK_TOPS_PPTP), y)
58 DEPENDS+= +kmod-pptp
59endif
developere5e687d2023-08-08 16:05:33 +080060endef
61
developer1b2375f2023-08-31 14:38:35 +080062define KernelPackage/tops-release/description
63 Support for MTK Tunnel Offload Processor System Released Driver. The driver
64 controls the TOPS system to reduce the loading of tunnel protocol processing
65 in APMCU.
developere5e687d2023-08-08 16:05:33 +080066endef
67
developer1b2375f2023-08-31 14:38:35 +080068define KernelPackage/tops-release-autoload
developere5e687d2023-08-08 16:05:33 +080069 CATEGORY:=MTK Properties
70 SUBMENU:=Drivers
71 TITLE:= MTK Tunnel Offload Processor System Auto Load
72 AUTOLOAD:=$(call AutoLoad,51,tops)
73 KCONFIG:=
74 DEPENDS:= \
developer1b2375f2023-08-31 14:38:35 +080075 kmod-tops-release \
developere5e687d2023-08-08 16:05:33 +080076 +kmod-pce-autoload
77endef
78
developer1b2375f2023-08-31 14:38:35 +080079define KernelPackage/tops-release-autoload/description
developere5e687d2023-08-08 16:05:33 +080080 Support for MTK Tunnel Offload Processor System auto load on system
81 boot process.
82endef
83
developer1b2375f2023-08-31 14:38:35 +080084define KernelPackage/tops
85 CATEGORY:=MTK Properties
86 TITLE:=Mediatek Tunnel Offload Processor System
87 SUBMENU:=Drivers
88 DEFAULT:=y
89 DEPENDS:= \
90 @TARGET_mediatek_mt7988
91endef
92
93define KernelPackage/tops/config
94 source "$(SOURCE)/Config.in"
95endef
96
97define KernelPackage/tops/description
98 Support for MTK Tunnel Offload Processor System. This system reduces the
99 loading of APMCU's tunnel protocol overhead and improve tunnel protocol's
100 throughput.
101endef
102
developere5e687d2023-08-08 16:05:33 +0800103define Build/Compile
104 $(MAKE) -C "$(LINUX_DIR)" \
105 $(KERNEL_MAKE_FLAGS) \
106 M="$(PKG_BUILD_DIR)" \
107 EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
108 $(EXTRA_KCONFIG) \
109 modules
110endef
111
developer1b2375f2023-08-31 14:38:35 +0800112include tops.mk
113include $(filter-out tops.mk,$(wildcard *.mk))
114
developere5e687d2023-08-08 16:05:33 +0800115$(eval $(call BuildPackage,tops-rebb-fw-release))
116$(eval $(call KernelPackage,tops))
developer1b2375f2023-08-31 14:38:35 +0800117$(eval $(call KernelPackage,tops-release))
118$(eval $(call KernelPackage,tops-release-autoload))