diff options
| author | Andrew Waterman <andrew@sifive.com> | 2025-11-27 16:51:20 +0530 |
|---|---|---|
| committer | Anup Patel <anup@brainfault.org> | 2025-12-16 20:19:21 +0530 |
| commit | 843e916dcab4163e84bab9a22ef2db89ff269979 (patch) | |
| tree | a97e72eeb6da0756ae755f3b3cb392143d6d5b93 /lib | |
| parent | 5eec86eec8ee92f9c7d4211c34fddf794609ed71 (diff) | |
| download | opensbi-843e916dcab4163e84bab9a22ef2db89ff269979.tar.gz opensbi-843e916dcab4163e84bab9a22ef2db89ff269979.tar.bz2 opensbi-843e916dcab4163e84bab9a22ef2db89ff269979.zip | |
lib: sbi: Expose __sbi_sfence_vma_all() function
The __sbi_sfence_vma_all() can be shared by different parts of
OpenSBI so rename __tlb_flush_all() to __sbi_sfence_vma_all()
and make it global function.
Signed-off-by: Andrew Waterman <andrew@sifive.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Link: https://lore.kernel.org/r/20251127112121.334023-2-apatel@ventanamicro.com
Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sbi/sbi_hart_pmp.c | 3 | ||||
| -rw-r--r-- | lib/sbi/sbi_tlb.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/sbi/sbi_hart_pmp.c b/lib/sbi/sbi_hart_pmp.c index 2c9f15bc..62bc859a 100644 --- a/lib/sbi/sbi_hart_pmp.c +++ b/lib/sbi/sbi_hart_pmp.c @@ -12,6 +12,7 @@ #include <sbi/sbi_hfence.h> #include <sbi/sbi_math.h> #include <sbi/sbi_platform.h> +#include <sbi/sbi_tlb.h> #include <sbi/riscv_asm.h> /* @@ -74,7 +75,7 @@ static void sbi_hart_pmp_fence(void) * conditions. */ if (misa_extension('S')) { - __asm__ __volatile__("sfence.vma"); + __sbi_sfence_vma_all(); /* * If hypervisor mode is supported, flush caching diff --git a/lib/sbi/sbi_tlb.c b/lib/sbi/sbi_tlb.c index 01b31f4e..ada60c32 100644 --- a/lib/sbi/sbi_tlb.c +++ b/lib/sbi/sbi_tlb.c @@ -29,7 +29,7 @@ static unsigned long tlb_fifo_off; static unsigned long tlb_fifo_mem_off; static unsigned long tlb_range_flush_limit; -static void tlb_flush_all(void) +void __sbi_sfence_vma_all(void) { __asm__ __volatile("sfence.vma"); } @@ -86,7 +86,7 @@ static void sbi_tlb_local_sfence_vma(struct sbi_tlb_info *tinfo) sbi_pmu_ctr_incr_fw(SBI_PMU_FW_SFENCE_VMA_RCVD); if ((start == 0 && size == 0) || (size == SBI_TLB_FLUSH_ALL)) { - tlb_flush_all(); + __sbi_sfence_vma_all(); return; } |
