diff options
Diffstat (limited to 'lib/sbi/sbi_ecall_replace.c')
-rw-r--r-- | lib/sbi/sbi_ecall_replace.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/sbi/sbi_ecall_replace.c b/lib/sbi/sbi_ecall_replace.c index a95821b..a7935d9 100644 --- a/lib/sbi/sbi_ecall_replace.c +++ b/lib/sbi/sbi_ecall_replace.c @@ -62,41 +62,43 @@ static int sbi_ecall_rfence_handler(unsigned long extid, unsigned long funcid, switch (funcid) { case SBI_EXT_RFENCE_REMOTE_FENCE_I: SBI_TLB_INFO_INIT(&tlb_info, 0, 0, 0, 0, - SBI_ITLB_FLUSH, source_hart); + sbi_tlb_local_fence_i, source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA: SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, 0, 0, - SBI_TLB_FLUSH_GVMA, source_hart); + sbi_tlb_local_hfence_gvma, source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID: SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, 0, regs->a4, - SBI_TLB_FLUSH_GVMA_VMID, source_hart); + sbi_tlb_local_hfence_gvma_vmid, + source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA: vmid = (csr_read(CSR_HGATP) & HGATP_VMID_MASK); vmid = vmid >> HGATP_VMID_SHIFT; SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, 0, vmid, - SBI_TLB_FLUSH_VVMA, source_hart); + sbi_tlb_local_hfence_vvma, source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID: vmid = (csr_read(CSR_HGATP) & HGATP_VMID_MASK); vmid = vmid >> HGATP_VMID_SHIFT; SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, regs->a4, - vmid, SBI_TLB_FLUSH_VVMA_ASID, source_hart); + vmid, sbi_tlb_local_hfence_vvma_asid, + source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA: SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, 0, 0, - SBI_TLB_FLUSH_VMA, source_hart); + sbi_tlb_local_sfence_vma, source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID: SBI_TLB_INFO_INIT(&tlb_info, regs->a2, regs->a3, regs->a4, 0, - SBI_TLB_FLUSH_VMA_ASID, source_hart); + sbi_tlb_local_sfence_vma_asid, source_hart); ret = sbi_tlb_request(regs->a0, regs->a1, &tlb_info); break; default: |