Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/cpu/cpu.c

    rdc0b964 rf24d300  
    3939
    4040#include <arch.h>
    41 #include <typedefs.h>
     41#include <arch/types.h>
    4242#include <print.h>
    4343#include <fpu_context.h>
     
    4747 * Contains only non-MP-Specification specific SMP code.
    4848 */
    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
    5252
    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
    5657
    5758enum vendor {
     
    6162};
    6263
    63 static const char *vendor_str[] = {
     64static char *vendor_str[] = {
    6465        "Unknown Vendor",
    6566        "AuthenticAMD",
     
    126127{
    127128        cpu_info_t info;
    128        
     129
    129130        CPU->arch.vendor = VendorUnknown;
    130131        if (has_cpuid()) {
    131                 cpuid(INTEL_CPUID_LEVEL, &info);
    132                
     132                cpuid(0, &info);
     133
    133134                /*
    134135                 * Check for AMD processor.
    135136                 */
    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) {
    139140                        CPU->arch.vendor = VendorAMD;
    140141                }
    141                
     142
    142143                /*
    143144                 * 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) {
    148149                        CPU->arch.vendor = VendorIntel;
    149150                }
    150                
    151                 cpuid(INTEL_CPUID_STANDARD, &info);
     151                               
     152                cpuid(1, &info);
    152153                CPU->arch.family = (info.cpuid_eax >> 8) & 0xf;
    153154                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;                                               
    155156        }
    156157}
Note: See TracChangeset for help on using the changeset viewer.