Support for Winbond W83627DHG, W83627EHF, W83627EHG

git-svn-id: svn://kolibrios.org@239 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Iliya Mihailov (Ghost) 2006-12-19 21:45:25 +00:00
parent a337842d61
commit 0575dbf098
3 changed files with 100 additions and 7 deletions

View File

@ -43,6 +43,7 @@
; 24/08/2006 - добавленна частота процессора ; 24/08/2006 - добавленна частота процессора
; 10/09/2006 - bugfix ; 10/09/2006 - bugfix
; 25/11/2006 - добавлен ABIT uGuru ; 25/11/2006 - добавлен ABIT uGuru
; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG
; ;
; Эй! У меня нет много времени. ; Эй! У меня нет много времени.
@ -507,7 +508,7 @@ about_tab:
DATA DATA
act_tab db 2 ; Номер активной вкладки act_tab db 2 ; Номер активной вкладки
tab_lab db 'Info Tests Configs About' tab_lab db 'Info Tests Configs About'
title db 'Ghost Monitor v0.4 [25/11/06]' title db 'Ghost Monitor v0.4 [20/12/06]'
msgs_mon mls \ msgs_mon mls \
'CPU Load (%)',\ 'CPU Load (%)',\

View File

@ -3,16 +3,25 @@
; ;
; ;
; Äîïèñàòü ïîëó÷åíèå èíôû ñ äðóãèõ äàò÷èêîâ ; Äîïèñàòü ïîëó÷åíèå èíôû ñ äðóãèõ äàò÷èêîâ
; W83627DHG ìîíèòîðèíã àíàëîãè÷åí W83627EHF, äîïèñàòü ó÷¸ò DIV_B2
; + 16.03.06 Èñïðàâëåíà îøèáêà â wb_get_cpu_temper ñ äåñÿòûõ ãðàäóñà (áûëî 30.5 30.0 31.5 ...) ; + 16.03.06 Èñïðàâëåíà îøèáêà â wb_get_cpu_temper ñ äåñÿòûõ ãðàäóñà (áûëî 30.5 30.0 31.5 ...)
; ;
; ;
; Î ìàðêèðîâêå (?) : H - H/W Monitor, G - Pb-free package, T - ACPI, S - Smart Card Reader Interface
; D - SuperIO supporting Intel* PECI* & SST* interfaces, U - UART
;
; | Chip name | ID Vin Fanin PWM Temp ISA SMBus ; | Chip name | ID Vin Fanin PWM Temp ISA SMBus
msg_wb27HF: db 8, 'W83627HF' ; 0x20|0x21 9 3 2 3 + + msg_wb27HF: db 8, 'W83627HF' ; 0x20|0x21 9 3 2 3 + +
msg_wb27THF: db 9, 'W83627THF' ; 0x90|0x91 7 3 3 3 + + msg_wb27THF: db 9, 'W83627THF' ; 0x90|0x91 7 3 3 3 + +
msg_wb37THF: db 9, 'W83637THF' ; 0x80 7 3 3 3 + + msg_wb37THF: db 9, 'W83637THF' ; 0x80 7 3 3 3 + +
msg_wb97HF: db 8, 'W83697HF' ; 0x60|0x61 8 2 2 2 + - msg_wb97HF: db 8, 'W83697HF' ; 0x60|0x61 8 2 2 2 + -
msg_wb27EHF: db 11,'W83627EHF-A' ; 0x88
msg_wb27THFA: db 11,'W83627THF-A' ; 0x1A msg_wb27THFA: db 11,'W83627THF-A' ; 0x1A
msg_w83627DHG: db 9, 'W83627DHG' ; 0xC1 ? 5 ? 3 + +
msg_w83627EHF: db 9, 'W83627EHF' ; 0x88 10 5 3 3 + +
msg_w83627EHG: db 9, 'W83627EHG' ; 0xA1 10 5 3 3 + +
; db 7, 'W83781D' ; 0x10|0x11 7 3 3 + + ; db 7, 'W83781D' ; 0x10|0x11 7 3 3 + +
; db 7, 'W83782D' ; 0x30 9 3 3 + + ; db 7, 'W83782D' ; 0x30 9 3 3 + +
; db 8, 'AS99127F' ; 0x31 7 3 3 - + ; db 8, 'AS99127F' ; 0x31 7 3 3 - +
@ -20,6 +29,10 @@ msg_wb27THFA: db 11,'W83627THF-A' ; 0x1A
; db 7, 'W83791D' ; 0x70|0x71 10 5 3 - + ; db 7, 'W83791D' ; 0x70|0x71 10 5 3 - +
msg_wbunk: db 15,'Unknown Winbond' ; other, non zero ;-) msg_wbunk: db 15,'Unknown Winbond' ; other, non zero ;-)
uglobal
wb_fans_num db 0
endg
;----------------------------------- ;-----------------------------------
wb_init: wb_init:
; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ ; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ
@ -45,6 +58,7 @@ wb_init:
mov al, 0x58 mov al, 0x58
call [IO_Read] call [IO_Read]
and al, 0xFE ; 0x20 = 0x21, 0x60 = 0x61, etc and al, 0xFE ; 0x20 = 0x21, 0x60 = 0x61, etc
mov byte[wb_fans_num], 3
mov edx, msg_wb27HF mov edx, msg_wb27HF
cmp al, 0x20 cmp al, 0x20
je @f je @f
@ -57,12 +71,20 @@ wb_init:
mov edx, msg_wb97HF mov edx, msg_wb97HF
cmp al, 0x60 cmp al, 0x60
je @f je @f
mov edx, msg_wb27EHF
cmp al, 0x88
je @f
mov edx, msg_wb27THFA mov edx, msg_wb27THFA
cmp al, 0x1A cmp al, 0x1A
je @f je @f
mov byte[wb_fans_num], 5
mov edx, msg_w83627EHF
cmp al, 0x88
je @f
mov edx, msg_w83627EHG
cmp al, 0xA0
je @f
mov edx, msg_w83627DHG
cmp al, 0xC0
je @f
mov byte[wb_fans_num], 3
mov edx, msg_wbunk mov edx, msg_wbunk
@@: mov [hwm_chip_name], edx @@: mov [hwm_chip_name], edx
clc clc
@ -153,6 +175,7 @@ wb_get_fan_speed:
xor edx, edx xor edx, edx
div ebx div ebx
mov [hwm_rpms], eax mov [hwm_rpms], eax
mov al, 0x47 mov al, 0x47
call [IO_Read] call [IO_Read]
shr al, 6 shr al, 6
@ -172,6 +195,75 @@ wb_get_fan_speed:
xor edx, edx xor edx, edx
div ebx div ebx
mov [hwm_rpms + 4], eax mov [hwm_rpms + 4], eax
mov al, 0x4B
call [IO_Read]
shr al, 6
mov ebx, 1
mov cl, al
shl ebx, cl ; <- div3
xor eax, eax
mov al, 0x2A
call [IO_Read]
cmp al, 255
jne @f
xor eax, eax
ret
@@: mul ebx
mov ebx, eax
mov eax, 1350000
xor edx, edx
div ebx
mov [hwm_rpms + 8], eax
cmp byte[wb_fans_num], 3
jna .wb_f_e
mov al, 0x59
call [IO_Read]
and al, 3
mov ebx, 1
mov cl, al
shl ebx, cl ; <- div4, äîïèñàòü ó÷¸ò DIV_B2
xor eax, eax
mov al, 0x3F
call [IO_Read]
cmp al, 255
jne @f
xor eax, eax
ret
@@: mul ebx
mov ebx, eax
mov eax, 1350000
xor edx, edx
div ebx
mov [hwm_rpms + 12], eax
mov al, 0x59
call [IO_Read]
shr al, 2
and al, 3
mov ebx, 1
mov cl, al
shl ebx, cl ; <- div5, äîïèñàòü ó÷¸ò DIV_B2
xor eax, eax
mov al, 0x4e ; Âûáèðàåì bank 5
mov bl, 5
call [IO_Write]
mov al, 0x53
call [IO_Read]
cmp al, 255
jne @f
xor eax, eax
ret
@@: mul ebx
mov ebx, eax
mov eax, 1350000
xor edx, edx
div ebx
mov [hwm_rpms + 16], eax
.wb_f_e:
ret ret
;----------------------------------- ;-----------------------------------
wb_get_volt: wb_get_volt:

View File

@ -1,7 +1,7 @@
Ghost Monitor Ghost Monitor
Автор : Михайлов Илья Андреевич aka Ghost Автор : Михайлов Илья Андреевич aka Ghost
Версия : 0.4 от 25/11/06 Версия : 0.4
ОС : для полного функционирования скачайте последнне ядро, или последний дистрибутив. ОС : для полного функционирования скачайте последнне ядро, или последний дистрибутив.
files : svn://kolibrios.org/programs/system/gmon/ files : svn://kolibrios.org/programs/system/gmon/
http://iam.gorodok.net/Gmon.zip http://iam.gorodok.net/Gmon.zip