Changes in kernel/arch/amd64/src/cpu/cpu.c [dc0b964:f24d300] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/cpu/cpu.c
rdc0b964 rf24d300 39 39 40 40 #include <arch.h> 41 #include < typedefs.h>41 #include <arch/types.h> 42 42 #include <print.h> 43 43 #include <fpu_context.h> … … 47 47 * Contains only non-MP-Specification specific SMP code. 48 48 */ 49 #define AMD_CPUID_EBX UINT32_C(0x68747541)50 #define AMD_CPUID_ECX UINT32_C(0x444d4163)51 #define AMD_CPUID_EDX UINT32_C(0x69746e65)49 #define AMD_CPUID_EBX 0x68747541 50 #define AMD_CPUID_ECX 0x444d4163 51 #define AMD_CPUID_EDX 0x69746e65 52 52 53 #define INTEL_CPUID_EBX UINT32_C(0x756e6547) 54 #define INTEL_CPUID_ECX UINT32_C(0x6c65746e) 55 #define INTEL_CPUID_EDX UINT32_C(0x49656e69) 53 #define INTEL_CPUID_EBX 0x756e6547 54 #define INTEL_CPUID_ECX 0x6c65746e 55 #define INTEL_CPUID_EDX 0x49656e69 56 56 57 57 58 enum vendor { … … 61 62 }; 62 63 63 static c onst char *vendor_str[] = {64 static char *vendor_str[] = { 64 65 "Unknown Vendor", 65 66 "AuthenticAMD", … … 126 127 { 127 128 cpu_info_t info; 128 129 129 130 CPU->arch.vendor = VendorUnknown; 130 131 if (has_cpuid()) { 131 cpuid( INTEL_CPUID_LEVEL, &info);132 132 cpuid(0, &info); 133 133 134 /* 134 135 * Check for AMD processor. 135 136 */ 136 if ( (info.cpuid_ebx == AMD_CPUID_EBX)&&137 (info.cpuid_ecx == AMD_CPUID_ECX)&&138 (info.cpuid_edx == AMD_CPUID_EDX)) {137 if (info.cpuid_ebx == AMD_CPUID_EBX && 138 info.cpuid_ecx == AMD_CPUID_ECX && 139 info.cpuid_edx == AMD_CPUID_EDX) { 139 140 CPU->arch.vendor = VendorAMD; 140 141 } 141 142 142 143 /* 143 144 * Check for Intel processor. 144 */ 145 if ( (info.cpuid_ebx == INTEL_CPUID_EBX)&&146 (info.cpuid_ecx == INTEL_CPUID_ECX)&&147 (info.cpuid_edx == INTEL_CPUID_EDX)) {145 */ 146 if (info.cpuid_ebx == INTEL_CPUID_EBX && 147 info.cpuid_ecx == INTEL_CPUID_ECX && 148 info.cpuid_edx == INTEL_CPUID_EDX) { 148 149 CPU->arch.vendor = VendorIntel; 149 150 } 150 151 cpuid( INTEL_CPUID_STANDARD, &info);151 152 cpuid(1, &info); 152 153 CPU->arch.family = (info.cpuid_eax >> 8) & 0xf; 153 154 CPU->arch.model = (info.cpuid_eax >> 4) & 0xf; 154 CPU->arch.stepping = (info.cpuid_eax >> 0) & 0xf; 155 CPU->arch.stepping = (info.cpuid_eax >> 0) & 0xf; 155 156 } 156 157 }
Note:
See TracChangeset
for help on using the changeset viewer.