wok annotate memtest/stuff/memtest86+-5.01-386.patch @ rev 25002

updated nrg2iso (0.4 -> 0.4.1)
author Hans-G?nter Theisgen
date Mon May 16 14:45:30 2022 +0100 (2022-05-16)
parents
children
rev   line source
pascal@24043 1 --- memtest86+-5.01/cpuid.c
pascal@24043 2 +++ memtest86+-5.01/cpuid.c
pascal@24043 3 @@ -14,6 +14,15 @@
pascal@24043 4 unsigned int *v, dummy[3];
pascal@24043 5 char *p, *q;
pascal@24043 6
pascal@24043 7 + switch (has_cpuid(AC_BIT|CPUID_BIT)) {
pascal@24043 8 + case 0:
pascal@24043 9 + cpu_id.vers.bits.family = 3;
pascal@24043 10 + return;
pascal@24043 11 + case AC_BIT:
pascal@24043 12 + cpu_id.vers.bits.family = 4;
pascal@24043 13 + return;
pascal@24043 14 + }
pascal@24043 15 +
pascal@24043 16 /* Get max std cpuid & vendor ID */
pascal@24043 17 cpuid(0x0, &cpu_id.max_cpuid, &cpu_id.vend_id.uint32_array[0],
pascal@24043 18 &cpu_id.vend_id.uint32_array[2], &cpu_id.vend_id.uint32_array[1]);
pascal@24043 19 --- memtest86+-5.01/cpuid.h
pascal@24043 20 +++ memtest86+-5.01/cpuid.h
pascal@24043 21 @@ -11,6 +11,26 @@
pascal@24043 22
pascal@24043 23 extern struct cpu_ident cpu_id;
pascal@24043 24
pascal@24043 25 +#define AC_BIT (1<<18)
pascal@24043 26 +#define CPUID_BIT (1<<21)
pascal@24043 27 +static inline int has_cpuid(int bits)
pascal@24043 28 +{
pascal@24043 29 + int eax, edx;
pascal@24043 30 + asm __volatile__(
pascal@24043 31 + "pushfl\n\t"
pascal@24043 32 + "popl %0\n\t"
pascal@24043 33 + "movl %0,%1\n\t"
pascal@24043 34 + "xorl %2,%0\n\t"
pascal@24043 35 + "pushl %0\n\t"
pascal@24043 36 + "popfl\n\t"
pascal@24043 37 + "pushfl\n\t"
pascal@24043 38 + "popl %0\n\t"
pascal@24043 39 + "pushl %1\n\t"
pascal@24043 40 + "popfl\n\t"
pascal@24043 41 + "xorl %1,%0":"=a" (eax),"=d" (edx):"c" (bits));
pascal@24043 42 + return eax;
pascal@24043 43 +}
pascal@24043 44 +
pascal@24043 45 static inline void __cpuid(unsigned int *eax, unsigned int *ebx,
pascal@24043 46 unsigned int *ecx, unsigned int *edx)
pascal@24043 47 {
pascal@24043 48 --- memtest86+-5.01/init.c
pascal@24043 49 +++ memtest86+-5.01/init.c
pascal@24043 50 @@ -77,6 +77,7 @@
pascal@24043 51 cprint(19, 15, "==> Press F2 to force Multi-Threading (SMP) <==");
pascal@24043 52 }
pascal@24043 53
pascal@24043 54 + if (cpu_id.fid.bits.rdtsc) {
pascal@24043 55 /* save the starting time */
pascal@24043 56 asm __volatile__(
pascal@24043 57 "rdtsc":"=a" (sl),"=d" (sh));
pascal@24043 58 @@ -122,6 +123,7 @@
pascal@24043 59 }
pascal@24043 60
pascal@24043 61 }
pascal@24043 62 + }
pascal@24043 63
pascal@24043 64 cprint(18, 18, " ");
pascal@24043 65 cprint(19, 15, " ");
pascal@24043 66 @@ -321,7 +323,9 @@
pascal@24043 67 beep(1000);
pascal@24043 68
pascal@24043 69 /* Record the start time */
pascal@24043 70 + if (cpu_id.fid.bits.rdtsc) {
pascal@24043 71 asm __volatile__ ("rdtsc":"=a" (v->startl),"=d" (v->starth));
pascal@24043 72 + }
pascal@24043 73 v->snapl = v->startl;
pascal@24043 74 v->snaph = v->starth;
pascal@24043 75 if (l1_cache == 0) { l1_cache = 64; }
pascal@24043 76 @@ -998,10 +1002,18 @@
pascal@24043 77 default:
pascal@24043 78 /* Make a guess at the family */
pascal@24043 79 switch(cpu_id.vers.bits.family) {
pascal@24043 80 + case 3:
pascal@24043 81 + cprint(0, COL_MID, "386");
pascal@24043 82 + break;
pascal@24043 83 + case 4:
pascal@24043 84 + cprint(0, COL_MID, "486");
pascal@24043 85 + break;
pascal@24043 86 case 5:
pascal@24043 87 cprint(0, COL_MID, "586");
pascal@24043 88 + break;
pascal@24043 89 case 6:
pascal@24043 90 cprint(0, COL_MID, "686");
pascal@24043 91 + break;
pascal@24043 92 default:
pascal@24043 93 cprint(0, COL_MID, "Unidentified Processor");
pascal@24043 94 }
pascal@24043 95 --- memtest86+-5.01/test.c
pascal@24043 96 +++ memtest86+-5.01/test.c
pascal@24043 97 @@ -1501,6 +1501,8 @@
pascal@24043 98 {
pascal@24043 99 ulong sh, sl, l, h, t, ip=0;
pascal@24043 100
pascal@24043 101 + if (cpu_id.fid.bits.rdtsc == 0) return;
pascal@24043 102 +
pascal@24043 103 /* save the starting time */
pascal@24043 104 asm __volatile__(
pascal@24043 105 "rdtsc":"=a" (sl),"=d" (sh));