mutipliers for

AMD : AthonXP-M, Athlon64, Athlon64-M
Intel: Dothan, Yonah, Conroe, Merom

git-svn-id: svn://kolibrios.org@241 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Iliya Mihailov (Ghost) 2006-12-20 15:51:31 +00:00
parent c30932c83e
commit e85c475db0
3 changed files with 66 additions and 10 deletions

View File

@ -43,7 +43,8 @@
; 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 ; 20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M,
; Intel Dothan, Yonah, Conroe, Merom
; ;
; Эй! У меня нет много времени. ; Эй! У меня нет много времени.

View File

@ -48,7 +48,7 @@ msg_uguru: db 10, 'ABIT uGuru'
uGuru_init: uGuru_init:
; Проверка наличия и инициализация ; Проверка наличия и инициализация
; OUT - CF = 1 - error ; OUT - CF = 1 - error
cmp byte[acc_type], 3 ; Special IO interface cmp byte[acc_type], 2 ; Special IO interface
jne .uGuru_no jne .uGuru_no
pusha pusha
mov ecx, UGURU_CMD_PORT mov ecx, UGURU_CMD_PORT

View File

@ -181,7 +181,14 @@ if (OS_version >= 0x0510)
noAMDK6:cmp byte [CPU_fam], 6 noAMDK6:cmp byte [CPU_fam], 6
jne noAMDK7 jne noAMDK7
mov eax, 68 ; Athlon/AthlonXP cmp byte [CPU_mod], 5
jna @f
mov eax, 0x80000007
cpuid
and edx, 6 ; voltage ID control & frequency ID control
cmp edx, 6
je AMDK7M
@@: mov eax, 68 ; Athlon/AthlonXP
mov ebx, 3 mov ebx, 3
mov edx, 0x0C0010015 mov edx, 0x0C0010015
int 0x40 int 0x40
@ -189,10 +196,49 @@ noAMDK6:cmp byte [CPU_fam], 6
shr ebx, 24 shr ebx, 24
and ebx, 0x0F and ebx, 0x0F
shr eax, 20 shr eax, 20
jc @f jnc @f
mov cl, [athloncoef + ebx] add bl, 16
@@: mov cl, [athloncoef + ebx]
ret ret
@@: mov cl, [athloncoef2 + ebx]
AMDK7M: mov eax, 68 ; AthonXP-M
mov ebx, 3
mov edx, 0xC0010042
int 0x40
and eax, 0x1F
mov cl, [athlonmcoef + eax]
ret
noAMDK7:cmp byte [CPU_fam], 0xF
jne noAMDK8
mov eax, 0x80000007
cpuid
and edx, 6 ; voltage ID control & frequency ID control
cmp edx, 6
je AMDK8M
mov eax, 68 ; Athon64
mov ebx, 3
mov edx, 0xC0010015
int 0x40
shr eax, 24
and al, 0x3F
shr al, 1
add al, 4
mov dl, 10
mul dl
mov cl, al
ret
AMDK8M: mov eax, 68 ; Athon64-M
mov ebx, 3
mov edx, 0xC0010042
int 0x40
and al, 0x3F
shr al, 1
add al, 4
mov dl, 10
mul dl
mov cl, al
ret ret
noAMD: cmp dword [Vendor + 8], 'ntel' ; Check for International Electronics CPU noAMD: cmp dword [Vendor + 8], 'ntel' ; Check for International Electronics CPU
@ -257,15 +303,24 @@ noIntelP4:
cmp byte[CPU_mod], 0x0B cmp byte[CPU_mod], 0x0B
jb @f jb @f
mov cl, [tualatcoeff + eax] mov cl, [tualatcoeff + eax]
cmp byte[CPU_mod], 0x0B
je @f
mov dl, 10 ; model 0x0C - 0x0F - Dothan / Yonah / Conroe / Merom
mul dl
mov cl, al
@@: ret @@: ret
noIntel: noIntel:
noIntelP6: noIntelP6:
noAMDK7: noAMDK8:
ret ret
athloncoef db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105 athloncoef db 110, 115, 120, 125, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 120
athloncoef2 db 120, 190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240 db 190, 120, 200, 130, 135, 140, 210, 150, 220, 160, 165, 170, 180, 230, 240
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
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
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