diff options
| author | Anup Patel <[email protected]> | 2024-08-06 10:40:46 +0530 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2024-12-06 09:26:38 +0530 |
| commit | 9d760b810e184479c65c2537594beaf4657f02ed (patch) | |
| tree | 941ff1c2496bd86326b2f4cb9fb361fc7bc043f7 /include/sbi_utils | |
| parent | fdd72635368beb5f9c85533b92abb31adee20406 (diff) | |
lib: utils/fdt: Allow dynamic registration of FDT fixup callbacks
It should possible to fixup FDT from any part of OpenSBI so add
fdt_register_general_fixup() which allows dynamic registration of
FDT fixup callbacks.
Signed-off-by: Anup Patel <[email protected]>
Diffstat (limited to 'include/sbi_utils')
| -rw-r--r-- | include/sbi_utils/fdt/fdt_fixup.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/sbi_utils/fdt/fdt_fixup.h b/include/sbi_utils/fdt/fdt_fixup.h index 21a53011..93249968 100644 --- a/include/sbi_utils/fdt/fdt_fixup.h +++ b/include/sbi_utils/fdt/fdt_fixup.h @@ -9,6 +9,8 @@ #ifndef __FDT_FIXUP_H__ #define __FDT_FIXUP_H__ +#include <sbi/sbi_list.h> + struct sbi_cpu_idle_state { const char *name; uint32_t suspend_param; @@ -93,6 +95,19 @@ void fdt_plic_fixup(void *fdt); */ int fdt_reserved_memory_fixup(void *fdt); +/** Representation of a general fixup */ +struct fdt_general_fixup { + struct sbi_dlist head; + const char *name; + void (*do_fixup)(struct fdt_general_fixup *f, void *fdt); +}; + +/** Register a general fixup */ +int fdt_register_general_fixup(struct fdt_general_fixup *fixup); + +/** UnRegister a general fixup */ +void fdt_unregister_general_fixup(struct fdt_general_fixup *fixup); + /** * General device tree fix-up * |
