Rev 205 | Rev 313 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 205 | Rev 223 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ; |
|
- | 2 | ; HWM abstract interface, provide: |
|
- | 3 | ; hwm_init, hwm_get_params, hwm_enable, hwm_temps, hwm_rpms, hwm_voltages, hwm_chip_name |
|
- | 4 | ; |
|
- | 5 | ||
- | 6 | ||
- | 7 | if SMBus eq yes |
|
- | 8 | include 'SMBus.inc' |
|
- | 9 | end if |
|
Line 1... | Line 10... | ||
1 | include 'hwm_wb.inc' |
10 | |
2 | include 'hwm_it87.inc' |
11 | include 'hwm_wb.inc' |
- | 12 | include 'hwm_it87.inc' |
|
- | 13 | include 'hwm_uguru.inc' |
|
Line 3... | Line 14... | ||
3 | 14 | ;include 'hwm_via686.inc' |
|
- | 15 | ||
4 | uglobal |
16 | uglobal |
- | 17 | hwm_enable: |
|
5 | hwm_enable:db 0 ; 0 - no, 1 - Winbond, 2 - ITE |
18 | dd 0 ; 0 - no, 1 - Winbond, 2 - ITE, ... see HWMProbe list |
- | 19 | hwm_temps: |
|
6 | temps db 0,0, 0,0, 0,0 ; ãðàäóñ, äåñÿòûå, ãðàäóñ, ... |
20 | db 0,0, 0,0, 0,0 ; ãðàäóñ, äåñÿòûå, ãðàäóñ, ... |
- | 21 | hwm_rpms: |
|
7 | rpms dd 0, 0, 0 ; fan1, fan2, fan3 |
22 | dd 0, 0, 0, 0, 0 ; fan1, fan2, fan3, ... |
8 | Vcore dd 0.0 |
23 | hwm_voltages: |
9 | Vin0 dd 0.0 |
24 | Vcore dd 0.0 |
10 | Vin1 dd 0.0 |
25 | Vin0 dd 0.0 |
11 | AVcc dd 0.0 |
26 | Vin1 dd 0.0 |
12 | Vin2 dd 0.0 |
27 | AVcc dd 0.0 |
13 | V12 dd 0.0 |
28 | Vin2 dd 0.0 |
- | 29 | V12 dd 0.0 |
|
- | 30 | V5 dd 0.0 |
|
- | 31 | vol8 dd 0.0 |
|
- | 32 | vol9 dd 0.0 |
|
- | 33 | vol10 dd 0.0 |
|
14 | V5 dd 0.0 |
34 | vol11 dd 0.0 |
Line -... | Line 35... | ||
- | 35 | acc_type db 0 ; 0 - ISA Bus, 1 - SMBus, 2 - other |
|
- | 36 | endg |
|
- | 37 | ||
15 | endg |
38 | IO_Read dd isaRead ; In : al - addr, out : al - value |
16 | 39 | IO_Write dd isaWrite ; In : al - addr, bl - value |
|
Line -... | Line 40... | ||
- | 40 | ||
- | 41 | hwm_unk db 9, 'Not found' |
|
- | 42 | hwm_chip_name dd hwm_unk |
|
- | 43 | ||
- | 44 | ; NOTE !!! |
|
- | 45 | ; HWMProbe - ñïèñîê, ïðîöåäóð ïðîâåðêè ÷èïîâ, çàêàí÷èâàåòñÿ |
|
- | 46 | ; íóëåâûì äâîéíûì ñëîâîì |
|
- | 47 | ; HWMGetParam - ñïèñîê, ïðîöåäóð ïîëó÷åíèÿ ïàðàìåòðîâ |
|
- | 48 | ; îáà ýòè ñïèñêà äîëæíû ñîîòâåòñòâîâàòü äðóã äðóãó ïî |
|
- | 49 | ; ïî ïîðÿäêó ïðîöåäóð |
|
- | 50 | HWMProbe: dd wb_init |
|
- | 51 | dd it87_init |
|
- | 52 | dd uGuru_init |
|
- | 53 | dd 0 ; <- êîíåö ñïèñêà |
|
- | 54 | ||
- | 55 | HWMGetParam: dd wb_getparam |
|
17 | hwm_unk db 9, 'Not found' |
56 | dd it87_getparam |
18 | hwm_chip_name dd hwm_unk |
57 | dd uGuru_getparam |
19 | 58 | ||
- | 59 | ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
|
- | 60 | hwm_init: |
|
- | 61 | ; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ |
|
- | 62 | pusha |
|
- | 63 | ; Èùåì äàò÷èêè íà øèíå ISA |
|
- | 64 | call isaInit |
|
- | 65 | jc @f |
|
- | 66 | call chips_probe |
|
- | 67 | cmp byte[hwm_enable], 0 |
|
- | 68 | jne .exit |
|
- | 69 | @@: call isaClose |
|
- | 70 | ||
- | 71 | ; Èùåì äàò÷èêè íà øèíå SMBus |
|
- | 72 | inc byte [acc_type] |
|
- | 73 | if SMBus eq yes |
|
- | 74 | call smbInit |
|
- | 75 | jc @f |
|
- | 76 | call chips_probe |
|
- | 77 | cmp byte[hwm_enable], 0 |
|
- | 78 | jne .exit |
|
- | 79 | @@: call smbClose |
|
Line -... | Line 80... | ||
- | 80 | end if |
|
- | 81 | ; Èùåì äàò÷èêè íà ñîáñòâåííîé øèíå (LPC etc) |
|
20 | hwm_init: |
82 | inc byte [acc_type] |
21 | ; Ïðîâåðêà íàëè÷èÿ è èíèöèàëèçàöèÿ |
83 | call chips_probe |
- | 84 | ||
- | 85 | .exit: popa |
|
22 | pusha |
86 | ret |
23 | 87 | ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
|
24 | mov eax, 46 ; ðåçåðâèðóåì 0x295 è 0x296 ïîðòû |
88 | chips_probe: |
25 | xor ebx, ebx |
89 | ; Íàõîäèì íóæíûé ÷èï |
- | 90 | ; Out : hwm_enable = !0 if found, else hwm_enable not changed |
|
- | 91 | cld ; Paranoia |
|
- | 92 | mov esi, HWMProbe |
|
26 | mov ecx, 0x295 |
93 | @@: lodsd |
- | 94 | test eax, eax |
|
- | 95 | jz @f ; Êîíåö ñïèñêà |
|
27 | mov edx, 0x296 |
96 | call eax |
28 | int 0x40 |
97 | jc @b |
29 | test eax, eax |
98 | sub esi, HWMProbe |
30 | jz hwm_ports_ok |
99 | shr esi, 2 |
31 | hwm_no: |
100 | mov dword[hwm_enable], esi |
32 | mov eax, 46 ; îñâîáîæäàåì 0x295 è 0x296 ïîðòû |
101 | @@: ret |
- | 102 | ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
|
- | 103 | hwm_get_params: |
|
33 | xor ebx, ebx |
104 | pusha |
- | 105 | mov eax, [hwm_enable] |
|
34 | inc ebx |
106 | test eax, eax |
35 | mov ecx, 0x295 |
107 | jz @f |
36 | mov edx, 0x296 |
- | |
Line -... | Line 108... | ||
- | 108 | dec eax |
|
37 | int 0x40 |
109 | sal eax, 2 |
- | 110 | call dword[eax + HWMGetParam] |
|
38 | popa |
111 | @@: popa |
39 | ret |
112 | ret |
40 | hwm_ports_ok: |
113 | |
41 | 114 | ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
|
42 | call wb_init |
- | |
43 | jc not_wb |
115 | ; ISA interface |
44 | mov byte [hwm_enable], 1 |
116 | ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
45 | call wb_get_name |
117 | isaRead: |
46 | jmp hwm_ok |
118 | push edx |
Line -... | Line 119... | ||
- | 119 | mov dx, 0x295 |
|
- | 120 | out dx, al |
|
- | 121 | inc edx |
|
- | 122 | in al, dx |
|
- | 123 | pop edx |
|
47 | 124 | ret |
|
- | 125 | ||
48 | not_wb: call it87_init |
126 | isaWrite: |
49 | jc hwm_no |
127 | push edx |
50 | mov byte [hwm_enable], 2 |
- | |
- | 128 | mov dx, 0x295 |
|
51 | call it87_get_name |
129 | out dx, al |
- | 130 | inc edx |
|
52 | 131 | mov al, bl |
|
53 | hwm_ok: mov [hwm_chip_name], edx |
- | |
54 | popa |
132 | out dx, al |
55 | ret |
- | |
56 | ;---------------------------------------------------- |
- | |
57 | hwm_get_params: |
- | |
58 | ; Âûçûâàòü òîëüêî åñëè íàéäåí |
- | |
59 | pusha |
133 | pop edx |
60 | mov al, [hwm_enable] |
134 | ret |
61 | dec al |
135 | |
62 | jnz @f |
136 | isaInit: |
63 | call wb_get_temp |
137 | ; Out : CF = 0 if Ok |
64 | call wb_get_fan_speed |
- | |
65 | mov edi, wb_coeff |
138 | ; ðåçåðâèðóåì 0x295 è 0x296 ïîðòû |
66 | call wb_get_volt |
139 | mov ecx, 0x295 |
- | 140 | mov edx, 0x296 |
|
67 | fld dword[V12] |
141 | call ReservePorts |
- | 142 | ; jc @f |
|
68 | fld dword[wb_n12v_const] |
143 | ; mov [IO_Read], isaRead |
69 | faddp st1, st0 |
144 | ; mov [IO_Write], isaWrite |
70 | fstp dword[V12] |
145 | ; @@: |
71 | popa |
- | |
72 | ret |
146 | ret |
73 | @@: call it87_get_temp |
- |