| pre-B0 step pentiums supply "weird" results when calling standard level 0. | how do i get the maximum supported standard level? is it the value | in register al?The pre-B0 step Pentium does not support multiple CPUID levels: no matter what input value you supply in EAX, all CPUID does on those processors is load the family/model/stepping values into bits 11-8/7-4/3-0 of EAX. So if you execute CPUID with EAX=0, and get EAX=0000_05xxh, then you know it's a pre-B0 step Pentium. You will have to "assume" 0000_00FFh for the standard feature flags: this puppy supported FPU/VME/DE/PSE/TSC/MSR/PAE/MCE/CX8. (Yes, though somewhat broken, it did have PAE support.) | are the values returned by standard level 2 (cache) really standard for | amd/intel or should i use standard level 2 for intel only (to retrieve the | l1/l2 cache) and extended level 5/6 (to retrieve the l1/l2 cache) for amd? The descriptors returned by level 0000_0002h are vendor-specific. (If you check the sandpile.org's CPUID page, then you'll notice that (a) only In- tel and Cyrix processors support them, (b) they are mostly for Intel pro- cessors, and (c) Cyrix' descriptors collide with Intel's.) By contrast levels 8000_0005h and 8000_0006h are more flexible -- various AMD, Centaur, and Transmeta processors support them. So far there is no processor which supports both. | is that correct? | - amd-k6-2+ = l2 cache 128kb and amd-k6-III+ = l2 cache 256kb? Yes. | - family 15, model 0 = pentium 4 (willamette)? no other models? If the family is Fh, then you must check the new extended family field. If the extended family is 00h, then it's a Pentium 4. Does anyone have access to a Foster (ie. P4 Xeon)? If so, then please let us know its model (0h or 1h?) and its extended family (01h?). :-) -- CL |