* Intel NortWood multiplier bugfix
* some a small change

git-svn-id: svn://kolibrios.org@313 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Iliya Mihailov (Ghost) 2007-02-02 10:23:31 +00:00
parent 2c4d922032
commit e7d381a4b4
14 changed files with 237 additions and 173 deletions

View File

@ -1,8 +1,13 @@
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; SMBus interface ; SMBus interface
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;include 'smb_nf2.inc' include 'smb_nf2.inc'
smb_base dd 0 ; IO port base for SMBus acces smb_base dd 0 ; IO port base for SMBus acces
smb_slave dd 0 ; SMBus addres for monitoring chip smb_slave dd 0 ; SMBus addres for monitoring chip

View File

@ -1,7 +1,11 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; 0x00xx - Menuet 0.xx ; 0x00xx - Menuet 0.xx
; 0x0400 - Kolibi 4 (новое завершение процесса) ; 0x0400 - Kolibi 4 (новое завершение процесса)
; 0x0510 - MSR -> множитель ; 0x0510 - MSR -> множитель (Kolibri 0.5.1.0)
; 0x0530 - всего/свободно памяти ; 0x0530 - всего/свободно памяти
; 0x0580 - новое завершение процесса ; 0x0580 - новое завершение процесса
OS_version equ 0x0580 OS_version equ 0x0580

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; struc DiagramData size,color ; struc DiagramData size,color
; { ; {
; .color dd color ; .color dd color

View File

@ -1,5 +1,8 @@
; ;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы ; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
; ВОЗМОЖНА ПОРЧА ОБОРУДОВАНИЯ! ; ВОЗМОЖНА ПОРЧА ОБОРУДОВАНИЯ!
; ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК! ; ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!
; ;
@ -46,7 +49,8 @@
; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M, ; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M,
; Intel Dothan, Yonah, Conroe, Merom ; Intel Dothan, Yonah, Conroe, Merom
; 24/12/2006 - ITE chips model id bugfix by Serge ; 24/12/2006 - ITE chips model id bugfix by Serge
; 26/15/2006 - исправленна глупая ошибка в определении ITE и uGuru ; 26/12/2006 - исправленна глупая ошибка в определении ITE и uGuru
; 31/01/2007 - исправлена ошибка внесённая 17/07/06 в определение множителя для Intel NorthWood
; ;
; Эй! У меня нет много времени. ; Эй! У меня нет много времени.

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; HWM abstract interface, provide: ; HWM abstract interface, provide:
; hwm_init, hwm_get_params, hwm_enable, hwm_temps, hwm_rpms, hwm_voltages, hwm_chip_name ; hwm_init, hwm_get_params, hwm_enable, hwm_temps, hwm_rpms, hwm_voltages, hwm_chip_name

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; Integrated Technology Express ; Integrated Technology Express
; Chip Temp Volt Fan ISA SMBus ; Chip Temp Volt Fan ISA SMBus
; it8705 3 8 3 + + ; it8705 3 8 3 + +

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ABIT uGuru ; ABIT uGuru
; ;
; Chip Temp Volt Fan ISA SMBus LPC ; Chip Temp Volt Fan ISA SMBus LPC

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; Áčáëčîňĺęŕ äë˙ ÷čďîâ WinBond ; Áčáëčîňĺęŕ äë˙ ÷čďîâ WinBond
; ;

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;-------------------------------------------------------------------- ;--------------------------------------------------------------------
; Çàãðóçêà ïðîöåññîðà ; Çàãðóçêà ïðîöåññîðà
; OUT : AL - çàãðóçêà â ïðîöåíòàõ ; OUT : AL - çàãðóçêà â ïðîöåíòàõ
@ -259,7 +264,7 @@ noAMD: cmp dword [Vendor + 8], 'ntel' ; Check for International Electronics CPU
ret ret
@@: cmp byte [CPU_mod], 2 @@: cmp byte [CPU_mod], 2
jae @f jae @f
mov eax, 68 ; Pentium 4 / Xeon (model < 2) mov eax, 68 ; Pentium 4 / Xeon (model < 2) Willamete
mov ebx, 3 mov ebx, 3
mov edx, 0x2A mov edx, 0x2A
int 0x40 int 0x40
@ -267,17 +272,12 @@ noAMD: cmp dword [Vendor + 8], 'ntel' ; Check for International Electronics CPU
and eax, 0x0F and eax, 0x0F
mov cl, [p4coef + eax] mov cl, [p4coef + eax]
ret ret
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) @@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) NorthWood
mov ebx, 3 mov ebx, 3
mov edx, 0x2C mov edx, 0x2C
int 0x40 int 0x40
shr eax, 24
; shr eax, 24 and eax, 0x1F
; and eax, 0x1F
shr eax, 27
and al, 0Fh
add al, 8
mov dl, 10 mov dl, 10
mul dl mul dl
mov cl, al mov cl, al
@ -322,7 +322,7 @@ athloncoef db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 1
athlonmcoef: db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105 athlonmcoef: db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105
db 30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240 db 30, 190, 40, 200, 130, 135, 14, 210, 150, 220, 160, 165, 170, 230, 240
athloncoef3 db 45, 50, 40, 55, 25, 30, 60, 35 athloncoef3 db 45, 50, 40, 55, 25, 30, 60, 35
p4coef db 160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150 ; Pentium 4 p4coef db 160, 170, 180, 190, 200, 210, 220, 230, 80, 90, 100, 110, 120, 130, 140, 150 ; Pentium 4 (Willamete)
coppercoeff db 50, 30, 40, 20, 55, 35, 45, 25, 35, 70, 80, 60, 20, 75, 15, 65, 90, 110, 120, 20, 95, 115, 85, 25, 35, 70, 80, 100, 20, 75, 15, 105 coppercoeff db 50, 30, 40, 20, 55, 35, 45, 25, 35, 70, 80, 60, 20, 75, 15, 65, 90, 110, 120, 20, 95, 115, 85, 25, 35, 70, 80, 100, 20, 75, 15, 105
tualatcoeff db 120, 35, 35, 40, 55, 35, 115, 35, 160, 70, 80, 60, 40, 75, 35, 65, 90, 110, 35, 35, 95, 35, 85, 35, 35, 35, 130, 100, 140, 35, 150, 105 tualatcoeff db 120, 35, 35, 40, 55, 35, 115, 35, 160, 70, 80, 60, 40, 75, 35, 65, 90, 110, 35, 35, 95, 35, 85, 35, 35, 35, 130, 100, 140, 35, 150, 105
else else

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
mov edx, msg_about mov edx, msg_about
mov ebx, 17 * 65536 + 285 mov ebx, 17 * 65536 + 285

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; ;
; <EFBFBD>ךכאהךא םאסענמוך ; <EFBFBD>ךכאהךא םאסענמוך

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; ;
; Âêëàäêà èíôîðìàöèè î ñèñòåìå ; Âêëàäêà èíôîðìàöèè î ñèñòåìå
@ -29,7 +34,7 @@ mmx_en: int 0x40
mov al, byte[edx] mov al, byte[edx]
movzx esi, al movzx esi, al
inc edx inc edx
mov ebx, 160 * 65536 + 315 mov ebx, 160 * 65536 + 325
mov al, 4 mov al, 4
int 0x40 int 0x40
; ×àñòîòà ïðîöåññîðà ; ×àñòîòà ïðîöåññîðà
@ -88,7 +93,7 @@ mmx_en: int 0x40
fstp dword[esp] fstp dword[esp]
mov esi, esp mov esi, esp
call ftoa call ftoa
mov ebx, 160 * 65536 + 325 mov ebx, 160 * 65536 + 315
mov edx, Data_String mov edx, Data_String
mov eax, 4 mov eax, 4
mov esi, eax mov esi, eax
@ -130,6 +135,6 @@ lab_info_tab mls \
'CPU Vendor',\ 'CPU Vendor',\
'CPU frequency (MHz)',\ 'CPU frequency (MHz)',\
'MMX tehnology',\ 'MMX tehnology',\
'Monitoring chip',\
'Multiplier',\ 'Multiplier',\
'Monitoring chip',\
'Free memory (Kb)' 'Free memory (Kb)'

