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