16 char cpu_string[50], *cpu_name = cpu_string;
18 const char *mode[] = {
"NOT ",
""};
21 cpuidr =
cpuid(index);
22 if (cpuidr.
eax < 0x80000004) {
23 strcpy(cpu_string,
"Platform info not available");
25 u32 *p = (
u32*) cpu_string;
26 for (i = 2; i <= 4; i++) {
27 cpuidr =
cpuid(index + i);
35 while (cpu_name[0] ==
' ')
43 aes = (cpu_feature_flag &
CPUID_AES) ? 1 : 0;
44 txt = (cpu_feature_flag &
CPUID_SMX) ? 1 : 0;
45 vt = (cpu_feature_flag &
CPUID_VMX) ? 1 : 0;
47 mode[aes], mode[txt], mode[vt]);
55 {0x8c41,
"Mobile Engineering Sample"},
56 {0x8c42,
"Desktop Engineering Sample"},
70 {0x9c41,
"LP Full Featured Engineering Sample"},
71 {0x9c43,
"LP Premium"},
72 {0x9c45,
"LP Mainstream"},
#define printk(level,...)
uint32_t cpu_get_feature_flags_ecx(void)
uint32_t cpu_get_cpuid(void)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
static __always_inline u8 pci_read_config8(const struct device *dev, u16 reg)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
uint32_t get_current_microcode_rev(void)
char * strcpy(char *dst, const char *src)