lib: Don't check MIDELEG and MEDELEG at end of delegate_traps()
authorAnup Patel <anup.patel@wdc.com>
Tue, 18 Feb 2020 06:07:16 +0000 (11:37 +0530)
committerAnup Patel <anup@brainfault.org>
Wed, 19 Feb 2020 04:28:45 +0000 (09:58 +0530)
The MIDELEG and MEDELEG CSR checks at end of delegate_traps() were
added for initial bring-up on SiFive Unleashed and QEMU. These
checks are not required any more and in-future these checks can
cause failures because some of the MIDELEG/MEDELEG bits will be
hard-wired to 0 or 1.

For related discussion, refer github issue:
https://github.com/riscv/opensbi/issues/157

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
lib/sbi/sbi_hart.c

index dd2f99e..d83008f 100644 (file)
@@ -104,11 +104,6 @@ static int delegate_traps(struct sbi_scratch *scratch, u32 hartid)
        csr_write(CSR_MIDELEG, interrupts);
        csr_write(CSR_MEDELEG, exceptions);
 
-       if ((csr_read(CSR_MIDELEG) & interrupts) != interrupts)
-               return SBI_EFAIL;
-       if ((csr_read(CSR_MEDELEG) & exceptions) != exceptions)
-               return SBI_EFAIL;
-
        return 0;
 }