Unsolved
This post is more than 5 years old
1 Message
0
79990
February 12th, 2011 07:00
SMM Function for BIOS thermal controls?
Hi,
I have been looking into the SMM functions in the dell BIOS which the i8k driver uses to modify the fan speeds and it seems when I attempt to change them the BIOS sets it right back. To get around this I need to do the Fn+15324, FN+r magic and disable the 'BIOS thermal control' which probably calls an SMM function and I want to incorperate this into the driver, as it needs to be done every reboot. However I don't know how to work out which function is actually being called or how to call it, does anyone have any ideas on how this can be achieved?
So-far I have found this table explaining the current known functions;
cmd | function
0x00a3 get current speed indicator of a fan (args: fan)
0x01a3 set speed of a fan (args: fan & speed)
0x02a3 get RPM of a fan (args: fan)
0x03a3 ??? (1 byte)
0x04a3 get nominal fan speed (2 args)
0x05a3 get fan tolerance speed (2 args)
0x10a3 get sensor temperature (1 arg: sensor#)
0x11a3 ???
0x12a3 arg 0x0003=NBSVC-Query
arg 0x0000=NBSVC-Clear
arg 0x122=NBSVC-Start Trend
arg 0x0100=NBSVC-Stop Trend
arg 0x02??=NBSVC-Read
0x21a3 ??? (2 args: 1 byte (oder 0x16) + 1 byte)
0x22a3 get charger info (1 arg)
0x23a3 ??? (4 args: 2x 1 byte, 1xword, 1xdword)
0x24a3 get adaptor info status (1 arg oder 0x03)
0x30a3 ??? (no args)
0x31a3 ??? (no args)
0x32a3 ??? (no args)
0x33a3 ??? (no args)
0x36a3 get hotkey scancode list (args see diags)
0x37a3 ??? (no args)
0x40a3 get docking state (no args)
0xf0a3 ??? (2 args)
0xfea3 check SMBIOS version (1 arg)
0xffa3 check SMBIOS interface (returns:"DELLDIAG")
0 events found


vitorafsr
15 Posts
0
May 31st, 2013 15:00
Hi,
I think we can work together in this implementation.
vitorafsr
15 Posts
0
July 24th, 2013 17:00
I'm working in the Linux version of the driver.
Let me ask a question: is the table about the code inside BIOS?
vitorafsr
15 Posts
0
August 3rd, 2013 06:00
I think in beginning the implementation of a driver to read the SMM table on Dell laptops, covering as much information as is available.
For now, nothing is done but I just have the intention. As Wipster87 posted some interesting code here, I found that is an opportunity to put plans in action.
So, I ask: do you want to be part of this development? Do you have any information besides the above table, because I don't have any; just the code from the i8k kernel module.
Tino Reichardt
2 Posts
1
August 4th, 2014 13:00
Manual control of the fan on newer laptops like the Latitude e6530 can be done by using this tool: https://github.com/clopez/dellfan
The important defines are these:
#define DISABLE_BIOS_METHOD1 0x30a3
#define ENABLE_BIOS_METHOD1 0x31a3
Have fun ;-)
/milky
Tino Reichardt
2 Posts
0
August 28th, 2014 10:00
Sorry, I am not aware of any version of this new fan control for Windows... Maybe I will programm sometime a version... but this is not a promise ;)