Add a hw.model sysctl oid for armv6/7 which reports the CPU model, similar

to what other arches (all except riscv and armv4/5) do.

Submitted by:	Hyun Hwang <hyun@caffeinated.codes>
Differential Revision:	https://reviews.freebsd.org/D14465
This commit is contained in:
Ian Lepore 2018-02-26 23:58:56 +00:00
parent 925ee294ea
commit e5c6bca6ba
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330044

View File

@ -56,6 +56,10 @@ char machine[] = "arm";
SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD,
machine, 0, "Machine class");
static char cpu_model[64];
SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD,
cpu_model, sizeof(cpu_model), "Machine model");
static char hw_buf[81];
static int hw_buf_idx;
static bool hw_buf_newline;
@ -285,11 +289,13 @@ identify_arm_cpu(void)
if (cpu_names[i].implementer == cpuinfo.implementer &&
cpu_names[i].part_number == cpuinfo.part_number) {
cpu_class = cpu_names[i].cpu_class;
printf("CPU: %s %s r%dp%d (ECO: 0x%08X)\n",
snprintf(cpu_model, sizeof(cpu_model),
"%s %s r%dp%d (ECO: 0x%08X)",
cpu_names[i].impl_name, cpu_names[i].core_name,
cpuinfo.revision, cpuinfo.patch,
cpuinfo.midr != cpuinfo.revidr ?
cpuinfo.revidr : 0);
printf("CPU: %s\n", cpu_model);
break;
}