From b22c241723eab86f9907a76fae27e9e291b4e4dd Mon Sep 17 00:00:00 2001 From: "Iliya Mihailov (Ghost)" Date: Sat, 23 Dec 2006 19:01:56 +0000 Subject: [PATCH] ITE chips model identify bug fix by Serge git-svn-id: svn://kolibrios.org@243 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/kernel.asm | 16 ++- programs/system/gmon/gmon.asm | 3 +- programs/system/gmon/hwm_it87.inc | 219 ++++++++++++++++++++++++++++-- programs/system/gmon/readme.txt | 2 +- 4 files changed, 225 insertions(+), 15 deletions(-) diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index f11cef3ddc..b098d7d266 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -901,11 +901,25 @@ reserve_irqs_ports: ; RESERVE PORTS - mov edi,1 ; 0x00-0xdf + mov edi,1 ; 0x00-0x2d mov [0x2d0000],edi shl edi,4 mov [0x2d0000+edi+0],dword 1 mov [0x2d0000+edi+4],dword 0x0 + mov [0x2d0000+edi+8],dword 0x2d + + inc dword [0x2d0000] ; 0x30-0x4d + mov edi,[0x2d0000] + shl edi,4 + mov [0x2d0000+edi+0],dword 1 + mov [0x2d0000+edi+4],dword 0x30 + mov [0x2d0000+edi+8],dword 0x4d + + inc dword [0x2d0000] ; 0x50-0xdf + mov edi,[0x2d0000] + shl edi,4 + mov [0x2d0000+edi+0],dword 1 + mov [0x2d0000+edi+4],dword 0x50 mov [0x2d0000+edi+8],dword 0xdf inc dword [0x2d0000] ; 0xe5-0xff diff --git a/programs/system/gmon/gmon.asm b/programs/system/gmon/gmon.asm index c121492393..103ecfe9ba 100644 --- a/programs/system/gmon/gmon.asm +++ b/programs/system/gmon/gmon.asm @@ -45,6 +45,7 @@ ; 25/11/2006 - добавлен ABIT uGuru ; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M, ; Intel Dothan, Yonah, Conroe, Merom +; 24/12/2006 - ITE chips model id bugfix by Serge ; ; Эй! У меня нет много времени. @@ -509,7 +510,7 @@ about_tab: DATA act_tab db 2 ; Номер активной вкладки tab_lab db 'Info Tests Configs About' -title db 'Ghost Monitor v0.4 [20/12/06]' +title db 'Ghost Monitor v0.4 [24/12/06]' msgs_mon mls \ 'CPU Load (%)',\ diff --git a/programs/system/gmon/hwm_it87.inc b/programs/system/gmon/hwm_it87.inc index 6968bcba11..53a98081b8 100644 --- a/programs/system/gmon/hwm_it87.inc +++ b/programs/system/gmon/hwm_it87.inc @@ -27,15 +27,46 @@ 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] + jae .no_io + + mov ecx, 0x2e + mov edx, 0x2f + call ReservePorts + test eax, eax + jnz .no_io + + mov eax, 0x55550187 ; переход в MB PnP Mode + out 0x2e, al + shr eax, 8 + out 0x2e, al + shr eax, 8 + out 0x2e, al + shr eax, 8 + out 0x2e, al + + mov al, 0x20 + out 0x2e, al + in al, 0x2f ; al = 0x87 + push eax + + mov al, 0x21 + out 0x2e, al + in al, 0x2f ; al = model + push eax + + mov al, 0x02 ; выход из режима + out 0x2E, al + out 0x2F, al + + mov ecx, 0x2e + mov edx, 0x2f + call FreePorts + + pop eax + pop ebx + cmp bl, 0x87 + jne .no_io + mov edx, it8705 cmp al, 0x05 je @f @@ -47,11 +78,38 @@ it87_init: je @f mov edx, ite_unk @@: mov [hwm_chip_name], edx - ; -~-~-~-~-~-~-~-~-~- clc + ret + +.no_io: stc ret -it87_no:stc - ret + + ; 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: @@ -106,3 +164,140 @@ it87_get_fan_speed: ret ;-------------------------------------------------------------------------- +; +; Presets for IT8712 +; +; Volt = A * read_val + B +; +; A, B +; --- 0 --- +; dd 0.01565, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.0, 0.0 +; dd 0.0608, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.08224, -22.104 +; dd 0.016, 0.0 + +; --- 1 --- +; dd 0.01614, 0.0 +; dd 0.01614, 0.0 +; dd 0.01614, 0.0 +; dd 0.01614, 0.0 +; dd 0.062946, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 2 --- +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.062946, 0.0 +; dd 0.016, 0.0 +; dd 0.01614, 0.0 +; dd 0.0, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 3 --- +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.027, 0.0 +; dd 0.06564, 0.0 +; dd 0.084, -17.408 +; dd 0.0512, -9.0112 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 4 --- +; dd 0.01653, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.02684, 0.0 +; dd 0.06398, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 5 --- +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.027, 0.0 +; dd 0.06369, 0.0 +; dd 0.082285714288, -16.9691428598999 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 6 --- +; dd 0.01565, 0.0 +; dd 0.06564, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.02688, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 7 --- +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.027, 0.0 +; dd 0.06369, 0.0 +; dd 0.082285714288, -16.9691428598999 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 8 --- +; dd 0.01653, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.0265, 0.0 +; dd 0.06398, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 9 --- +; dd 0.016, 0.0 +; dd 0.01565, 0.0 +; dd 0.016, 0.0 +; dd 0.0265, 0.0 +; dd 0.06398, 0.0 +; dd 0.09152, -20.592 +; dd 0.03728, -8.388 +; dd 0.016, 0.0 +; dd 0.016, 0.0 + +; --- 10 --- +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.0265, 0.0 +; dd 0.06398, 0.0 +; dd 0.016, 0.0 +; dd 0.0512, -9.0112 +; dd 0.0, 0.0 +; dd 0.0, 0.0 + +; --- 11 --- +; dd 0.016, 0.0 +; dd 0.0, 0.0 +; dd 0.016, 0.0 +; dd 0.016, 0.0 +; dd 0.06564, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 +; dd 0.0, 0.0 diff --git a/programs/system/gmon/readme.txt b/programs/system/gmon/readme.txt index c740dea58b..8dd07082eb 100644 --- a/programs/system/gmon/readme.txt +++ b/programs/system/gmon/readme.txt @@ -25,7 +25,7 @@ ABIT : uGuru Функции мониторинга можно проверить в Windows на эмуляторе KlbrInWin, для этого необходимо в файле настроек написать (пользуйтесь последней версией): -EnablePorts=e0-e8 295 296 +EnablePorts=2e 2f 4e 4f e0-e8 295 296 AllowReadMSR=true Тесты :