I found several Function register but F3xDC is not found.
Code:
F000:BF5E ; ---------------------------------------------------------------------------
F000:BF5E mov eax, 8000C3E8h
F000:BF64 mov dx, 0CF8h
F000:BF67 out dx, eax
F000:BF69 add dx, 4
F000:BF6C in eax, dx
F000:BF6E shr ax, 0Ch
F000:BF71 and ax, 3
F000:BF74 jz short loc_1FBF85
F000:BF76 mov ecx, 0C001001Fh
F000:BF7C rdmsr
F000:BF7E bts edx, 16h
F000:BF83 wrmsr
F000:BF85
F000:BF85 loc_1FBF85: ; CODE XREF: F000:BF74j
F000:BF85 mov ecx, 1Bh
F000:BF8B rdmsr
F000:BF8D bts eax, 0Bh
F000:BF92 wrmsr
F000:BF94 mov ecx, 1Bh
F000:BF9A rdmsr
F000:BF9C bt ax, 8
F000:BFA0 jb short loc_1FBFAB
F000:BFA2 mov bx, 0D373h
F000:BFA5 sub bx, 8
F000:BFA8 jmp loc_1FC4C4
F000:BFAB ; ---------------------------------------------------------------------------
F000:BFAB
F000:BFAB loc_1FBFAB: ; CODE XREF: F000:BFA0j
F000:BFAB mov bx, 0BFB1h
F000:BFAE jmp loc_1FC03E
F000:BFB1 ; ---------------------------------------------------------------------------
F000:BFB1 mov bx, 0BFB7h
F000:BFB4 jmp loc_1FC9E3
F000:BFB7 ; ---------------------------------------------------------------------------
F000:BFB7 mov bx, 0BFBDh
F000:BFBA jmp loc_1FCB4B
F000:BFBD ; ---------------------------------------------------------------------------
F000:BFBD mov bx, 0BFC3h
F000:BFC0 jmp loc_1FC0AA
F000:BFC3 ; ---------------------------------------------------------------------------
F000:BFC3 mov dx, 0CF8h
F000:BFC6 mov eax, 8000A36Ch
F000:BFCC out dx, eax
F000:BFCE mov dx, 0CFCh
F000:BFD1 mov al, 0E0h ; 'a'
F000:BFD3 out dx, al
F000:BFD4 jmp loc_1FC44C
F000:BFD7 ; ---------------------------------------------------------------------------
F000:BFD7
F000:BFD7 loc_1FBFD7: ; CODE XREF: F000:loc_1FCFE1j
F000:BFD7 mov ecx, 26Ch
F000:BFDD mov eax, 4040404h
F000:BFE3 mov edx, eax
F000:BFE6 wrmsr
F000:BFE8 inc cl
F000:BFEA wrmsr
F000:BFEC inc cl
F000:BFEE wrmsr
F000:BFF0 inc cl
F000:BFF2 wrmsr
F000:BFF4 mov eax, 0C00h
F000:BFFA mov ecx, 2FFh
F000:C000 xor edx, edx
F000:C003 wrmsr
F000:C005 mov ecx, 0C0010010h
F000:C00B rdmsr
F000:C00D bts eax, 12h
F000:C012 wrmsr
F000:C014 wbinvd
F000:C016 mov eax, cr3
F000:C019 mov cr3, eax
F000:C01C mov eax, cr0
F000:C01F and eax, 9FFFFFFFh
F000:C025 mov cr0, eax
F000:C028 wbinvd
F000:C02A jmp loc_1FCFE4
F000:C02D ; ---------------------------------------------------------------------------
F000:C02D mov fs, bx
F000:C02F assume fs:nothing
F000:C02F mov al, 2
F000:C031 out 92h, al
F000:C033 mov bx, 0C039h
F000:C036 jmp loc_1FCF10
F000:C039 ; ---------------------------------------------------------------------------
F000:C039 mov bx, fs
F000:C03B jmp loc_1FC4BF
F000:C03E ; ---------------------------------------------------------------------------
F000:C03E
F000:C03E loc_1FC03E: ; CODE XREF: F000:BFAEj
F000:C03E mov fs, bx
F000:C040 mov dx, 0CF8h
F000:C043 mov eax, 80000060h
F000:C049 out dx, eax
F000:C04B mov dx, 0CFCh
F000:C04E mov al, 0B8h ; '+'
F000:C050 out dx, al
F000:C051 mov dx, 0CF8h
F000:C054 mov eax, 80000064h
F000:C05A out dx, eax
F000:C05C mov dx, 0CFCh
F000:C05F in eax, dx
F000:C061 or eax, 4000000h
F000:C067 out dx, eax
F000:C069 mov dx, 0CF8h
F000:C06C mov eax, 8000A080h
F000:C072 out dx, eax
F000:C074 mov dx, 0CFCh
F000:C077 in eax, dx
F000:C079 and eax, 0FFEEFFFFh
F000:C07F or eax, 10000000h
F000:C085 out dx, eax
F000:C087 mov cx, 3E8h
F000:C08A
F000:C08A loc_1FC08A: ; CODE XREF: F000:C08Cj
F000:C08A out 0EDh, al
F000:C08C loop loc_1FC08A
F000:C08E mov dx, 0CF8h
F000:C091 mov eax, 8000A080h
F000:C097 out dx, eax
F000:C099 mov dx, 0CFCh
F000:C09C in eax, dx
F000:C09E or eax, 10000h
F000:C0A4 out dx, eax
F000:C0A6 mov bx, fs
F000:C0A8 jmp bx
F000:C0AA ; ---------------------------------------------------------------------------
F000:C0AA
F000:C0AA loc_1FC0AA: ; CODE XREF: F000:BFC0j
F000:C0AA mov fs, bx
F000:C0AC mov dx, 0CF8h
F000:C0AF mov eax, 8000C06Ch
F000:C0B5 out dx, eax
F000:C0B7 mov dx, 0CFCh
F000:C0BA in al, dx
F000:C0BB test al, 10h
F000:C0BD jz short loc_1FC111
F000:C0BF mov dx, 70h ; 'p'
F000:C0C2 mov al, 0Eh
F000:C0C4 out dx, al ; CMOS Memory:
F000:C0C4 ; POST diagnostics status byte
F000:C0C5 inc dx
F000:C0C6 in al, dx ; CMOS Memory
F000:C0C7 and al, 40h
F000:C0C9 mov ah, al
F000:C0CB mov dx, 70h ; 'p'
F000:C0CE mov al, 27h ; '''
F000:C0D0 out dx, al ; CMOS Memory:
F000:C0D0 ;
F000:C0D1 inc dx
F000:C0D2 in al, dx ; CMOS Memory
F000:C0D3 shr al, 1
F000:C0D5 and al, 1
F000:C0D7 or al, al
F000:C0D9 jnz short loc_1FC111
F000:C0DB or ah, ah
F000:C0DD jnz short loc_1FC111
F000:C0DF mov ecx, 401h
F000:C0E5 rdmsr
F000:C0E7 wrmsr
F000:C0E9 mov ecx, 405h
F000:C0EF rdmsr
F000:C0F1 wrmsr
F000:C0F3 mov ecx, 409h
F000:C0F9 rdmsr
F000:C0FB wrmsr
F000:C0FD mov ecx, 40Dh
F000:C103 rdmsr
F000:C105 wrmsr
F000:C107 mov ecx, 411h
F000:C10D rdmsr
F000:C10F wrmsr
F000:C111
F000:C111 loc_1FC111: ; CODE XREF: F000:C0BDj
F000:C111 ; F000:C0D9j ...
F000:C111 mov bx, fs
F000:C113 jmp bx
F000:C115 ; ---------------------------------------------------------------------------
F000:C115
F000:C115 loc_1FC115: ; CODE XREF: F000:BF5Bj
F000:C115 mov fs, bx
F000:C117 mov ecx, 0C001001Fh
F000:C11D rdmsr
F000:C11F mov ebx, edx
F000:C122 or edx, 4000h
F000:C129 wrmsr
F000:C12B mov dx, 0CF8h
F000:C12E mov eax, 8100C3E4h
F000:C134 out dx, eax
F000:C136 mov dl, 0FCh ; 'n'
F000:C138 in al, dx
F000:C139 or al, 10h
F000:C13B out dx, al
F000:C13C rdmsr
F000:C13E mov edx, ebx
F000:C141 wrmsr
F000:C143 mov bx, fs
F000:C145 jmp bx
F000:C147 ; ---------------------------------------------------------------------------
F000:C147
F000:C147 loc_1FC147: ; CODE XREF: F000:BF4Fj
F000:C147 ; F000:CC2Fj
F000:C147 mov dx, 0CF8h
F000:C14A mov eax, 8000A348h
F000:C150 out dx, eax
F000:C152 add dl, 6
F000:C155 in al, dx
F000:C156 or al, 20h
F000:C158 out dx, al
F000:C159 jmp bx
F000:C15B
F000:C15B ; =============== S U B R O U T I N E =======================================
F000:C15B
F000:C15B
F000:C15B sub_1FC15B proc near ; CODE XREF: F000:loc_1FE11Bp
F000:C15B mov dword ptr ss:[esi], 0F0000h
F000:C164 mov dword ptr ss:[esi+4], 10000h
F000:C16E mov dword ptr ss:[esi+8], 0FFF40000h
F000:C178 mov dword ptr ss:[esi+0Ch], 10000h
F000:C182 mov dword ptr ss:[esi+10h], 0FFF50000h
F000:C18C mov dword ptr ss:[esi+14h], 10000h
F000:C196 retn
F000:C196 sub_1FC15B endp
F000:C196
It make sense F3xDC register is not found. This is because F3xDC register is for setting maximum P-State & VID which the value are not the same for different processor. P-States & VID package are defined in SSDT table (ACPI) which I believe derived from Microcode.
In IDA, I set to Intel (metapc). Since you mentioned that you use Athlon, I start thinking why I didn't use it. LOL. BTW, regarding disassembled BIOS using IDA, I got help from
. The part we need to disassembled is the last 64kB of the ROM.