Useful for x86_64 and ia32 platforms, this utility allows one to read/write the 
MSR (machine state registers) on this processor architecture.

Index: feeds/packages/utils/msr-tools/patches/100-multiprocessor.patch
===================================================================
--- feeds/packages/utils/msr-tools/patches/100-multiprocessor.patch     
(revision 0)
+++ feeds/packages/utils/msr-tools/patches/100-multiprocessor.patch     
(revision 0)
@@ -0,0 +1,28 @@
+--- msr-tools-1.1.2/wrmsr.c.orig       2004-07-20 09:54:59.000000000 -0600
++++ msr-tools-1.1.2/wrmsr.c    2011-12-27 14:07:24.505887313 -0700
+@@ -90,7 +90,11 @@ int main(int argc, char *argv[])
+ 
+   reg = strtoul(argv[optind++], NULL, 0);
+ 
++#ifdef SMP
+   sprintf(msr_file_name, "/dev/cpu/%d/msr", cpu);
++#else
++  sprintf(msr_file_name, "/dev/msr%d", cpu);
++#endif
+   fd = open(msr_file_name, O_WRONLY);
+   if ( fd < 0 ) {
+     if ( errno == ENXIO ) {
+--- msr-tools-1.1.2/rdmsr.c.orig       2004-07-20 09:54:59.000000000 -0600
++++ msr-tools-1.1.2/rdmsr.c    2011-12-27 14:06:37.831584784 -0700
+@@ -167,7 +167,11 @@ int main(int argc, char *argv[])
+ 
+   reg = strtoul(argv[optind], NULL, 0);
+ 
++#ifdef SMP
+   sprintf(msr_file_name, "/dev/cpu/%d/msr", cpu);
++#else
++  sprintf(msr_file_name, "/dev/msr%d", cpu);
++#endif
+   fd = open(msr_file_name, O_RDONLY);
+   if ( fd < 0 ) {
+     if ( errno == ENXIO ) {
Index: feeds/packages/utils/msr-tools/Makefile
===================================================================
--- feeds/packages/utils/msr-tools/Makefile     (revision 0)
+++ feeds/packages/utils/msr-tools/Makefile     (revision 0)
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=msr-tools
+PKG_VERSION:=1.1.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.kernel.org/pub/linux/utils/cpu/msr-tools
+PKG_MD5SUM:=2452d2233556aa0fb8b53208361a2c94
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += -fomit-frame-pointer -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
+
+define Package/msr-tools
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=
+  TITLE:=x86 MSR utilities.
+  URL:=http://www.kernel.org/pub/linux/utils/cpu/msr-tools
+  SUBMENU:=CPU tools
+endef
+
+define Package/msr-tools/description
+       Manipulate the MSR (machine state registers) on i386 and x86_64
+       processors.
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+       $(INSTALL_DIR) "$(PKG_INSTALL_DIR)/usr/sbin"
+       $(MAKE) -C $(PKG_BUILD_DIR) all \
+               $(TARGET_CONFIGURE_OPTS) \
+               sbindir="$(PKG_INSTALL_DIR)/usr/sbin" \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               LDFLAGS="" \
+               install
+endef
+
+define Package/msr-tools/install       
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,msr-tools))
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to