SiS 5571, Daewoo Compaq, speed up AT / PS/2 KBC (does not appear to break anything from months of testing) and fix AT / PS/2 keyboard reset to fix the Samsung SPC7700LP-W soft reset.
This commit is contained in:
@@ -181,6 +181,7 @@ int cpu_multi;
|
||||
int cpu_16bitbus;
|
||||
int cpu_64bitbus;
|
||||
int cpu_cyrix_alignment;
|
||||
int cpu_cpurst_on_sr;
|
||||
int CPUID;
|
||||
|
||||
int is186;
|
||||
@@ -742,6 +743,7 @@ cpu_set(void)
|
||||
|
||||
timing_misaligned = 0;
|
||||
cpu_cyrix_alignment = 0;
|
||||
cpu_cpurst_on_sr = 0;
|
||||
cpu_CR4_mask = 0;
|
||||
|
||||
switch (cpu_s->cpu_type) {
|
||||
@@ -3018,6 +3020,10 @@ amd_k_invalid_rdmsr:
|
||||
EAX = msr.ecx1002ff & 0xffffffff;
|
||||
EDX = msr.ecx1002ff >> 32;
|
||||
break;
|
||||
case 0x40000020:
|
||||
EAX = msr.ecx40000020 & 0xffffffff;
|
||||
EDX = msr.ecx40000020 >> 32;
|
||||
break;
|
||||
case 0xf0f00250:
|
||||
EAX = msr.ecxf0f00250 & 0xffffffff;
|
||||
EDX = msr.ecxf0f00250 >> 32;
|
||||
@@ -3453,6 +3459,9 @@ amd_k_invalid_wrmsr:
|
||||
case 0x1002ff:
|
||||
msr.ecx1002ff = EAX | ((uint64_t) EDX << 32);
|
||||
break;
|
||||
case 0x40000020:
|
||||
msr.ecx40000020 = EAX | ((uint64_t) EDX << 32);
|
||||
break;
|
||||
case 0xf0f00250:
|
||||
msr.ecxf0f00250 = EAX | ((uint64_t) EDX << 32);
|
||||
break;
|
||||
|
||||
@@ -339,6 +339,9 @@ typedef struct {
|
||||
/* K6-3, K6-2P, and K6-3P MSR's */
|
||||
uint64_t amd_l2aar; /* 0xc0000089 */
|
||||
|
||||
/* Weird long MSR's used by the Hyper-V BIOS. */
|
||||
uint64_t ecx40000020; /* 0x40000020 */
|
||||
|
||||
/* Pentium Pro, Pentium II Klamath, and Pentium II Deschutes MSR's */
|
||||
uint64_t ecxf0f00250; /* 0xf0f00250 - Some weird long MSR's used by i686 AMI & some Phoenix BIOSes */
|
||||
uint64_t ecxf0f00258; /* 0xf0f00258 */
|
||||
@@ -544,8 +547,9 @@ extern int cpu_multi;
|
||||
extern double cpu_dmulti;
|
||||
extern double fpu_multi;
|
||||
extern double cpu_busspeed;
|
||||
extern int cpu_cyrix_alignment; /*Cyrix 5x86/6x86 only has data misalignment
|
||||
penalties when crossing 8-byte boundaries*/
|
||||
extern int cpu_cyrix_alignment; /* Cyrix 5x86/6x86 only has data misalignment
|
||||
penalties when crossing 8-byte boundaries. */
|
||||
extern int cpu_cpurst_on_sr; /* SiS 551x and 5571: Issue CPURST on soft reset. */
|
||||
|
||||
extern int is8086;
|
||||
extern int is186;
|
||||
|
||||
@@ -342,6 +342,8 @@ reset_common(int hard)
|
||||
|
||||
if (!is286)
|
||||
reset_808x(hard);
|
||||
|
||||
cpu_cpurst_on_sr = 0;
|
||||
}
|
||||
|
||||
/* Hard reset. */
|
||||
|
||||
Reference in New Issue
Block a user