diff options
| author | Nick Hu <[email protected]> | 2025-10-20 14:34:06 +0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2025-10-28 11:27:53 +0530 |
| commit | ce4dc7649e5e1f7053d996f08c7da071b80b654f (patch) | |
| tree | 1a4dee5574d2ba86b26c27b70c4e9ba8a94381e7 /include | |
| parent | 8ea972838cf3f398b1a2896e645c8c2fb23e2159 (diff) | |
lib: utils/cache: Add fdt cmo helpers
Add the helpers to build up the cache hierarchy via FDT and provide some
cmo functions for the user who want to flush the entire cache.
Signed-off-by: Nick Hu <[email protected]>
Reviewed-by: Samuel Holland <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Anup Patel <[email protected]>
Diffstat (limited to 'include')
| -rw-r--r-- | include/sbi_utils/cache/fdt_cmo_helper.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/sbi_utils/cache/fdt_cmo_helper.h b/include/sbi_utils/cache/fdt_cmo_helper.h new file mode 100644 index 00000000..a6a28db9 --- /dev/null +++ b/include/sbi_utils/cache/fdt_cmo_helper.h @@ -0,0 +1,40 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 SiFive Inc. + */ + +#ifndef __FDT_CMO_HELPER_H__ +#define __FDT_CMO_HELPER_H__ + +#ifdef CONFIG_FDT_CACHE +/** + * Flush the private first level cache of the current hart + * + * @return 0 on success, or a negative error code on failure + */ +int fdt_cmo_private_flc_flush_all(void); + +/** + * Flush the last level cache of the current hart + * + * @return 0 on success, or a negative error code on failure + */ +int fdt_cmo_llc_flush_all(void); + +/** + * Initialize the cache devices for each hart + * + * @param fdt devicetree blob + * @param cold_boot cold init or warm init + * + * @return 0 on success, or a negative error code on failure + */ +int fdt_cmo_init(bool cold_boot); + +#else + +static inline int fdt_cmo_init(bool cold_boot) { return 0; } + +#endif /* CONFIG_FDT_CACHE */ +#endif /* __FDT_CMO_HELPER_H__ */ |
