CPU: Added more cpu feature detection
This commit is contained in:
parent
b9bfd99335
commit
bb3c1b6120
|
@ -78,11 +78,17 @@ unsafe extern "C" fn _kernel_start() -> ! {
|
|||
let mut cpu = XMLElement::new("cpu");
|
||||
let core_count = smp.cpu_count.to_string();
|
||||
cpu.set_attribute("core count", core_count);
|
||||
for x in 0..smp.cpu_count {
|
||||
let core_name = alloc::format!("core_{}", x);
|
||||
let core = XMLElement::new(core_name);
|
||||
cpu.set_child(core);
|
||||
}
|
||||
|
||||
cpu.set_attribute("brand string", brand_string);
|
||||
|
||||
let _cpu_speed = 0;
|
||||
|
||||
cpu.set_attribute("speed", "Unknown");
|
||||
cpu.set_attribute("speed", "unknown");
|
||||
|
||||
if false {
|
||||
// disable() // disable interrupts (if still not done)
|
||||
|
@ -96,14 +102,29 @@ unsafe extern "C" fn _kernel_start() -> ! {
|
|||
|
||||
let mut cpu_features = xml::XMLElement::new("CPU Features");
|
||||
{
|
||||
let x2 = cpuinfo.x2apic();
|
||||
let apic = cpuinfo.apic();
|
||||
let _avx = cpuinfo.avx();
|
||||
let avx = cpuinfo.avx();
|
||||
let avx2 = cpuinfo.avx2();
|
||||
let x2 = cpuinfo.x2apic();
|
||||
|
||||
let gb_pages = cpuinfo.gigabyte_pages();
|
||||
let rdseed = cpuinfo.rdseed();
|
||||
let rdrand = cpuinfo.rdrand();
|
||||
|
||||
cpu_features.set_attribute("apic", apic.to_string());
|
||||
cpu_features.set_attribute("avx", apic.to_string());
|
||||
cpu_features.set_attribute("avx", avx.to_string());
|
||||
cpu_features.set_attribute("avx2", avx2.to_string());
|
||||
cpu_features.set_attribute("gigabyte pages", gb_pages.to_string());
|
||||
cpu_features.set_attribute("rdrand", rdrand.to_string());
|
||||
cpu_features.set_attribute("rdseed", rdseed.to_string());
|
||||
cpu_features.set_attribute("x2apic", x2.to_string());
|
||||
}
|
||||
if cpuinfo.digital_temperature_sensor() {
|
||||
let mut temperature_child = XMLElement::new("Temperature");
|
||||
|
||||
temperature_child.set_attribute("degrees", "Unknown");
|
||||
cpu.set_child(temperature_child);
|
||||
}
|
||||
|
||||
cpu.set_child(cpu_features);
|
||||
cpus.push(cpu);
|
||||
|
@ -156,6 +177,7 @@ unsafe extern "C" fn _kernel_start() -> ! {
|
|||
dis.swap_buffers();
|
||||
};
|
||||
|
||||
// TODO: Add in rdseed and rdrand as sources for randomness
|
||||
let _rand = xml::XMLElement::new("Random");
|
||||
|
||||
crate::kmain::kmain(
|
||||
|
|
Loading…
Reference in a new issue