Embench-iot on riscv64

Is it possible to execute embench-iot on riscv64(U74)?


Hi Ankita,

I’m not familiar with embench-iot but after perusing the repo I don’t see any fundamental issues in taking this to HiFive Unmatched. There would be some effort involved though and I’ve classified this into two parts:

Target Preparation

This is a bare metal benchmark so you will need to use an alternate bootflow to prevent the board from booting into Linux. This can be done by using the Mode Select MSEL[3:0] DIP switch. I think setting MSEL=0 would be appropriate. You would then use a debugger like Freedom Studio to connect to the target for running tests. No debug probe is needed as you can debug over the micro-USB interface.

In Freedom Studio our Unmatched BSP only supports the L2 Cache Loosely Integrated Memory (LIM) as a data memory option so performance would not be optimal. The LIM treats the L2 cache as a direct mapped memory which provides deterministic access times, but it is not as fast as the L1 data cache. We could assist you in initializing the DDR so that the L1 data cache could be utilized for the benchmark runs.

Benchmark Building

The benchmark appears to have the framework for a generic RV32 RISC-V platform. As documented in the Embench User Guide you would need to add support for the Unmatched platform which is RV64. When building the benchmark code, appropriate gcc compiler settings for march and mabi are rv64imafdc and lp64d respectively.

Let us know if you pursue this and need additional assistance.