+++ /dev/null
-/**
- * Portions derived from Linux include/asm-x86_64/processor.h
- * Copyright (C) 1994 Linus Torvalds
- */
-
-#ifndef _X86_64_CPUINFO_H
-#define _X86_64_CPUINFO_H
-
-#include <arch/cpufeature.h>
-
-/**
- * arch_cpuinfo.x86_cache_size first dimension indicies.
- * and
- * arch_cpuinfo.x86_tlbsize first dimension indicies.
- */
-#define INST 0 /* Instruction */
-#define DATA 1 /* Data */
-#define UNIF 2 /* Unified Instruction and Data */
-
-/**
- * arch_cpuinfo.x86_cache_size second dimension indices.
- * and
- * arch_cpuinfo.x86_tlbsize second dimension indices.
- */
-#define L1 0
-#define L2 1
-#define L3 2
-
-/**
- * arch_cpuinfo.x86_tlbsize third dimension indices.
- */
-#define PAGE_4KB 0
-#define PAGE_2MB 1
-#define PAGE_1GB 2
-
-/**
- * Architecture specific CPU information and hardware bug flags.
- * CPU info is kept separately for each CPU.
- */
-struct arch_cpuinfo {
- uint8_t x86_vendor; /* CPU vendor */
- uint8_t x86_family; /* CPU family */
- uint8_t x86_model; /* CPU model */
- uint8_t x86_stepping; /* CPU stepping */
- uint32_t x86_capability[NCAPINTS]; /* optional CPU features */
- char x86_vendor_id[16]; /* Vendor ID string */
- char x86_model_id[64]; /* Model/Brand ID string */
- uint16_t x86_cache_size[3][3]; /* [I|D|U][LEVEL], in KB */
- uint16_t x86_cache_line[3][3]; /* [I|D|U][LEVEL], in bytes */
- int x86_clflush_size; /* In bytes */
- uint16_t x86_tlb_size[3][2][3]; /* [I|D|U][LEVEL][PAGE_SIZE], in #entries */
- uint8_t x86_virt_bits; /* Bits of virt address space */
- uint8_t x86_phys_bits; /* Bits of phys address space */
- uint8_t x86_pkg_cores; /* Number of cores in this CPU's package */
- uint32_t x86_power; /* Power management features */
- uint32_t cpuid_level; /* Max supported CPUID level */
- uint32_t extended_cpuid_level; /* Max extended CPUID func supported */
- uint32_t cur_cpu_khz; /* Current CPU freq. in KHz */
- uint32_t max_cpu_khz; /* Maximum CPU freq. in KHz */
- uint32_t min_cpu_khz; /* Minimum CPU freq. in KHz */
- uint32_t tsc_khz; /* Time stamp counter freq. in KHz */
- uint32_t lapic_khz; /* Local APIC bus freq. in KHz */
- uint8_t apic_id; /* Local APIC ID, phys CPU ID */
- uint8_t initial_lapic_id; /* As reported by CPU ID */
-};
-
-extern struct cpuinfo boot_cpu_data;
-
-struct cpuinfo;
-extern void print_arch_cpuinfo(struct cpuinfo *);
-extern void early_identify_cpu(struct cpuinfo *);
-
-#endif