Does FE310 support supervisor and user modes?

I read FE310 in sifive1-revB board has one E31 core with Machine mode only. Which means there is no support for supervisor mode, right? There is only user mode and machine mode. Correct me if I am wrong.

The FE310-G000 in the original HiFIve1 has only Machine mode.

The FE310-G002 in the Rev B has Machine mode and User mode.

See: https://sifive.cdn.prismic.io/sifive%2F9ecbb623-7c7f-4acc-966f-9bb10ecdb62e_fe310-g002.pdf

1 Like

My understanding is that the FE310-G002 is RISCV32IMAC. Without Zicsr extension does this mean the CSR is completely inaccessible or are workarounds/limited access still possible?

The last official ISA spec, 20191213 has zicsr as a separate and optional extension. However, the previous ISA spec has the CSRs included as part of the base I (or E) extension. Most people haven’t adjusted to the naming change yet. So for now the absence of Zicsr means absolutely nothing.

And yes, the FE310-G002 does have CSRs. You can find a list of them in freedom-e-sdk.
https://github.com/sifive/freedom-e-sdk/blob/master/bsp/sifive-hifive1-revb/design.reglist

1 Like