mirror of
https://github.com/86Box/86Box.git
synced 2025-01-23 01:31:51 -05:00
Pentium II: Change BIOS update signature to non-zero on CPUID with EAX = 1, fixes microcode update error messages on some BIOS'es.
This commit is contained in:
parent
74bda71219
commit
8f25851406
1 changed files with 16 additions and 0 deletions
|
@ -2432,6 +2432,11 @@ cpu_CPUID(void)
|
||||||
EAX = CPUID;
|
EAX = CPUID;
|
||||||
EBX = ECX = 0;
|
EBX = ECX = 0;
|
||||||
EDX = CPUID_FPU | CPUID_DE | CPUID_TSC | CPUID_MSR | CPUID_CMPXCHG8B | CPUID_CMOV | CPUID_MMX;
|
EDX = CPUID_FPU | CPUID_DE | CPUID_TSC | CPUID_MSR | CPUID_CMPXCHG8B | CPUID_CMOV | CPUID_MMX;
|
||||||
|
/*
|
||||||
|
Return anything non-zero in bits 32-63 of the BIOS signature MSR
|
||||||
|
to indicate there has been an update.
|
||||||
|
*/
|
||||||
|
msr.bbl_cr_dx[3] = 0xffffffff00000000ULL;
|
||||||
} else
|
} else
|
||||||
EAX = EBX = ECX = EDX = 0;
|
EAX = EBX = ECX = EDX = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -2470,6 +2475,11 @@ cpu_CPUID(void)
|
||||||
EAX = CPUID;
|
EAX = CPUID;
|
||||||
EBX = ECX = 0;
|
EBX = ECX = 0;
|
||||||
EDX = CPUID_FPU | CPUID_VME | CPUID_DE | CPUID_PSE | CPUID_TSC | CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CMPXCHG8B | CPUID_MMX | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_SEP | CPUID_CMOV;
|
EDX = CPUID_FPU | CPUID_VME | CPUID_DE | CPUID_PSE | CPUID_TSC | CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CMPXCHG8B | CPUID_MMX | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_SEP | CPUID_CMOV;
|
||||||
|
/*
|
||||||
|
Return anything non-zero in bits 32-63 of the BIOS signature MSR
|
||||||
|
to indicate there has been an update.
|
||||||
|
*/
|
||||||
|
msr.bbl_cr_dx[3] = 0xffffffff00000000ULL;
|
||||||
} else if (EAX == 2) {
|
} else if (EAX == 2) {
|
||||||
EAX = 0x03020101; /* Instruction TLB: 4 KB pages, 4-way set associative, 32 entries
|
EAX = 0x03020101; /* Instruction TLB: 4 KB pages, 4-way set associative, 32 entries
|
||||||
Instruction TLB: 4 MB pages, fully associative, 2 entries
|
Instruction TLB: 4 MB pages, fully associative, 2 entries
|
||||||
|
@ -2493,6 +2503,11 @@ cpu_CPUID(void)
|
||||||
EAX = CPUID;
|
EAX = CPUID;
|
||||||
EBX = ECX = 0;
|
EBX = ECX = 0;
|
||||||
EDX = CPUID_FPU | CPUID_VME | CPUID_DE | CPUID_PSE | CPUID_TSC | CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CMPXCHG8B | CPUID_MMX | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_SEP | CPUID_FXSR | CPUID_CMOV | CPUID_PSE36;
|
EDX = CPUID_FPU | CPUID_VME | CPUID_DE | CPUID_PSE | CPUID_TSC | CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CMPXCHG8B | CPUID_MMX | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_SEP | CPUID_FXSR | CPUID_CMOV | CPUID_PSE36;
|
||||||
|
/*
|
||||||
|
Return anything non-zero in bits 32-63 of the BIOS signature MSR
|
||||||
|
to indicate there has been an update.
|
||||||
|
*/
|
||||||
|
msr.bbl_cr_dx[3] = 0xffffffff00000000ULL;
|
||||||
} else if (EAX == 2) {
|
} else if (EAX == 2) {
|
||||||
EAX = 0x03020101; /* Instruction TLB: 4 KB pages, 4-way set associative, 32 entries
|
EAX = 0x03020101; /* Instruction TLB: 4 KB pages, 4-way set associative, 32 entries
|
||||||
Instruction TLB: 4 MB pages, fully associative, 2 entries
|
Instruction TLB: 4 MB pages, fully associative, 2 entries
|
||||||
|
@ -3250,6 +3265,7 @@ pentium_invalid_rdmsr:
|
||||||
case 0x88 ... 0x8b:
|
case 0x88 ... 0x8b:
|
||||||
EAX = msr.bbl_cr_dx[ECX - 0x88] & 0xffffffff;
|
EAX = msr.bbl_cr_dx[ECX - 0x88] & 0xffffffff;
|
||||||
EDX = msr.bbl_cr_dx[ECX - 0x88] >> 32;
|
EDX = msr.bbl_cr_dx[ECX - 0x88] >> 32;
|
||||||
|
// EDX |= 0xffffffff;
|
||||||
break;
|
break;
|
||||||
/* Unknown */
|
/* Unknown */
|
||||||
case 0xae:
|
case 0xae:
|
||||||
|
|
Loading…
Reference in a new issue