# SPDX-License-Identifier: GPL-2.0-only # # Copyright (C) 2007-2023 OpenWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=ixp4xx-microcode PKG_VERSION:=2.4 PKG_RELEASE:=1 PKG_SOURCE:=IPL_ixp400NpeLibraryWithCrypto-2_4.zip PKG_SOURCE_URL:=http://downloads.openwrt.org/sources PKG_HASH:=1b1170d0657847248589d946048c0aeaa9cd671966fc5bec5933283309485eaa PKG_FLAGS:=nonshared include $(INCLUDE_DIR)/package.mk # Ethernet or WAN support, pick one define Package/ixp4xx-microcode-ethernet SECTION:=firmware CATEGORY:=Firmware TITLE:=IXP4xx ethernet firmware DEPENDS:=@TARGET_ixp4xx endef define Package/ixp4xx-microcode-wan SECTION:=firmware CATEGORY:=Firmware TITLE:=IXP4xx WAN firmware DEPENDS:=@TARGET_ixp4xx endef define Package/ixp4xx-microcode-ethernet/description This package contains the microcode needed to use the network engines in IXP4xx CPUs for ethernet on all three NPEs. endef define Package/ixp4xx-microcode-wan/description This package contains the microcode needed to use the network engines in IXP4xx CPUs for ethernet on NPE-A and NPE-B and WAN (HSS) on NPE-C. endef define Build/Prepare rm -rf $(PKG_BUILD_DIR) mkdir -p $(PKG_BUILD_DIR) unzip -d $(PKG_BUILD_DIR)/ $(DL_DIR)/$(PKG_SOURCE) mv $(PKG_BUILD_DIR)/ixp400_xscale_sw/src/npeDl/IxNpeMicrocode.c $(PKG_BUILD_DIR)/ rm -rf $(PKG_BUILD_DIR)/ixp400_xscale_sw $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Compile (cd $(PKG_BUILD_DIR); \ $(HOSTCC) -Wall -I$(STAGING_DIR_HOST)/include IxNpeMicrocode.c -o IxNpeMicrocode; \ ./IxNpeMicrocode -be \ ) endef define Package/ixp4xx-microcode-ethernet/install $(INSTALL_DIR) $(1)/lib/firmware $(INSTALL_DIR) $(1)/usr/share/doc $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A $(1)/lib/firmware/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-B $(1)/lib/firmware/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-C $(1)/lib/firmware/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE.IPL $(1)/usr/share/doc/ endef define Package/ixp4xx-microcode-wan/install $(INSTALL_DIR) $(1)/lib/firmware $(INSTALL_DIR) $(1)/usr/share/doc $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A-HSS $(1)/lib/firmware/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-B $(1)/lib/firmware/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-C $(1)/lib/firmware/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE.IPL $(1)/usr/share/doc/ endef $(eval $(call BuildPackage,ixp4xx-microcode-ethernet)) $(eval $(call BuildPackage,ixp4xx-microcode-wan))