svn commit: r305285 - in head/sys/arm64: arm64 include
Andrew Turner
andrew at FreeBSD.org
Fri Sep 2 10:13:53 UTC 2016
Author: andrew
Date: Fri Sep 2 10:13:51 2016
New Revision: 305285
URL: https://svnweb.freebsd.org/changeset/base/305285
Log:
Add a pc_clock pcpu field and use it to implement cpu_est_clockrate. This
will allow drivers that manage the clock frequency to communicate this with
the reset of the kernel.
Reported by: jmcneill
MFC after: 1 week
Sponsored by: ABT Systems Ltd
Modified:
head/sys/arm64/arm64/machdep.c
head/sys/arm64/include/pcpu.h
Modified: head/sys/arm64/arm64/machdep.c
==============================================================================
--- head/sys/arm64/arm64/machdep.c Fri Sep 2 08:44:14 2016 (r305284)
+++ head/sys/arm64/arm64/machdep.c Fri Sep 2 10:13:51 2016 (r305285)
@@ -416,8 +416,17 @@ cpu_flush_dcache(void *ptr, size_t len)
int
cpu_est_clockrate(int cpu_id, uint64_t *rate)
{
+ struct pcpu *pc;
- panic("ARM64TODO: cpu_est_clockrate");
+ pc = pcpu_find(cpu_id);
+ if (pc == NULL || rate == NULL)
+ return (EINVAL);
+
+ if (pc->pc_clock == 0)
+ return (EOPNOTSUPP);
+
+ *rate = pc->pc_clock;
+ return (0);
}
void
Modified: head/sys/arm64/include/pcpu.h
==============================================================================
--- head/sys/arm64/include/pcpu.h Fri Sep 2 08:44:14 2016 (r305284)
+++ head/sys/arm64/include/pcpu.h Fri Sep 2 10:13:51 2016 (r305285)
@@ -38,7 +38,8 @@
#define PCPU_MD_FIELDS \
u_int pc_acpi_id; /* ACPI CPU id */ \
u_int pc_midr; /* stored MIDR value */ \
- char __pad[121]
+ uint64_t pc_clock; \
+ char __pad[113]
#ifdef _KERNEL
More information about the svn-src-all
mailing list