openwrt/target/linux/x86/modules.mk
Christian Lamparter 0cd1fc0fe5 x86: detangle meraki-mx100 / nu801 build confusion
Grommish reported the dreaded build error that happend with 5.4
since the kernel didn't have the cgpio v2 interface. His reason
for the removed 5.4 was that the octeon target had a memory leak
issue, so he had to backport the removed 5.4 kernel for his tests.

Chen Minqiang chimed in and noted that no matter what (i.e.
@TARGET_x86 in depends) didn't prevent the package from being build
on other targets.

From what I can tell, the reason for this was that +nu801 meant
that kmod-meraki-mx100 pulled in an unconditional dependency as
part of to the kernel build.

|scripts/package-metadata.pl mk tmp/.packageinfo
|
|$(curdir)/kernel/linux/compile += $(curdir)/firmware/linux-firmware/compile \
|	$(curdir)/firmware/prism54-firmware/compile \
|	$(curdir)/kernel/gpio-button-hotplug/compile \
|	>>> $(curdir)/system/gpio-cdev/nu801/compile <<<

change this by making the dependency conditional on the
meraki-mx100 module itself. Note that the nu801 enables/sets
the  KCONFIG for the cgpio v2 interface itself, since the
userspace program and not the kernel meraki-mx100 relies on it.

Reference: <https://github.com/openwrt/openwrt/commit/eeb8fd4ce7e9>
Reported-by: Grommish <grommish@gmail.com>
Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-07 14:31:22 +02:00

124 lines
3.7 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2017 Cezary Jackiewicz <cezary@eko.one.pll>
define KernelPackage/amazon-ena
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Elastic Network Adapter (for Amazon AWS T3)
DEPENDS:=@TARGET_x86_64
KCONFIG:=CONFIG_ENA_ETHERNET
FILES:=$(LINUX_DIR)/drivers/net/ethernet/amazon/ena/ena.ko
AUTOLOAD:=$(call AutoLoad,12,ena)
endef
define KernelPackage/amazon-ena/description
This driver supports Elastic Network Adapter (ENA)
used by Amazon AWS T3 instances.
endef
$(eval $(call KernelPackage,amazon-ena))
define KernelPackage/amd-xgbe
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=AMD Ethernet on SoC support
DEPENDS:=@PCI_SUPPORT @TARGET_x86_64 +kmod-lib-crc32c +kmod-ptp +kmod-libphy +(LINUX_5_10||LINUX_5_15):kmod-mdio-devres
KCONFIG:=CONFIG_AMD_XGBE
FILES:=$(LINUX_DIR)/drivers/net/ethernet/amd/xgbe/amd-xgbe.ko
AUTOLOAD:=$(call AutoLoad,35,amd-xgbe)
endef
define KernelPackage/amd-xgbe/description
Kernel modules for AMD 10GbE Ethernet device on an AMD SoC.
endef
$(eval $(call KernelPackage,amd-xgbe))
define KernelPackage/sound-cs5535audio
TITLE:=CS5535/CS5536 Audio Controller
DEPENDS:=@TARGET_x86_geode +kmod-ac97
KCONFIG:=CONFIG_SND_CS5535AUDIO
FILES:=$(LINUX_DIR)/sound/pci/cs5535audio/snd-cs5535audio.ko
AUTOLOAD:=$(call AutoLoad,36,snd-cs5535audio)
$(call AddDepends/sound)
endef
define KernelPackage/sound-cs5535audio/description
Support for the integrated AC97 sound device on motherboards
with AMD CS5535/CS5536 chipsets.
endef
$(eval $(call KernelPackage,sound-cs5535audio))
define KernelPackage/sp5100-tco
SUBMENU:=$(OTHER_MENU)
TITLE:=SP5100 Watchdog Support
DEPENDS:=@TARGET_x86
KCONFIG:=CONFIG_SP5100_TCO
FILES:=$(LINUX_DIR)/drivers/watchdog/sp5100_tco.ko
AUTOLOAD:=$(call AutoLoad,50,sp5100_tco,1)
endef
define KernelPackage/sp5100-tco/description
Kernel module for the SP5100_TCO hardware watchdog.
endef
$(eval $(call KernelPackage,sp5100-tco))
define KernelPackage/ib700-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=IB700 SBC Watchdog Timer
DEPENDS:=@TARGET_x86
KCONFIG:=CONFIG_IB700_WDT
FILES:=$(LINUX_DIR)/drivers/watchdog/ib700wdt.ko
AUTOLOAD:=$(call AutoLoad,50,ib700wdt,1)
endef
define KernelPackage/ib700-wdt/description
Kernel module for the hardware watchdog on the IB700 Single
Board Computer produced by TMC Technology (www.tmc-uk.com).
Also used by QEMU/libvirt.
endef
$(eval $(call KernelPackage,ib700-wdt))
define KernelPackage/pcengines-apuv2
SUBMENU:=$(OTHER_MENU)
TITLE:=PC Engines APUv2/3 front button and LEDs driver
DEPENDS:=@TARGET_x86 +kmod-gpio-amd-fch +kmod-leds-gpio
KCONFIG:=CONFIG_PCENGINES_APU2
FILES:=$(LINUX_DIR)/drivers/platform/x86/pcengines-apuv2.ko
AUTOLOAD:=$(call AutoLoad,60,pcengines-apuv2)
endef
define KernelPackage/pcengines-apuv2/description
This driver provides support for the front button and LEDs on
PC Engines APUv2/APUv3 board.
endef
$(eval $(call KernelPackage,pcengines-apuv2))
define KernelPackage/meraki-mx100
SUBMENU:=$(OTHER_MENU)
TITLE:=Cisco Meraki MX100 Platform Driver
DEPENDS:=@TARGET_x86 +kmod-tg3 +kmod-gpio-button-hotplug +kmod-leds-gpio \
+kmod-usb-ledtrig-usbport +PACKAGE_kmod-meraki-mx100:nu801 +kmod-itco-wdt \
+kmod-leds-uleds
KCONFIG:=CONFIG_MERAKI_MX100
FILES:=$(LINUX_DIR)/drivers/platform/x86/meraki-mx100.ko
AUTOLOAD:=$(call AutoLoad,60,meraki-mx100,1)
endef
define KernelPackage/meraki-mx100/description
This driver provides support for the front button and LEDs on
the Cisco Meraki MX100 (Tinkerbell) 1U appliance. Note this also
selects the gpio-cdev nu801 userspace driver to support the Status
LED, as well as other required platform drivers.
endef
$(eval $(call KernelPackage,meraki-mx100))