diff options
| author | Samuel Holland <[email protected]> | 2025-01-19 11:03:57 -0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2025-02-12 21:39:25 +0530 |
| commit | 434add551c2a17cac3804ff0f587d31be03f070e (patch) | |
| tree | 3554b7e11c36b8427cfc3349daf00a5eb5d5027b /include/sbi_utils | |
| parent | e84ba966347009a2dae61d7399bc68c28892847e (diff) | |
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 <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
Diffstat (limited to 'include/sbi_utils')
| -rw-r--r-- | include/sbi_utils/cppc/fdt_cppc.h | 26 | ||||
| -rw-r--r-- | include/sbi_utils/fdt/fdt_driver.h | 3 | ||||
| -rw-r--r-- | include/sbi_utils/hsm/fdt_hsm.h | 26 | ||||
| -rw-r--r-- | include/sbi_utils/reset/fdt_reset.h | 31 | ||||
| -rw-r--r-- | include/sbi_utils/suspend/fdt_suspend.h | 26 |
5 files changed, 3 insertions, 109 deletions
diff --git a/include/sbi_utils/cppc/fdt_cppc.h b/include/sbi_utils/cppc/fdt_cppc.h deleted file mode 100644 index 433c6d32..00000000 --- a/include/sbi_utils/cppc/fdt_cppc.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel <[email protected]> - */ - -#ifndef __FDT_CPPC_H__ -#define __FDT_CPPC_H__ - -#include <sbi/sbi_types.h> -#include <sbi_utils/fdt/fdt_driver.h> - -#ifdef CONFIG_FDT_CPPC - -void fdt_cppc_init(const void *fdt); - -#else - -static inline void fdt_cppc_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/fdt/fdt_driver.h b/include/sbi_utils/fdt/fdt_driver.h index 12ffe3f9..5b5bda90 100644 --- a/include/sbi_utils/fdt/fdt_driver.h +++ b/include/sbi_utils/fdt/fdt_driver.h @@ -18,6 +18,9 @@ struct fdt_driver { bool experimental; }; +/* List of early FDT drivers generated at compile time */ +extern const struct fdt_driver *const fdt_early_drivers[]; + /** * Initialize a driver instance for a specific DT node * diff --git a/include/sbi_utils/hsm/fdt_hsm.h b/include/sbi_utils/hsm/fdt_hsm.h deleted file mode 100644 index 58061afc..00000000 --- a/include/sbi_utils/hsm/fdt_hsm.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel <[email protected]> - */ - -#ifndef __FDT_HSM_H__ -#define __FDT_HSM_H__ - -#include <sbi/sbi_types.h> -#include <sbi_utils/fdt/fdt_driver.h> - -#ifdef CONFIG_FDT_HSM - -void fdt_hsm_init(const void *fdt); - -#else - -static inline void fdt_hsm_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/reset/fdt_reset.h b/include/sbi_utils/reset/fdt_reset.h deleted file mode 100644 index 5fba3886..00000000 --- a/include/sbi_utils/reset/fdt_reset.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2020 Western Digital Corporation or its affiliates. - * - * Authors: - * Anup Patel <[email protected]> - */ - -#ifndef __FDT_RESET_H__ -#define __FDT_RESET_H__ - -#include <sbi/sbi_types.h> -#include <sbi_utils/fdt/fdt_driver.h> - -#ifdef CONFIG_FDT_RESET - -/** - * fdt_reset_init() - initialize reset drivers based on the device-tree - * - * This function shall be invoked in final init. - */ -void fdt_reset_init(const void *fdt); - -#else - -static inline void fdt_reset_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/suspend/fdt_suspend.h b/include/sbi_utils/suspend/fdt_suspend.h deleted file mode 100644 index bfc6c69a..00000000 --- a/include/sbi_utils/suspend/fdt_suspend.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel <[email protected]> - */ - -#ifndef __FDT_SUSPEND_H__ -#define __FDT_SUSPEND_H__ - -#include <sbi/sbi_types.h> -#include <sbi_utils/fdt/fdt_driver.h> - -#ifdef CONFIG_FDT_SUSPEND - -void fdt_suspend_init(const void *fdt); - -#else - -static inline void fdt_suspend_init(const void *fdt) { } - -#endif - -#endif |