View File

@ -1,3 +1,8 @@
;
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; ;
; ;

View File

@ -1,62 +1,68 @@
; ;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
; ;
; k6, k7, p5 & p6 based on Robert Redelmeier's burnCPU tests ; k6, k7, p5 & p6 tests based on Robert J. Redelmeier cpuburn-1.4
; ported by Ghost ; Copyright 1999, 2000 Robert J. Redelmeier. All Right Reserved
; Licensed under GNU General Public Licence 2.0. No warrantee.
; adapted by Mihailov Ilia
; ;
; Çàìåòêè : ; Çàìåòêè :
; ïåðåïèñòü ðåàêöèþ íà îøèáêè ; ïåðåïèñòü ðåàêöèþ íà îøèáêè
k6: k6:
finit finit
push ebp push ebp
mov ebp, esp mov ebp, esp
and ebp, -32 and ebp, -32
sub esp, 96 sub esp, 96
fldpi fldpi
fld qword [rtt] fld qword [rtt]
fstp qword [ebp - 24] fstp qword [ebp - 24]
fld qword [e] fld qword [e]
fstp qword [ebp - 32] fstp qword [ebp - 32]
mov edx, [half] mov edx, [half]
mov [ebp - 8], edx mov [ebp - 8], edx
k6_after_check: k6_after_check:
xor eax, eax xor eax, eax
mov ebx, eax mov ebx, eax
lea esi, [eax - 1] lea esi, [eax - 1]
mov ecx, 400000000 mov ecx, 400000000
mov [ebp - 4], ecx mov [ebp - 4], ecx
align 32 align 32
;rev. eng. win. ver. (lea esi, [esi]) ; Ghost ;rev. eng. win. ver. (lea esi, [esi]) ; Ghost
k6_crunch: k6_crunch:
fld qword [ebp+esi*8-16] ; CALC BLOCK fld qword [ebp+esi*8-16] ; CALC BLOCK
fmul qword [ebp+esi*8-24] fmul qword [ebp+esi*8-24]
add edx, [half + 9 + esi + esi * 8] ;!!! add edx, [half + 9 + esi + esi * 8] ;!!!
jnz $ + 2 jnz $ + 2
faddp faddp
fld qword [ebp+esi*8-16] fld qword [ebp+esi*8-16]
dec ebx dec ebx
sub edx, [half + 9 + esi + esi * 8] ;!!! sub edx, [half + 9 + esi + esi * 8] ;!!!
jmp $ + 2 jmp $ + 2
fmul qword [ebp+esi*8-24] fmul qword [ebp+esi*8-24]
inc ebx inc ebx
dec dword [ebp+esi*8+4] dec dword [ebp+esi*8+4]
fsubp fsubp
jnz k6_crunch ; time for testing ? jnz k6_crunch ; time for testing ?
test ebx, ebx ; TEST BLOCK test ebx, ebx ; TEST BLOCK
jnz k6_int_exit jnz k6_int_exit
cmp edx, [half] cmp edx, [half]
jnz k6_int_exit jnz k6_int_exit
fldpi fldpi
fcomp st1 fcomp st1
fstsw ax fstsw ax
sahf sahf
jz k6_after_check jz k6_after_check
dec ebx dec ebx
k6_int_exit: k6_int_exit:
dec ebx dec ebx
add esp, 96 add esp, 96
pop ebp pop ebp
mov eax, -1 mov eax, -1
int 0x40 int 0x40
;####################################################################### ;#######################################################################
@ -116,118 +122,118 @@ k7_int_exit:
int 0x40 int 0x40
;####################################################################### ;#######################################################################
;####################################################################### ;#######################################################################
p5: finit p5: finit
push ebp push ebp
mov ebp, esp mov ebp, esp
and ebp, -32 and ebp, -32
sub esp, 96 sub esp, 96
fld qword [half] fld qword [half]
fstp qword [ebp - 24] fstp qword [ebp - 24]
fld qword [rtt] fld qword [rtt]
fst qword [ebp - 16] fst qword [ebp - 16]
fld st fld st
fld st fld st
p5_after_check: p5_after_check:
xor eax, eax xor eax, eax
mov eax, ebx mov eax, ebx
mov ecx, 200000000 mov ecx, 200000000
align 32 align 32
;# MAIN LOOP 16 flops / 18 cycles ;# MAIN LOOP 16 flops / 18 cycles
p5_crunch: p5_crunch:
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
fmul qword [ebp - 24] fmul qword [ebp - 24]
fxch st1 fxch st1
fadd qword [ebp - 16] fadd qword [ebp - 16]
fxch st2 fxch st2
dec ecx dec ecx
jnz p5_crunch jnz p5_crunch
jmp p5_after_check jmp p5_after_check
;####################################################################### ;#######################################################################
;####################################################################### ;#######################################################################
p6: finit p6: finit
push ebp push ebp
mov ebp, esp mov ebp, esp
and ebp, -32 and ebp, -32
sub esp, 96 sub esp, 96
fldpi fldpi
fld qword [rtt] fld qword [rtt]
fstp qword [ebp - 24] fstp qword [ebp - 24]
fld qword [e] fld qword [e]
fstp qword [ebp - 32] fstp qword [ebp - 32]
mov edx, [half] mov edx, [half]
mov [ebp - 8], edx mov [ebp - 8], edx
p6_after_check: p6_after_check:
xor eax, eax xor eax, eax
mov ebx, eax mov ebx, eax
lea esi, [eax - 1] lea esi, [eax - 1]
mov ecx, 539000000 ;# check after this count mov ecx, 539000000 ;# check after this count
mov [ebp - 4], ecx mov [ebp - 4], ecx
align 32 align 32
p6_crunch: ;# MAIN LOOP 21uops / 8.0 clocks p6_crunch: ;# MAIN LOOP 21uops / 8.0 clocks
fld qword [ebp+esi*8-16] fld qword [ebp+esi*8-16]
fmul qword [ebp+esi*8-24] fmul qword [ebp+esi*8-24]
add edx, [half] add edx, [half]
jnz $ + 2 jnz $ + 2
faddp faddp
fld qword [ebp - 24] fld qword [ebp - 24]
dec ebx dec ebx
sub edx, [half + 9 + esi + esi*8] sub edx, [half + 9 + esi + esi*8]
jmp $ + 2 jmp $ + 2
fmul qword [ebp+esi*8-24] fmul qword [ebp+esi*8-24]
inc ebx inc ebx
dec dword [ebp+esi*8+4] dec dword [ebp+esi*8+4]
fsubp fsubp
jnz p6_crunch jnz p6_crunch
test ebx, ebx ;# Testing block test ebx, ebx ;# Testing block
mov ebx, 0 mov ebx, 0
jnz p6_int_exit jnz p6_int_exit
cmp edx, [half] cmp edx, [half]
jnz p6_int_exit jnz p6_int_exit
fldpi fldpi
fcomp st1 fcomp st1
fstsw ax fstsw ax
sahf sahf
jz p6_after_check ;# fp result = pi ? jz p6_after_check ;# fp result = pi ?
dec ebx dec ebx
p6_int_exit: ;# error abort p6_int_exit: ;# error abort
dec ebx dec ebx
add esp, 96 add esp, 96
pop ebp pop ebp
mov eax, -1 mov eax, -1
int 0x40 int 0x40
;--------------------------------------------- ;---------------------------------------------
align 32 align 32
half dd 0x7fffffff, 0 half dd 0x7fffffff, 0