summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2003-09-09 23:35:48 +0100
committerDave Jones <davej@redhat.com>2003-09-09 23:35:48 +0100
commite7a4d809d218a0cb17846757506bba3c47dc5dc0 (patch)
treeed4371239f946991adcb48568e69cbb9bc05a3c3 /include
parentfa1d243483f93f00710fe61b75fc0b22773bd9a1 (diff)
[CPUFREQ] Merge speedstep-smi driver.
From: Hiroshi Miura <miura@da-cha.org> Intel SpeedStep driver using a BIOS SMI call. Quoting his original announcement: "This driver is based on the information from 1. Microsoft Windows XP Document. we can get the SMI interface values from ax=E980/int15 BIOS call. 2. Intel SpeedStep Applet Document.(from HP.com) http://h18007.www1.hp.com/support/files/evonotebook/us/download/10631.html " Adds code to request transition ownership when processing the system critical resume message. When a critical hibernate occurs, the Applet does not receive any system level notification. The change forces the Applet to re-acquire transition ownership upon resume from a critical hibernate. " This is informative. This saied that something 'ownership' call is needed on SMI interface first. 3. Grover, Andrew's int 15h patch posted to cpufreq ml Message-ID: <F760B14C9561B941B89469F59BA3A847E96E28@orsmsx401.jf.intel.com> code which call BIOS to get SMI values. I included it. 4. Malik Martin's rev engineering results. call is made with BX, CX, EDI register values. and need signature 'ISG' when call. find function values. bx=1(get) and bx=2(set) 5. Marc Lehmann's 'speedstep' utility, sample of assembler code to call SMI. 6. My work. find function to return max/min freq which system supportd. (bx=4) more values are gotten, but I cannot understand... find 'ownership' function value(bx=0, which is other than 1 2 4..). ToDo(in pregress) support governor "auto" and using smi_event call, imprement auto freqchange feature. test on 440BX/ZX platform. Memo module parameters are override result of an int 15h/eax=E890h call. these parameter value are gotten from Windows XP registory." Also includes some bugfixes, updates and workarounds from me. NB: A lot of BIOS out there are buggy. You might want to try this driver also with Intel's default values -- smi_cmd = 0x82 and smi_port = 0xb2
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/ist.h32
-rw-r--r--include/asm-i386/setup.h1
2 files changed, 33 insertions, 0 deletions
diff --git a/include/asm-i386/ist.h b/include/asm-i386/ist.h
new file mode 100644
index 000000000000..d13d1e68afa9
--- /dev/null
+++ b/include/asm-i386/ist.h
@@ -0,0 +1,32 @@
+#ifndef _ASM_IST_H
+#define _ASM_IST_H
+
+/*
+ * Include file for the interface to IST BIOS
+ * Copyright 2002 Andy Grover <andrew.grover@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ */
+
+
+#ifdef __KERNEL__
+
+struct ist_info {
+ unsigned long signature;
+ unsigned long command;
+ unsigned long event;
+ unsigned long perf_level;
+};
+
+extern struct ist_info ist_info;
+
+#endif /* __KERNEL__ */
+#endif /* _ASM_IST_H */
diff --git a/include/asm-i386/setup.h b/include/asm-i386/setup.h
index 3160b947d2bd..9198a377748c 100644
--- a/include/asm-i386/setup.h
+++ b/include/asm-i386/setup.h
@@ -26,6 +26,7 @@
#define E820_MAP_NR (*(char*) (PARAM+E820NR))
#define E820_MAP ((struct e820entry *) (PARAM+E820MAP))
#define APM_BIOS_INFO (*(struct apm_bios_info *) (PARAM+0x40))
+#define IST_INFO (*(struct ist_info *) (PARAM+0x60))
#define DRIVE_INFO (*(struct drive_info_struct *) (PARAM+0x80))
#define SYS_DESC_TABLE (*(struct sys_desc_table_struct*)(PARAM+0xa0))
#define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2))