aboutsummaryrefslogtreecommitdiff
path: root/lib/utils/cppc
diff options
context:
space:
mode:
authorSamuel Holland <samuel.holland@sifive.com>2025-01-19 11:03:57 -0800
committerAnup Patel <anup@brainfault.org>2025-02-12 21:39:25 +0530
commit434add551c2a17cac3804ff0f587d31be03f070e (patch)
tree3554b7e11c36b8427cfc3349daf00a5eb5d5027b /lib/utils/cppc
parente84ba966347009a2dae61d7399bc68c28892847e (diff)
downloadopensbi-434add551c2a17cac3804ff0f587d31be03f070e.zip
opensbi-434add551c2a17cac3804ff0f587d31be03f070e.tar.gz
opensbi-434add551c2a17cac3804ff0f587d31be03f070e.tar.bz2
lib: utils: Initialize miscellaneous drivers in one pass
For driver subsystems that are not tightly integrated into the OpenSBI init sequence, it is not important that the drivers are initialized in any particular order. By putting all of these drivers in one array, they can all be initialized with a single pass through the devicetree. This saves about 10 ms of boot time on HiFive Unmatched. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils/cppc')
-rw-r--r--lib/utils/cppc/fdt_cppc.c22
-rw-r--r--lib/utils/cppc/fdt_cppc_drivers.carray3
-rw-r--r--lib/utils/cppc/fdt_cppc_rpmi.c2
-rw-r--r--lib/utils/cppc/objects.mk5
4 files changed, 2 insertions, 30 deletions
diff --git a/lib/utils/cppc/fdt_cppc.c b/lib/utils/cppc/fdt_cppc.c
deleted file mode 100644
index 0e1ecb2..0000000
--- a/lib/utils/cppc/fdt_cppc.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * SPDX-License-Identifier: BSD-2-Clause
- *
- * Copyright (c) 2024 Ventana Micro Systems Inc.
- *
- * Authors:
- * Anup Patel <apatel@ventanamicro.com>
- */
-
-#include <sbi_utils/cppc/fdt_cppc.h>
-
-/* List of FDT CPPC drivers generated at compile time */
-extern const struct fdt_driver *const fdt_cppc_drivers[];
-
-void fdt_cppc_init(const void *fdt)
-{
- /*
- * Platforms might have multiple CPPC devices or might
- * not have any so probe all and don't fail.
- */
- fdt_driver_init_all(fdt, fdt_cppc_drivers);
-}
diff --git a/lib/utils/cppc/fdt_cppc_drivers.carray b/lib/utils/cppc/fdt_cppc_drivers.carray
deleted file mode 100644
index b25c788..0000000
--- a/lib/utils/cppc/fdt_cppc_drivers.carray
+++ /dev/null
@@ -1,3 +0,0 @@
-HEADER: sbi_utils/cppc/fdt_cppc.h
-TYPE: const struct fdt_driver
-NAME: fdt_cppc_drivers
diff --git a/lib/utils/cppc/fdt_cppc_rpmi.c b/lib/utils/cppc/fdt_cppc_rpmi.c
index 9532840..3934219 100644
--- a/lib/utils/cppc/fdt_cppc_rpmi.c
+++ b/lib/utils/cppc/fdt_cppc_rpmi.c
@@ -12,7 +12,7 @@
#include <sbi/sbi_cppc.h>
#include <sbi/sbi_ecall_interface.h>
#include <sbi/sbi_scratch.h>
-#include <sbi_utils/cppc/fdt_cppc.h>
+#include <sbi_utils/fdt/fdt_driver.h>
#include <sbi_utils/fdt/fdt_helper.h>
#include <sbi_utils/mailbox/fdt_mailbox.h>
#include <sbi_utils/mailbox/rpmi_mailbox.h>
diff --git a/lib/utils/cppc/objects.mk b/lib/utils/cppc/objects.mk
index 07dc7d8..ece1791 100644
--- a/lib/utils/cppc/objects.mk
+++ b/lib/utils/cppc/objects.mk
@@ -7,8 +7,5 @@
# Anup Patel <apatel@ventanamicro.com>
#
-libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc.o
-libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc_drivers.carray.o
-
-carray-fdt_cppc_drivers-$(CONFIG_FDT_CPPC_RPMI) += fdt_cppc_rpmi
+carray-fdt_early_drivers-$(CONFIG_FDT_CPPC_RPMI) += fdt_cppc_rpmi
libsbiutils-objs-$(CONFIG_FDT_CPPC_RPMI) += cppc/fdt_cppc_rpmi.o