kolibrios-fun/programs/system/gmon/hwm_it87.inc
Iliya Mihailov (Ghost) 8871a59fcf * GMon now support ABIT uGuru
* kernel.asm free port area 0xe0-0xe4 (special for uGuru)
+ CPUID by Wildwest
* APM GDT limit fix 3

git-svn-id: svn://kolibrios.org@223 a494cfbc-eb01-0410-851d-a64ba20cac60
2006-11-28 15:54:36 +00:00

109 lines
2.1 KiB
PHP

; Integrated Technology Express
; Chip Temp Volt Fan ISA SMBus
; it8705 3 8 3 + +
; it8712 3 8 3 + +
; SiS
; Chip Temp Volt Fan ISA SMBus
; sis950 3 8 3 + +
IT87_REGCHIP equ 0x58
IT87_CHIPID equ 0x90
IT87_FANDIV equ 0x0B
it8705 db 15, 'IT8705F/SiS 950'
it8712 db 7, 'IT8712F'
it8716 db 7, 'IT8716F'
ite_unk db 11, 'Unknown ITE'
ite_coeff: dd 0.016 ; Vcore
dd 0.016 ; Vin0
dd 0.016 ; Vin1 (+3.3V)
dd 0.02688 ; AVcc (+5V)
dd 0.0608 ; Vin2 (+12V)
dd -0.055632 ; -12V
dd -0.02408 ; -5V
;-----------------------------------
it87_init:
; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ
; OUT - CF = 1 - error
cmp byte[acc_type], 2 ; Only ISA and SMBus
jae it87_no
;--- Ïðîâåðÿåì IT87* --------
mov al, IT87_REGCHIP
call [IO_Read]
cmp al, IT87_CHIPID
jne it87_no ; ýòî íå it87 !!!
; -~- not tested ~-~-
mov al, 0x21 ; --- óçíà¸ì èäåíòèôèêàòîð ÷èïà --
call [IO_Read]
mov edx, it8705
cmp al, 0x05
je @f
mov edx, it8712
cmp al, 0x12
je @f
mov edx, it8716
cmp al, 0x16
je @f
mov edx, ite_unk
@@: mov [hwm_chip_name], edx
; -~-~-~-~-~-~-~-~-~-
clc
ret
it87_no:stc
ret
;-----------------------------------
it87_getparam:
call it87_get_temp
call it87_get_fan_speed
mov edi, ite_coeff
call wb_get_volt
ret
;-----------------------------------
it87_get_temp:
xor ecx, ecx
mov esi, hwm_temps
@@: mov eax, ecx
add al, 0x29
call [IO_Read]
mov [esi + ecx * 2], al
inc ecx
cmp ecx, 3
jb @b
ret
;-----------------------------------
it87_fan_div db 1, 1, 1
it87_get_fan_speed:
; ÷èòàåì äåëèòåëè
mov al, IT87_FANDIV
call [IO_Read]
mov ah, al
and al, 0x07
mov [it87_fan_div], al
shr ah, 3
and ah, 0x07
mov [it87_fan_div + 1], ah
xor ecx, ecx
@@: mov al, 0x0D
add al, cl
call [IO_Read]
movzx ebx, al
push ecx
mov cl, [it87_fan_div + ecx]
shl ebx, cl
pop ecx
mov eax, 1350000
xor edx, edx
div ebx
mov [hwm_rpms + 4 * ecx], eax
inc ecx
cmp ecx, 3
jb @b
ret
;--------------------------------------------------------------------------