aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Meloun <mmel@FreeBSD.org>2025-11-06 19:01:18 +0000
committerMichal Meloun <mmel@FreeBSD.org>2026-02-22 17:53:27 +0000
commit4840558e521934345793ef83b0d45a72fd615a7b (patch)
treebb8d43be56eeb7b1d7acb70814c27338a9f0a005
parent6b77d34f449128e6591131ec3d1822e2df3d8d8a (diff)
OFW: Improve OFW_CPU.
Accept the assigned clock on the CPU node. Don't report a missing "clock-frequency" property if the CPU node has a "clocks" property. MFC after: 3 weeks
-rw-r--r--sys/dev/ofw/ofw_cpu.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/ofw/ofw_cpu.c b/sys/dev/ofw/ofw_cpu.c
index 852ce6ea3759..7da34af6592a 100644
--- a/sys/dev/ofw/ofw_cpu.c
+++ b/sys/dev/ofw/ofw_cpu.c
@@ -43,7 +43,7 @@
#include <dev/ofw/ofw_bus_subr.h>
#include <dev/ofw/ofw_cpu.h>
-#if defined(__arm__) || defined(__arm64__) || defined(__riscv)
+#if defined(__arm__) || defined(__aarch64__) || defined(__riscv)
#include <dev/clk/clk.h>
#define HAS_CLK
#endif
@@ -343,6 +343,11 @@ ofw_cpu_attach(device_t dev)
if (sc->sc_cpu_pcpu == NULL)
sc->sc_cpu_pcpu = pcpu_find(device_get_unit(dev));
+#ifdef HAS_CLK
+ clk_set_assigned(dev, node);
+ if (!OF_hasprop(node, "clocks")) {
+#endif
+
if (OF_getencprop(node, "clock-frequency", &cell, sizeof(cell)) < 0) {
if (get_freq_from_clk(dev, sc) != 0) {
if (bootverbose)
@@ -357,6 +362,10 @@ ofw_cpu_attach(device_t dev)
sc->sc_nominal_mhz);
OF_device_register_xref(OF_xref_from_node(node), dev);
+
+#ifdef HAS_CLK
+ }
+#endif
bus_identify_children(dev);
bus_attach_children(dev);
return (0);