Status of RISCV port on sis

Jiri Gaisler jiri at gaisler.se
Mon Jan 7 14:21:33 UTC 2019


I have now made a bsp for a RISCV/GRLIB system, and have been running
the testsuite on sis/RISCV. I have a few remaining failures:

$ rtems-test --rtems-bsp=riscv-sis riscv-rtems5/c/grlib/testsuites
--log=all.txt

Passed:        569
Failed:          5
User Input:      5
Expected Fail:   0
Indeterminate:   0
Benchmark:       3
Timeout:         0
Invalid:         0
Wrong Version:   0
Wrong Build:     0
Wrong Tools:     0
------------------
Total:         582
Failures:
 sp37.exe
 spintrcritical07.exe
 spintrcritical11.exe
 spintrcritical12.exe
 spintrcritical15.exe
User Input:
 monitor.exe
 termios.exe
 top.exe
 capture.exe
 fileio.exe
Benchmark:
 whetstone.exe
 dhrystone.exe
 linpack.exe
Average test time: 0:00:00.483282
Testing time     : 0:04:41.270156

The sp37 test fails with an interesting error:

 *** BEGIN OF TEST SP 37 ***
] *** TEST VERSION: 5.0.0.eba55a6ad63a1433f50ba0d627394f447bacd04f-modified
] *** TEST STATE: EXPECTED-PASS
] *** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
] *** TEST TOOLS: 9.0.0 20181112 (RTEMS 5, RSB
96673d751ab488d5d892ae67c1842aef9d5c068b, Newlib
df6915f029ac9acd2b479ea898388cbd7dda4974)
]
/home/jiri/ibm/src/rtems/rtems.seb/c/src/../../testsuites/sptests/sp37/init.c:
185 normal_interrupt_level != _ISR_Get_level()
]
] *** FATAL ***

The RISCV port has only two interrupt levels (on/off), and it seems that
when a task at level one (irq off) is deleted, the heir inherits
interrupt level one rather then restore its original level. Has anyone
seen this on RISCV before? It is probably something in my setup (sim or
bsp) but the test runs without interrupts and always fails the same way
regardless of compiler optimization etc.

The spintrcriticalXX tests fail with a zapped return address during
interrupt return, I am still looking into this.

Any inputs are welcome, as I have some problems of debugging this ...

Jiri.





More information about the devel mailing list