|
ひよひよさん関東進出記念っ(笑)
と言う訳ではないですが、CPUMSR使って見ました。
▼ひよひよさん:
>AMD 760 系や KT133 系のサポートに関してはこちらの方が進んでいると思われる
>のでこちらを試してみてはいただけないでしょうか?その上で、CrystalCPUID が
>どのように動作するかをレポートしていただけるとうれしいです。
CPUMSRでは、倍率変更ができないマザーで使用した場合でも、
ハングアップすることなく、動作しつづけます。
(エセKT133Aで実行して確認。後日もう少しデータを増やして見ます)
#命令だけ発行して、結果を待たないという感じです。
思うに、501〜503行目のFidVidPentingのチェックに相当するコードが存在していないような雰囲気です。
--- CpuInfo.cpp ---
493 case 7:
494 ReadMSR(0xC0010041,&EAX,&EDX);
495 EDX = 0x7D0; // Allow minimum 10 us setting time
496 EAX &= 0xFFFFFFC0;
497 EAX |= (1<<16); // Set bit 16
498 EAX |= data;
499 WriteMSR(0xC0010041,&EAX,&EDX);
500
501 do{
502 ReadMSR(0xC0010042,&EAX,&EDX);
503 }while( (EAX >> 31) & 0x1 );
504 break;
ですので、こちらでも同様のバイナリ作って試して見ます。
(バイナリエディタで、ハンドアセンブルするんですが、きっと、このへんですよね(笑))
C1000180e: 1000180e 8d45f8 lea eax,[ebp-008h]
10001811 50 push eax
10001812 8d45fc lea eax,[ebp-004h]
10001815 50 push eax
10001816 bf410001c0 mov edi,dword 0c0010041h
1000181b 57 push edi
1000181c e8c5fcffff call near F100014e6
10001821 8b45fc mov eax,dword [ebp-004h]
10001824 24c0 and al,byte 0c0h
10001826 c745f8d0070000 mov dword [ebp-008h],dword 0000007d0h
1000182d 0b450c or eax,dword [ebp+00ch]
10001830 0d00000100 or eax,dword 000010000h
10001835 8945fc mov dword [ebp-004h],eax
10001838 8d45f8 lea eax,[ebp-008h]
1000183b 50 push eax
1000183c 8d45fc lea eax,[ebp-004h]
1000183f 50 push eax
10001840 57 push edi
10001841 e8d4fcffff call near F1000151a
10001846 83c418 add esp,byte +018h
; do {
C10001849: 10001849 8d45f8 lea eax,[ebp-008h]
1000184c 50 push eax
1000184d 8d45fc lea eax,[ebp-004h]
10001850 50 push eax
10001851 68420001c0 push dword 0c0010042h
10001856 e88bfcffff call near F100014e6
1000185b 83c40c add esp,byte +00ch
1000185e f645ff80 test byte [ebp-001h],byte 080h
; }
10001862 75e5 jnz C10001849
10001864 e97b010000 jmp near C100019e4 ;; goto
|
|