Changeset View
Changeset View
Standalone View
Standalone View
head/sys/riscv/riscv/identcpu.c
Show First 20 Lines • Show All 180 Lines • ▼ Show 20 Lines | |||||
#endif | #endif | ||||
void | void | ||||
identify_cpu(void) | identify_cpu(void) | ||||
{ | { | ||||
const struct cpu_parts *cpu_partsp; | const struct cpu_parts *cpu_partsp; | ||||
uint32_t part_id; | uint32_t part_id; | ||||
uint32_t impl_id; | uint32_t impl_id; | ||||
uint64_t mimpid; | |||||
uint64_t misa; | uint64_t misa; | ||||
u_int cpu; | u_int cpu; | ||||
size_t i; | size_t i; | ||||
cpu_partsp = NULL; | cpu_partsp = NULL; | ||||
/* TODO: can we get mimpid and misa somewhere ? */ | /* TODO: can we get misa somewhere ? */ | ||||
mimpid = 0; | |||||
misa = 0; | misa = 0; | ||||
cpu = PCPU_GET(cpuid); | cpu = PCPU_GET(cpuid); | ||||
impl_id = CPU_IMPL(mimpid); | impl_id = CPU_IMPL(mimpid); | ||||
for (i = 0; i < nitems(cpu_implementers); i++) { | for (i = 0; i < nitems(cpu_implementers); i++) { | ||||
if (impl_id == cpu_implementers[i].impl_id || | if (impl_id == cpu_implementers[i].impl_id || | ||||
cpu_implementers[i].impl_id == 0) { | cpu_implementers[i].impl_id == 0) { | ||||
Show All 24 Lines |