# # Copyright (C) 2024 Til Kaiser # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=mstflint PKG_VERSION:=4.29.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-1.tar.gz PKG_SOURCE_URL:=https://github.com/Mellanox/$(PKG_NAME)/releases/download/v$(PKG_VERSION)-1 PKG_SOURCE_DATE:=2024-08-13 PKG_HASH:=1bd048146f1fe0493d4770b244b02e32981b49caed068fd96a22700103220654 PKG_MAINTAINER:=Til Kaiser PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=COPYING PKG_FIXUP:=autoreconf PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk define Package/mstflint SECTION:=Utilities CATEGORY:=Utilities TITLE:=Mellanox Firmware Burning and Diagnostics Tools URL:=https://github.com/Mellanox/mstflint DEPENDS:=@!(mips||mips64||mipsel) \ +libcurl +libexpat +liblzma +libopenssl \ +libsqlite3 +libstdcpp +libxml2 +zlib endef define Package/mstflint/description This package contains a burning tool and diagnostic tools for Mellanox manufactured HCA/NIC cards. Package Contents: mflash lib This lib provides low level Flash access through Mellanox HCAs. mtcr lib (implemented in mtcr.h file) This lib enables access to HCA hardware registers. mstregdump This utility dumps hardware registers from Mellanox hardware for later analysis by Mellanox. mstvpd This utility dumps the on-card VPD. mstmcra This debug utility reads/writes a to/from the device configuration register space. mstconfig This tool sets or queries non-volatile configurable options for Mellanox HCAs. mstfwmanager Mellanox firmware update and query utility which scans the system for available Mellanox devices (only mst PCI devices) and performs the necessary firmware updates. mstreg The mlxreg utility allows users to obtain information regarding supported access registers, such as their fields and attributes. mstfwtrace The mstfwtrace utility extracts and prints trace messages generated by the firmware running on 5th generation devices iRISCs. This tool supports secure FW flow only. mstlink The mstlink tool is used to check and debug link status and issues related to them. endef define Package/mstflint/config config PACKAGE_MSTFLINT_INCLUDE_PYTHON bool "Include Python-dependent tools" default y depends on PACKAGE_mstflint select PACKAGE_python3-ctypes select PACKAGE_python3-logging select PACKAGE_python3-xml help All mstflint tools including the following Python-dependent: msftwreset, mstfwtrace, mstprivhost, mstresourcedump, mstresourceparse endef CONFIGURE_ARGS += \ --enable-fw-mgr \ --disable-inband \ --enable-adb-generic-tools TARGET_CFLAGS += \ -D_GNU_SOURCE \ -I$(STAGING_DIR)/usr/include/libxml2 define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/mstflint $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/mstflint $(1)/usr/lib/ endef define Package/mstflint/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstarchive $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstconfig $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstcongestion $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstflint $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstfwctrl $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstfwmanager $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstlink $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstmcra $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstmread $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstmtserver $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstmwrite $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstreg $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstregdump $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstvpd $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/share/mstflint $(CP) $(PKG_INSTALL_DIR)/usr/share/mstflint $(1)/usr/share/ ifeq ($(CONFIG_PACKAGE_MSTFLINT_INCLUDE_PYTHON),y) $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstfwreset $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstfwtrace $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstprivhost $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstresourcedump $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mstresourceparse $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/mstflint $(CP) $(PKG_INSTALL_DIR)/usr/lib/mstflint/python_tools $(1)/usr/lib/mstflint/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/mstflint/sdk $(1)/usr/lib/mstflint/ endif endef $(eval $(call BuildPackage,mstflint))